On opening a new window, if current window is an editor:
[modest] / src / widgets / modest-global-settings-dialog.c
index 61400f8..8f0456b 100644 (file)
 #include "widgets/modest-combo-box.h"
 #endif
 #ifndef MODEST_TOOLKIT_GTK
-#if MODEST_HILDON_API == 0
-#include <hildon-widgets/hildon-number-editor.h>
-#else
 #include <hildon/hildon-number-editor.h>
-#endif /*MODEST_HILDON_API = 0*/
 #endif
 /* include other impl specific header files */
 
@@ -107,15 +103,9 @@ modest_global_settings_dialog_get_type (void)
                        (GInstanceInitFunc) modest_global_settings_dialog_init,
                        NULL
                };
-#ifdef MODEST_TOOLKIT_HILDON2
-               my_type = g_type_register_static (HILDON_TYPE_DIALOG,
-                                                 "ModestGlobalSettingsDialog",
-                                                 &my_info, 0);
-#else
                my_type = g_type_register_static (GTK_TYPE_DIALOG,
                                                  "ModestGlobalSettingsDialog",
                                                  &my_info, 0);
-#endif
        }
        return my_type;
 }
@@ -216,25 +206,35 @@ _modest_global_settings_dialog_get_update_interval (void)
 {
        GSList *list = NULL;
 
-       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_5_MIN, 
-                                _("mcen_va_options_updateinterval_5min"), 
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_5_MIN,
+                                _("mcen_va_options_updateinterval_5min"),
                                 &list);
-       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_10_MIN, 
-                                _("mcen_va_options_updateinterval_10min"), 
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_10_MIN,
+                                _("mcen_va_options_updateinterval_10min"),
                                 &list);
-       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_15_MIN, 
-                                _("mcen_va_options_updateinterval_15min"), 
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_15_MIN,
+                                _("mcen_va_options_updateinterval_15min"),
                                 &list);
-       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_30_MIN, 
-                                _("mcen_va_options_updateinterval_30min"), 
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_30_MIN,
+                                _("mcen_va_options_updateinterval_30min"),
                                 &list);
-       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_1_HOUR, 
-                                _("mcen_va_options_updateinterval_1h"), 
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_1_HOUR,
+                                _("mcen_va_options_updateinterval_1h"),
                                 &list);
-       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_2_HOUR, 
-                                _("mcen_va_options_updateinterval_2h"), 
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_2_HOUR,
+                                _("mcen_va_options_updateinterval_2h"),
+                                &list);
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_4_HOUR,
+                                _("mcen_va_options_updateinterval_4h"),
+                                &list);
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_8_HOUR,
+                                _("mcen_va_options_updateinterval_8h"),
+                                &list);
+       add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_24_HOUR,
+                                _("mcen_va_options_updateinterval_24h"),
                                 &list);
 
+
        return (ModestPairList *) g_slist_reverse (list);
 }
 
@@ -262,19 +262,24 @@ get_current_settings (ModestGlobalSettingsDialogPrivate *priv,
 {
        gint *id;
 
-       /* Get values from UI */
 #ifdef MODEST_TOOLKIT_HILDON2
        id = modest_selector_picker_get_active_id (MODEST_SELECTOR_PICKER (priv->connect_via));
        state->auto_update = hildon_check_button_get_active (HILDON_CHECK_BUTTON (priv->auto_update));
+       state->notifications = hildon_check_button_get_active (HILDON_CHECK_BUTTON (priv->notifications));
+       state->add_to_contacts = hildon_check_button_get_active (HILDON_CHECK_BUTTON (priv->add_to_contacts));
        state->default_account = modest_selector_picker_get_active_id (MODEST_SELECTOR_PICKER (priv->default_account_selector));
 #else
        id = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->connect_via));
+       state->notifications = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->notifications));
+       state->add_to_contacts = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->add_to_contacts));
        state->auto_update = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->auto_update));
        state->default_account = NULL;
 #endif
        state->connect_via = *id;
 #ifndef MODEST_TOOLKIT_GTK
+#ifndef MODEST_TOOLKIT_HILDON2
        state->size_limit = hildon_number_editor_get_value (HILDON_NUMBER_EDITOR (priv->size_limit));
+#endif
 #else
        state->size_limit = gtk_spin_button_get_value (GTK_SPIN_BUTTON (priv->size_limit));
 #endif
@@ -290,16 +295,22 @@ get_current_settings (ModestGlobalSettingsDialogPrivate *priv,
        state->play_sound = priv->initial_state.play_sound;
 #else
        state->play_sound = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->play_sound));
+#ifndef MODEST_TOOLKIT_GTK
        id = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->msg_format));
 #endif
+#endif
+#ifdef MODEST_TOOLKIT_GTK
+       state->prefer_formatted_text = FALSE;
+#else
        state->prefer_formatted_text = (*id == MODEST_FILE_FORMAT_FORMATTED_TEXT) ? TRUE : FALSE;
+#endif
 }
 
 static gboolean
 modest_global_settings_dialog_save_settings_default (ModestGlobalSettingsDialog *self)
 {
        ModestConf *conf;
-       ModestGlobalSettingsState current_state;
+       ModestGlobalSettingsState current_state = {0,};
        GError *error = NULL;
        ModestGlobalSettingsDialogPrivate *priv;
 
@@ -310,6 +321,10 @@ modest_global_settings_dialog_save_settings_default (ModestGlobalSettingsDialog
        get_current_settings (priv, &current_state);
 
        /* Save configuration */
+       modest_conf_set_bool (conf, MODEST_CONF_NOTIFICATIONS, current_state.notifications, &error);
+       RETURN_FALSE_ON_ERROR(error);
+       modest_conf_set_bool (conf, MODEST_CONF_AUTO_ADD_TO_CONTACTS, current_state.add_to_contacts, &error);
+       RETURN_FALSE_ON_ERROR(error);
        modest_conf_set_bool (conf, MODEST_CONF_AUTO_UPDATE, current_state.auto_update, &error);
        RETURN_FALSE_ON_ERROR(error);
        modest_conf_set_int (conf, MODEST_CONF_UPDATE_WHEN_CONNECTED_BY, current_state.connect_via, NULL);
@@ -333,7 +348,7 @@ modest_global_settings_dialog_save_settings_default (ModestGlobalSettingsDialog
        if (priv->initial_state.auto_update != current_state.auto_update ||
            priv->initial_state.connect_via != current_state.connect_via ||
            priv->initial_state.update_interval != current_state.update_interval) {
-               
+
                TnyAccountStore *account_store;
                TnyDevice *device;
                
@@ -379,6 +394,8 @@ settings_changed (ModestGlobalSettingsState initial_state,
                  ModestGlobalSettingsState current_state)
 {
        if (initial_state.auto_update != current_state.auto_update ||
+           initial_state.notifications != current_state.notifications ||
+           initial_state.add_to_contacts != current_state.add_to_contacts ||
            initial_state.connect_via != current_state.connect_via ||
            initial_state.update_interval != current_state.update_interval ||
            initial_state.size_limit != current_state.size_limit ||
@@ -415,8 +432,8 @@ on_response (GtkDialog *dialog,
             gpointer user_data)
 {
        ModestGlobalSettingsDialogPrivate *priv;
-       ModestGlobalSettingsState current_state;
-       gboolean changed;
+       ModestGlobalSettingsState current_state = {0,};
+       gboolean changed = FALSE;
 
        priv = MODEST_GLOBAL_SETTINGS_DIALOG_GET_PRIVATE (user_data);