[evolution] Add "reply-style-name" setting.



commit 54bb7dd76c8c698eb69bd7460cf74551c182b439
Author: Matthew Barnes <mbarnes redhat com>
Date:   Sun Mar 10 10:45:23 2013 -0400

    Add "reply-style-name" setting.
    
    Replaces the "reply-style" setting, which is now deprecated.
    
    The new setting uses an enum type compatible with EMailReplyStyle.

 data/org.gnome.evolution.mail.gschema.xml.in |   20 ++++++--
 modules/settings/e-settings-deprecated.c     |   69 ++++++++++++++++++++++++++
 2 files changed, 85 insertions(+), 4 deletions(-)
---
diff --git a/data/org.gnome.evolution.mail.gschema.xml.in b/data/org.gnome.evolution.mail.gschema.xml.in
index 69c5799..c3e26f3 100644
--- a/data/org.gnome.evolution.mail.gschema.xml.in
+++ b/data/org.gnome.evolution.mail.gschema.xml.in
@@ -7,6 +7,14 @@
     <value nick='quoted'   value='2'/>
   </enum>
 
+  <!-- Keep this synchronized with EMailReplyStyle. -->
+  <enum id="org.gnome.evolution.mail.ReplyStyle">
+    <value nick='quoted'       value='0'/>
+    <value nick='do-not-quote' value='1'/>
+    <value nick='attach'       value='2'/>
+    <value nick='outlook'      value='3'/>
+  </enum>
+
   <schema gettext-domain="evolution" id="org.gnome.evolution.mail" path="/org/gnome/evolution/mail/">
     <key name="prompt-check-if-default-mailer" type="b">
       <default>true</default>
@@ -347,10 +355,9 @@
       <default>'attached'</default>
       <_summary>Default forward style</_summary>
     </key>
-    <key name="reply-style" type="i">
-      <default>0</default>
-      <_summary>Default forward style</_summary>
-      <_description></_description>
+    <key name="reply-style-name" enum="org.gnome.evolution.mail.ReplyStyle">
+      <default>'quoted'</default>
+      <_summary>Default reply style</_summary>
     </key>
     <key name="prompt-on-empty-subject" type="b">
       <default>true</default>
@@ -551,6 +558,11 @@
       <_summary>(Deprecated) Default forward style</_summary>
       <_description>This key was deprecated in version 3.10 and should no longer be used.  Use 
"forward-style-name" instead.</_description>
     </key>
+    <key name="reply-style" type="i">
+      <default>0</default>
+      <_summary>(Deprecated) Default reply style</_summary>
+      <_description>This key was deprecated in version 3.10 and should no longer be used.  Use 
"reply-style-name" instead.</_description>
+    </key>
 
   </schema>
 
diff --git a/modules/settings/e-settings-deprecated.c b/modules/settings/e-settings-deprecated.c
index 2bed41a..f7b21ae 100644
--- a/modules/settings/e-settings-deprecated.c
+++ b/modules/settings/e-settings-deprecated.c
@@ -43,6 +43,7 @@ struct _ESettingsDeprecatedPrivate {
 
        GSettings *mail_settings;
        gulong forward_style_name_handler_id;
+       gulong reply_style_name_handler_id;
 };
 
 /* Flag values used in the "working-days" key. */
@@ -182,6 +183,30 @@ settings_deprecated_forward_style_name_cb (GSettings *settings,
 }
 
 static void
+settings_deprecated_reply_style_name_cb (GSettings *settings,
+                                         const gchar *key)
+{
+       /* XXX The "reply-style" key uses a completely different
+        *     numbering than the EMailReplyStyle enum.  *sigh* */
+       switch (g_settings_get_enum (settings, "reply-style-name")) {
+               case E_MAIL_REPLY_STYLE_QUOTED:
+                       g_settings_set_int (settings, "reply-style", 2);
+                       break;
+               case E_MAIL_REPLY_STYLE_DO_NOT_QUOTE:
+                       g_settings_set_int (settings, "reply-style", 3);
+                       break;
+               case E_MAIL_REPLY_STYLE_ATTACH:
+                       g_settings_set_int (settings, "reply-style", 0);
+                       break;
+               case E_MAIL_REPLY_STYLE_OUTLOOK:
+                       g_settings_set_int (settings, "reply-style", 1);
+                       break;
+               default:
+                       g_warn_if_reached ();
+       }
+}
+
+static void
 settings_deprecated_dispose (GObject *object)
 {
        ESettingsDeprecatedPrivate *priv;
@@ -251,6 +276,13 @@ settings_deprecated_dispose (GObject *object)
                priv->forward_style_name_handler_id = 0;
        }
 
+       if (priv->reply_style_name_handler_id > 0) {
+               g_signal_handler_disconnect (
+                       priv->mail_settings,
+                       priv->reply_style_name_handler_id);
+               priv->reply_style_name_handler_id = 0;
+       }
+
        g_clear_object (&priv->calendar_settings);
        g_clear_object (&priv->mail_settings);
 
@@ -308,6 +340,38 @@ settings_deprecated_constructed (GObject *object)
        g_settings_set_enum (
                priv->mail_settings, "forward-style-name", int_value);
 
+       /* XXX The "reply-style" key uses a completely different
+        *     numbering than the EMailReplyStyle enum.  *sigh* */
+       switch (g_settings_get_int (priv->mail_settings, "reply-style")) {
+               case 0:
+                       g_settings_set_enum (
+                               priv->mail_settings,
+                               "reply-style-name",
+                               E_MAIL_REPLY_STYLE_ATTACH);
+                       break;
+               case 1:
+                       g_settings_set_enum (
+                               priv->mail_settings,
+                               "reply-style-name",
+                               E_MAIL_REPLY_STYLE_OUTLOOK);
+                       break;
+               case 2:
+                       g_settings_set_enum (
+                               priv->mail_settings,
+                               "reply-style-name",
+                               E_MAIL_REPLY_STYLE_QUOTED);
+                       break;
+               case 3:
+                       g_settings_set_enum (
+                               priv->mail_settings,
+                               "reply-style-name",
+                               E_MAIL_REPLY_STYLE_DO_NOT_QUOTE);
+                       break;
+               default:
+                       /* do nothing */
+                       break;
+       }
+
        /* Write changes back to the deprecated keys. */
 
        handler_id = g_signal_connect (
@@ -354,6 +418,11 @@ settings_deprecated_constructed (GObject *object)
                priv->mail_settings, "changed::forward-style-name",
                G_CALLBACK (settings_deprecated_forward_style_name_cb), NULL);
        priv->forward_style_name_handler_id = handler_id;
+
+       handler_id = g_signal_connect (
+               priv->mail_settings, "changed::reply-style-name",
+               G_CALLBACK (settings_deprecated_reply_style_name_cb), NULL);
+       priv->reply_style_name_handler_id = handler_id;
 }
 
 static void


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