+ ModestAccountViewWindowPrivate *priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
+
+ gchar* account_name = modest_account_view_get_selected_account (priv->account_view);
+ if (!account_name)
+ return;
+
+ /* Check whether any connections are active, and cancel them if
+ * the user wishes.
+ */
+ ModestAccountMgr* mgr = modest_runtime_get_account_mgr ();
+ ModestMailOperationQueue* queue = modest_runtime_get_mail_operation_queue();
+ if (modest_account_mgr_account_is_busy(mgr, account_name)) {
+ GtkWidget *note = hildon_note_new_confirmation (GTK_WINDOW (self),
+ _("emev_nc_disconnect_account"));
+ const int response = gtk_dialog_run (GTK_DIALOG(note));
+ gtk_widget_destroy (note);
+ if (response == GTK_RESPONSE_OK) {
+ /* FIXME: We should only cancel those of this account */
+ modest_mail_operation_queue_cancel_all(queue);
+ }
+ else
+ return;
+ }
+
+ /* Show the Account Settings window: */
+ ModestAccountSettingsDialog *dialog = modest_account_settings_dialog_new ();
+ modest_account_settings_dialog_set_account_name (dialog, account_name);
+
+ modest_maemo_show_dialog_and_forget (GTK_WINDOW (self), GTK_DIALOG (dialog));
+
+ g_free (account_name);