+ ModestAccountViewWindowPrivate *priv;
+ ModestAccountMgr *account_mgr;
+ gchar *account_name;
+
+ priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
+
+ account_mgr = modest_runtime_get_account_mgr();
+ account_name = modest_account_view_get_selected_account (priv->account_view);
+
+ if (account_name) {
+ gboolean removed;
+ GtkWidget *dialog;
+ gchar *txt;
+
+ dialog = gtk_dialog_new_with_buttons (_("Confirmation dialog"),
+ GTK_WINDOW (self),
+ GTK_DIALOG_MODAL,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_REJECT,
+ GTK_STOCK_OK,
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+ txt = g_strdup_printf (_("Do you really want to delete the account %s?"), account_name);
+ gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox),
+ gtk_label_new (txt), FALSE, FALSE, 0);
+ gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
+ g_free (txt);
+
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+ /* Remove account. If succeeded it removes also
+ 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);
+
+ removed = modest_account_mgr_remove_account (account_mgr,
+ account_name,
+ FALSE);
+
+ if (removed && is_default) {
+ /* Set a different account as the default, so there is always at least one default:
+ * This is not specified, and might be the wrong behaviour. murrayc. */
+ modest_account_mgr_set_first_account_as_default (account_mgr);
+ }
+
+ if (removed) {
+ /* Show confirmation dialog ??? */
+ } else {
+ /* Show error dialog ??? */
+ }
+ }
+ gtk_widget_destroy (dialog);
+ g_free (account_name);
+ }