* src/maemo/modest-msg-edit-window.c:
[modest] / src / maemo / modest-account-view-window.c
index f343aaa..f6cb3d3 100644 (file)
@@ -34,6 +34,7 @@
 #include <widgets/modest-account-view.h>
 
 #include <modest-runtime.h>
+#include "modest-platform.h"
 #include <modest-account-mgr-helpers.h>
 #include <string.h>
 #include "modest-tny-platform-factory.h"
@@ -128,23 +129,15 @@ on_selection_changed (GtkTreeSelection *sel, ModestAccountViewWindow *self)
        GtkTreeModel                   *model;
        GtkTreeIter                     iter;
        gboolean                        has_selection;
-       gchar                          *account_name;
-       gchar                          *default_account_name;
        
        priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
 
        has_selection =
                gtk_tree_selection_get_selected (sel, &model, &iter);
 
+       /* Set the status of the buttons */
        gtk_widget_set_sensitive (priv->edit_button, has_selection);
        gtk_widget_set_sensitive (priv->delete_button, has_selection);  
-
-       account_name = modest_account_view_get_selected_account (priv->account_view);
-       default_account_name = modest_account_mgr_get_default_account(
-               modest_runtime_get_account_mgr());
-
-       g_free (account_name);
-       g_free (default_account_name);
 }
 
 /** Check whether any connections are active, and cancel them if 
@@ -223,6 +216,8 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
                if (check_for_active_account (self, account_name)) {
                        /* The warning text depends on the account type: */
                        gchar *txt = NULL;      
+                       gint response;
+
                        if (modest_account_mgr_get_store_protocol (account_mgr, account_name) 
                                == MODEST_PROTOCOL_STORE_POP) {
                                txt = g_strdup_printf (_("emev_nc_delete_mailbox"), 
@@ -239,10 +234,14 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
                        g_free (txt);
                        txt = NULL;
        
-                       if (gtk_dialog_run (dialog) == GTK_RESPONSE_OK) {
+                       response = gtk_dialog_run (dialog);
+                       gtk_widget_destroy (GTK_WIDGET (dialog));
+                       while (gtk_events_pending ())
+                               gtk_main_iteration ();
+
+                       if (response == GTK_RESPONSE_OK) {
                                /* Remove account. If it succeeds then it also removes
-                                  the account from the ModestAccountView: */
-                                 
+                                  the account from the ModestAccountView: */                             
                                gboolean is_default = FALSE;
                                gchar *default_account_name = modest_account_mgr_get_default_account (account_mgr);
                                if (default_account_name && (strcmp (default_account_name, account_name) == 0))
@@ -254,10 +253,8 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
                                        g_warning ("%s: modest_account_mgr_remove_account() failed.\n", __FUNCTION__);
                                }
                        }
-                       gtk_widget_destroy (GTK_WIDGET (dialog));
                        g_free (account_title);
-               }
-               
+               }               
                g_free (account_name);
        }
 }
@@ -292,34 +289,31 @@ on_wizard_response (GtkDialog *dialog, gint response, gpointer user_data)
 {      
        /* The response has already been handled by the wizard dialog itself,
         * creating the new account.
-        */
-        
+        */      
        /* Destroy the dialog: */
-       if (dialog) {
+       if (dialog)
                gtk_widget_destroy (GTK_WIDGET (dialog));
-               modest_window_mgr_set_modal_dialog (
-                       modest_runtime_get_window_mgr(), NULL);
-       }
 }
 
 static void
 on_new_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
 {
-       GtkDialog *wizard, *dialog;
+       GtkDialog *wizard;
+       GtkWindow *dialog;
        
        /* Show the easy-setup wizard: */       
-       dialog = modest_window_mgr_get_modal_dialog (modest_runtime_get_window_mgr());
+       dialog = modest_window_mgr_get_modal (modest_runtime_get_window_mgr());
        if (dialog && MODEST_IS_EASYSETUP_WIZARD_DIALOG(dialog)) {
                /* old wizard is active already; 
                 */
-               gtk_window_present (GTK_WINDOW(dialog));
+               gtk_window_present (dialog);
                return;
        }
        
        /* there is no such wizard yet */
-       wizard = GTK_DIALOG(modest_easysetup_wizard_dialog_new ());
-       modest_window_mgr_set_modal_dialog (modest_runtime_get_window_mgr(), 
-                                           GTK_DIALOG(wizard));
+       wizard = GTK_DIALOG (modest_easysetup_wizard_dialog_new ());
+       modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), 
+                                    GTK_WINDOW (wizard));
 
        /* if there is already another modal dialog, make it non-modal */
        if (dialog)
@@ -384,7 +378,6 @@ button_box_new (ModestAccountViewWindow *self)
        return button_box;
 }
 
-
 static GtkWidget*
 window_vbox_new (ModestAccountViewWindow *self)
 {
@@ -394,6 +387,7 @@ window_vbox_new (ModestAccountViewWindow *self)
        GtkWidget *main_hbox     = gtk_hbox_new (FALSE, 6);
        
        priv->account_view = modest_account_view_new (modest_runtime_get_account_mgr());
+
        gtk_widget_set_size_request (GTK_WIDGET(priv->account_view), 300, 400);
        gtk_widget_show (GTK_WIDGET (priv->account_view));
 
@@ -421,9 +415,6 @@ window_vbox_new (ModestAccountViewWindow *self)
 static void
 modest_account_view_window_init (ModestAccountViewWindow *obj)
 {
-/*
-       ModestAccountViewWindowPrivate *priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(obj);
-*/             
        gtk_box_pack_start (GTK_BOX((GTK_DIALOG (obj)->vbox)), GTK_WIDGET (window_vbox_new (obj)), 
                TRUE, TRUE, 2);
        
@@ -431,13 +422,16 @@ modest_account_view_window_init (ModestAccountViewWindow *obj)
                TRUE, TRUE, 2);
 
        gtk_window_set_title (GTK_WINDOW (obj), _("mcen_ti_emailsetup_accounts"));
-}
 
+}
 
 GtkWidget*
 modest_account_view_window_new (void)
 {
        GObject *obj = g_object_new(MODEST_TYPE_ACCOUNT_VIEW_WINDOW, NULL);
        
+       /* Attach dialog help */
+       modest_platform_set_dialog_help (GTK_DIALOG (obj), "applications_email_accountsettings");
+
        return GTK_WIDGET(obj);
 }