Bug #268618 - Add: Save replies in the folder of the message being replied to
authorMilan Crha <mcrha@redhat.com>
Thu, 18 Oct 2012 17:43:28 +0000 (19:43 +0200)
committerMilan Crha <mcrha@redhat.com>
Thu, 18 Oct 2012 17:43:28 +0000 (19:43 +0200)
configure.ac
libedataserver/e-source-mail-submission.c
libedataserver/e-source-mail-submission.h

index 75adb87..20ce95c 100644 (file)
@@ -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
 
index ae252fe..84f45a0 100644 (file)
@@ -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");
+}
index d23e541..4383f52 100644 (file)
@@ -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