[evolution-data-server] Bug #268618 - Add: Save replies in the folder of the message being replied to



commit c91411fa7cdcbccbd276b5857043138d97d817d9
Author: Milan Crha <mcrha redhat com>
Date:   Thu Oct 18 19:43:28 2012 +0200

    Bug #268618 - Add: Save replies in the folder of the message being replied to

 configure.ac                              |    2 +-
 libedataserver/e-source-mail-submission.c |   73 ++++++++++++++++++++++++++++-
 libedataserver/e-source-mail-submission.h |    5 ++
 3 files changed, 78 insertions(+), 2 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 75adb87..20ce95c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,7 +87,7 @@ AC_SUBST(SOURCES_DBUS_SERVICE_NAME)
 dnl ******************************
 dnl Libtool versioning
 dnl ******************************
-LIBEDATASERVER_CURRENT=17
+LIBEDATASERVER_CURRENT=18
 LIBEDATASERVER_REVISION=0
 LIBEDATASERVER_AGE=0
 
diff --git a/libedataserver/e-source-mail-submission.c b/libedataserver/e-source-mail-submission.c
index ae252fe..84f45a0 100644
--- a/libedataserver/e-source-mail-submission.c
+++ b/libedataserver/e-source-mail-submission.c
@@ -47,12 +47,14 @@ struct _ESourceMailSubmissionPrivate {
 	GMutex *property_lock;
 	gchar *sent_folder;
 	gchar *transport_uid;
+	gboolean replies_to_origin_folder;
 };
 
 enum {
 	PROP_0,
 	PROP_SENT_FOLDER,
-	PROP_TRANSPORT_UID
+	PROP_TRANSPORT_UID,
+	PROP_REPLIES_TO_ORIGIN_FOLDER
 };
 
 G_DEFINE_TYPE (
@@ -78,6 +80,12 @@ source_mail_submission_set_property (GObject *object,
 				E_SOURCE_MAIL_SUBMISSION (object),
 				g_value_get_string (value));
 			return;
+
+		case PROP_REPLIES_TO_ORIGIN_FOLDER:
+			e_source_mail_submission_set_replies_to_origin_folder (
+				E_SOURCE_MAIL_SUBMISSION (object),
+				g_value_get_boolean (value));
+			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -103,6 +111,13 @@ source_mail_submission_get_property (GObject *object,
 				e_source_mail_submission_dup_transport_uid (
 				E_SOURCE_MAIL_SUBMISSION (object)));
 			return;
+
+		case PROP_REPLIES_TO_ORIGIN_FOLDER:
+			g_value_set_boolean (
+				value,
+				e_source_mail_submission_get_replies_to_origin_folder (
+				E_SOURCE_MAIL_SUBMISSION (object)));
+			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -167,6 +182,19 @@ e_source_mail_submission_class_init (ESourceMailSubmissionClass *class)
 			G_PARAM_CONSTRUCT |
 			G_PARAM_STATIC_STRINGS |
 			E_SOURCE_PARAM_SETTING));
+
+	g_object_class_install_property (
+		object_class,
+		PROP_REPLIES_TO_ORIGIN_FOLDER,
+		g_param_spec_boolean (
+			"replies-to-origin-folder",
+			"Replies to origin folder",
+			"Whether to save replies to folder of the message being replied to, instead of the Sent folder",
+			FALSE,
+			G_PARAM_READWRITE |
+			G_PARAM_CONSTRUCT |
+			G_PARAM_STATIC_STRINGS |
+			E_SOURCE_PARAM_SETTING));
 }
 
 static void
@@ -342,3 +370,46 @@ e_source_mail_submission_set_transport_uid (ESourceMailSubmission *extension,
 
 	g_object_notify (G_OBJECT (extension), "transport-uid");
 }
+
+/**
+ * e_source_mail_submission_get_replies_to_origin_folder:
+ * @extension: an #ESourceMailSubmission
+ *
+ * Returns whether save replies in the folder of the message
+ * being replied to, instead of the Sent folder.
+ *
+ * Returns: whether save replies in the folder of the message being replied to
+ *
+ * Since: 3.8
+ **/
+gboolean
+e_source_mail_submission_get_replies_to_origin_folder (ESourceMailSubmission *extension)
+{
+	g_return_val_if_fail (E_IS_SOURCE_MAIL_SUBMISSION (extension), FALSE);
+
+	return extension->priv->replies_to_origin_folder;
+}
+
+/**
+ * e_source_mail_submission_set_replies_to_origin_folder:
+ * @extension: an #ESourceMailSubmission
+ * @replies_to_origin_folder: new value
+ *
+ * Sets whether save replies in the folder of the message
+ * being replied to, instead of the Sent folder.
+ *
+ * Since: 3.8
+ **/
+void
+e_source_mail_submission_set_replies_to_origin_folder (ESourceMailSubmission *extension,
+						       gboolean replies_to_origin_folder)
+{
+	g_return_if_fail (E_IS_SOURCE_MAIL_SUBMISSION (extension));
+
+	if ((extension->priv->replies_to_origin_folder ? 1 : 0) == (replies_to_origin_folder ? 1 : 0))
+		return;
+
+	extension->priv->replies_to_origin_folder = replies_to_origin_folder;
+
+	g_object_notify (G_OBJECT (extension), "replies-to-origin-folder");
+}
diff --git a/libedataserver/e-source-mail-submission.h b/libedataserver/e-source-mail-submission.h
index d23e541..4383f52 100644
--- a/libedataserver/e-source-mail-submission.h
+++ b/libedataserver/e-source-mail-submission.h
@@ -93,6 +93,11 @@ gchar *		e_source_mail_submission_dup_transport_uid
 void		e_source_mail_submission_set_transport_uid
 					(ESourceMailSubmission *extension,
 					 const gchar *transport_uid);
+gboolean	e_source_mail_submission_get_replies_to_origin_folder
+					(ESourceMailSubmission *extension);
+void		e_source_mail_submission_set_replies_to_origin_folder
+					(ESourceMailSubmission *extension,
+					 gboolean replies_to_origin_folder);
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]