2007-05-09 Murray Cumming <murrayc@murrayc.com>
[modest] / src / maemo / modest-account-view-window.c
index eba9ad3..0307e4e 100644 (file)
@@ -167,6 +167,10 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
                GtkWidget *dialog;
                gchar *txt;
 
                GtkWidget *dialog;
                gchar *txt;
 
+               /* Freeze updates, so we can do just one update afterwards, 
+                * instead of responding to every conf key change: */
+               modest_account_view_block_conf_updates (priv->account_view);
+               
                dialog = gtk_dialog_new_with_buttons (_("Confirmation dialog"),
                                                      GTK_WINDOW (self),
                                                      GTK_DIALOG_MODAL,
                dialog = gtk_dialog_new_with_buttons (_("Confirmation dialog"),
                                                      GTK_WINDOW (self),
                                                      GTK_DIALOG_MODAL,
@@ -213,6 +217,9 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
                gtk_widget_destroy (dialog);
                g_free (account_title);
                g_free (account_name);
                gtk_widget_destroy (dialog);
                g_free (account_title);
                g_free (account_name);
+               
+               /* Update the view: */
+               modest_account_view_unblock_conf_updates (priv->account_view);
        }
 }
 
        }
 }
 
@@ -225,6 +232,10 @@ on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
        if (!account_name)
                return;
                
        if (!account_name)
                return;
                
+       /* Freeze updates, so we can do just one update afterwards, 
+        * instead of responding to every conf key change: */
+       modest_account_view_block_conf_updates (priv->account_view);
+               
        /* Show the Account Settings window: */
        ModestAccountSettingsDialog *dialog = modest_account_settings_dialog_new ();
        modest_account_settings_dialog_set_account_name (dialog, account_name);
        /* Show the Account Settings window: */
        ModestAccountSettingsDialog *dialog = modest_account_settings_dialog_new ();
        modest_account_settings_dialog_set_account_name (dialog, account_name);
@@ -234,16 +245,28 @@ on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
        gtk_widget_destroy (GTK_WIDGET (dialog));
        
        g_free (account_name);
        gtk_widget_destroy (GTK_WIDGET (dialog));
        
        g_free (account_name);
+       
+       /* Update the view: */
+       modest_account_view_unblock_conf_updates (priv->account_view);  
 }
 
 static void
 on_new_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
 {
 }
 
 static void
 on_new_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
 {
+       ModestAccountViewWindowPrivate *priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
+       
+       /* Freeze updates, so we can do just one update afterwards, 
+        * instead of responding to every conf key change: */
+       modest_account_view_block_conf_updates (priv->account_view);
+       
        /* Show the easy-setup wizard: */
        ModestEasysetupWizardDialog *wizard = modest_easysetup_wizard_dialog_new ();
        gtk_window_set_transient_for (GTK_WINDOW (wizard), GTK_WINDOW (self));
        gtk_dialog_run (GTK_DIALOG (wizard));
        gtk_widget_destroy (GTK_WIDGET (wizard));
        /* Show the easy-setup wizard: */
        ModestEasysetupWizardDialog *wizard = modest_easysetup_wizard_dialog_new ();
        gtk_window_set_transient_for (GTK_WINDOW (wizard), GTK_WINDOW (self));
        gtk_dialog_run (GTK_DIALOG (wizard));
        gtk_widget_destroy (GTK_WIDGET (wizard));
+       
+       /* Allow updates: */
+       modest_account_view_unblock_conf_updates (priv->account_view);
 }
 
 
 }