Fix modest_utils_show_dialog_and_forget for gtk and modest shell
[modest] / src / widgets / modest-global-settings-dialog.c
index 77892e7..345211b 100644 (file)
  */
 
 #include <glib/gi18n.h>
-#include <gtk/gtknotebook.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtktogglebutton.h>
+#include <gtk/gtk.h>
 #include <string.h>
 #include "widgets/modest-global-settings-dialog.h"
 #include "widgets/modest-global-settings-dialog-priv.h"
 #include "modest-tny-msg.h"
 #include "modest-platform.h"
 #ifdef MODEST_TOOLKIT_HILDON2
-#include "hildon2/modest-selector-picker.h"
 #include "modest-hildon-includes.h"
-#else
-#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 +97,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;
 }
@@ -263,39 +247,18 @@ 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->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->auto_update = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->auto_update));
-       state->default_account = NULL;
-#endif
+       state->notifications = modest_togglable_get_active (priv->notifications);
+       state->add_to_contacts = modest_togglable_get_active (priv->add_to_contacts);
+       state->auto_update = modest_togglable_get_active (priv->auto_update);
+       id = modest_selector_get_active_id (priv->connect_via);
+       state->default_account = modest_selector_get_active_id (priv->default_account_selector);
        state->connect_via = *id;
-#ifndef MODEST_TOOLKIT_GTK
-#ifdef MODEST_TOOLKIT_HILDON2
-       state->size_limit = modest_number_editor_get_value (MODEST_NUMBER_EDITOR (priv->size_limit));
-#else
-       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
+       state->size_limit = modest_number_entry_get_value (priv->size_limit);
 
-#ifdef MODEST_TOOLKIT_HILDON2
-       id = modest_selector_picker_get_active_id (MODEST_SELECTOR_PICKER (priv->update_interval));
-#else
-       id = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->update_interval));
-#endif
+       id = modest_selector_get_active_id (priv->update_interval);
        state->update_interval = *id;
-#ifdef MODEST_TOOLKIT_HILDON2
-       id = modest_selector_picker_get_active_id (MODEST_SELECTOR_PICKER (priv->msg_format));
+       id = modest_selector_get_active_id (priv->msg_format);
        state->play_sound = priv->initial_state.play_sound;
-#else
-       state->play_sound = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->play_sound));
-       id = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->msg_format));
-#endif
        state->prefer_formatted_text = (*id == MODEST_FILE_FORMAT_FORMATTED_TEXT) ? TRUE : FALSE;
 }
 
@@ -303,7 +266,7 @@ 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;
 
@@ -314,6 +277,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);
@@ -337,7 +304,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;
                
@@ -383,6 +350,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 ||
@@ -419,8 +388,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);