X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-account-view-window.c;h=8e4a312a8cb49accd0b8257d1903f217f08712a9;hb=f3d0a6c5a9dd68e70ce914d66814330aabf33d37;hp=b8c38b49070920942006d232f8b215cab15442b7;hpb=0727def97bea123c219228b34de3842cb777dc15;p=modest diff --git a/src/maemo/modest-account-view-window.c b/src/maemo/modest-account-view-window.c index b8c38b4..8e4a312 100644 --- a/src/maemo/modest-account-view-window.c +++ b/src/maemo/modest-account-view-window.c @@ -35,6 +35,8 @@ #include #include "modest-platform.h" +#include "modest-ui-actions.h" +#include "modest-account-protocol.h" #include #include #include "modest-tny-platform-factory.h" @@ -239,49 +241,12 @@ on_delete_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) account_mgr = modest_runtime_get_account_mgr(); account_name = modest_account_view_get_selected_account (priv->account_view); - if(!account_name) - return; - account_title = modest_account_mgr_get_display_name(account_mgr, account_name); - /* This could happen if the account is being deleted */ - if (!account_title) - return; - - 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"), - account_title); - } else { - txt = g_strdup_printf (_("emev_nc_delete_mailboximap"), - account_title); - } - - response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), txt); - g_free (txt); - txt = NULL; - - if (response == GTK_RESPONSE_OK) { - /* Remove account. If it succeeds then it also removes - 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)) - is_default = TRUE; - g_free (default_account_name); - - gboolean removed = modest_account_mgr_remove_account (account_mgr, account_name); - if (!removed) { - g_warning ("%s: modest_account_mgr_remove_account() failed.\n", __FUNCTION__); - } - } - g_free (account_title); - } + if (check_for_active_account (self, account_name)) + modest_ui_actions_on_delete_account (GTK_WINDOW (self), account_name, account_title); + + g_free (account_title); g_free (account_name); } @@ -328,14 +293,24 @@ on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) * the user wishes. */ if (check_for_active_account (self, account_name)) { - GtkWidget *dialog = modest_tny_account_store_show_account_settings_dialog (modest_runtime_get_account_store (), account_name); - - /* When the dialog is closed, reconnect */ - g_signal_connect (dialog, "response", - G_CALLBACK (on_account_settings_dialog_response), - self); + ModestAccountProtocol *proto; + ModestProtocolType proto_type; + + /* Get proto */ + proto_type = modest_account_mgr_get_store_protocol (modest_runtime_get_account_mgr (), + account_name); + proto = (ModestAccountProtocol *) + modest_protocol_registry_get_protocol_by_type (modest_runtime_get_protocol_registry (), + proto_type); + + /* Create and show the dialog */ + if (proto && MODEST_IS_ACCOUNT_PROTOCOL (proto)) { + ModestAccountSettingsDialog *dialog = + modest_account_protocol_get_account_settings_dialog (proto, account_name); + modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog), (GtkWindow *) self); + gtk_widget_show (GTK_WIDGET (dialog)); + } } - g_free (account_name); } @@ -376,7 +351,8 @@ on_new_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) /* there is no such wizard yet */ wizard = GTK_DIALOG (modest_easysetup_wizard_dialog_new ()); modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), - GTK_WINDOW (wizard)); + GTK_WINDOW (wizard), + GTK_WINDOW (self)); /* if there is already another modal dialog, make it non-modal */ if (dialog) @@ -390,7 +366,6 @@ on_new_button_clicked (GtkWidget *button, ModestAccountViewWindow *self) gtk_widget_show (GTK_WIDGET (wizard)); } - static void on_close_button_clicked (GtkWidget *button, gpointer user_data) {