[evolution-data-server] Bug 781744 - Support not storing sent messages



commit 5b36f0573743e19d1e7baab4e241dfc572c95afc
Author: Milan Crha <mcrha redhat com>
Date:   Mon Jul 3 12:31:29 2017 +0200

    Bug 781744 - Support not storing sent messages

 src/libedataserver/e-source-mail-submission.c |   69 ++++++++++++++++++++++++-
 src/libedataserver/e-source-mail-submission.h |    5 ++
 2 files changed, 73 insertions(+), 1 deletions(-)
---
diff --git a/src/libedataserver/e-source-mail-submission.c b/src/libedataserver/e-source-mail-submission.c
index 4039461..53686c8 100644
--- a/src/libedataserver/e-source-mail-submission.c
+++ b/src/libedataserver/e-source-mail-submission.c
@@ -46,13 +46,15 @@ struct _ESourceMailSubmissionPrivate {
        gchar *sent_folder;
        gchar *transport_uid;
        gboolean replies_to_origin_folder;
+       gboolean use_sent_folder;
 };
 
 enum {
        PROP_0,
        PROP_SENT_FOLDER,
        PROP_TRANSPORT_UID,
-       PROP_REPLIES_TO_ORIGIN_FOLDER
+       PROP_REPLIES_TO_ORIGIN_FOLDER,
+       PROP_USE_SENT_FOLDER
 };
 
 G_DEFINE_TYPE (
@@ -84,6 +86,12 @@ source_mail_submission_set_property (GObject *object,
                                E_SOURCE_MAIL_SUBMISSION (object),
                                g_value_get_boolean (value));
                        return;
+
+               case PROP_USE_SENT_FOLDER:
+                       e_source_mail_submission_set_use_sent_folder (
+                               E_SOURCE_MAIL_SUBMISSION (object),
+                               g_value_get_boolean (value));
+                       return;
        }
 
        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -116,6 +124,13 @@ source_mail_submission_get_property (GObject *object,
                                e_source_mail_submission_get_replies_to_origin_folder (
                                E_SOURCE_MAIL_SUBMISSION (object)));
                        return;
+
+               case PROP_USE_SENT_FOLDER:
+                       g_value_set_boolean (
+                               value,
+                               e_source_mail_submission_get_use_sent_folder (
+                               E_SOURCE_MAIL_SUBMISSION (object)));
+                       return;
        }
 
        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -168,6 +183,19 @@ e_source_mail_submission_class_init (ESourceMailSubmissionClass *class)
 
        g_object_class_install_property (
                object_class,
+               PROP_USE_SENT_FOLDER,
+               g_param_spec_boolean (
+                       "use-sent-folder",
+                       "Use Sent Folder",
+                       "Whether to save sent messages to sent-folder",
+                       TRUE,
+                       G_PARAM_READWRITE |
+                       G_PARAM_CONSTRUCT |
+                       G_PARAM_STATIC_STRINGS |
+                       E_SOURCE_PARAM_SETTING));
+
+       g_object_class_install_property (
+               object_class,
                PROP_TRANSPORT_UID,
                g_param_spec_string (
                        "transport-uid",
@@ -287,6 +315,45 @@ e_source_mail_submission_set_sent_folder (ESourceMailSubmission *extension,
 }
 
 /**
+ * e_source_mail_submission_get_use_sent_folder:
+ * @extension: an #ESourceMailSubmission
+ *
+ * Returns: whether save messages to the sent folder at all
+ *
+ * Since: 3.26
+ **/
+gboolean
+e_source_mail_submission_get_use_sent_folder (ESourceMailSubmission *extension)
+{
+       g_return_val_if_fail (E_IS_SOURCE_MAIL_SUBMISSION (extension), FALSE);
+
+       return extension->priv->use_sent_folder;
+}
+
+/**
+ * e_source_mail_submission_set_use_sent_folder:
+ * @extension: an #ESourceMailSubmission
+ * @use_sent_folder: the value to set
+ *
+ * Sets whether save messages to the sent folder at all.
+ *
+ * Since: 3.26
+ **/
+void
+e_source_mail_submission_set_use_sent_folder (ESourceMailSubmission *extension,
+                                             gboolean use_sent_folder)
+{
+       g_return_if_fail (E_IS_SOURCE_MAIL_SUBMISSION (extension));
+
+       if ((extension->priv->use_sent_folder ? 1 : 0) == (use_sent_folder ? 1 : 0))
+               return;
+
+       extension->priv->use_sent_folder = use_sent_folder;
+
+       g_object_notify (G_OBJECT (extension), "use-sent-folder");
+}
+
+/**
  * e_source_mail_submission_get_transport_uid:
  * @extension: an #ESourceMailSubmission
  *
diff --git a/src/libedataserver/e-source-mail-submission.h b/src/libedataserver/e-source-mail-submission.h
index 3ce33a2..80f71e8 100644
--- a/src/libedataserver/e-source-mail-submission.h
+++ b/src/libedataserver/e-source-mail-submission.h
@@ -86,6 +86,11 @@ gchar *              e_source_mail_submission_dup_sent_folder
 void           e_source_mail_submission_set_sent_folder
                                        (ESourceMailSubmission *extension,
                                         const gchar *sent_folder);
+gboolean       e_source_mail_submission_get_use_sent_folder
+                                       (ESourceMailSubmission *extension);
+void           e_source_mail_submission_set_use_sent_folder
+                                       (ESourceMailSubmission *extension,
+                                        gboolean use_sent_folder);
 const gchar *  e_source_mail_submission_get_transport_uid
                                        (ESourceMailSubmission *extension);
 gchar *                e_source_mail_submission_dup_transport_uid


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