From a45ba285413a40740275ff91a38eb7f513488eff Mon Sep 17 00:00:00 2001 From: Dennis Fink Date: Mon, 30 Oct 2017 17:08:19 +0100 Subject: [PATCH] Added a confirmation dialog before removing an account. Fixes #51 --- main/src/ui/manage_accounts/dialog.vala | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/main/src/ui/manage_accounts/dialog.vala b/main/src/ui/manage_accounts/dialog.vala index 62b797fa..af9686c8 100644 --- a/main/src/ui/manage_accounts/dialog.vala +++ b/main/src/ui/manage_accounts/dialog.vala @@ -126,15 +126,23 @@ public class Dialog : Gtk.Dialog { } private void remove_account(AccountRow account_item) { - account_list.remove(account_item); - account_list.queue_draw(); - if (account_item.account.enabled) account_disabled(account_item.account); - account_item.account.remove(); - if (account_list.get_row_at_index(0) != null) { - account_list.select_row(account_list.get_row_at_index(0)); - } else { - main_stack.set_visible_child_name("no_accounts"); + Gtk.MessageDialog msg = new Gtk.MessageDialog ( + this, Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL, + Gtk.MessageType.WARNING, Gtk.ButtonsType.YES_NO, + _("Delete Account")); + msg.format_secondary_markup(_("Do you really want to delete %s? This action is irreversible!"), account_item.jid_label.get_text()); + if (msg.run() == Gtk.ResponseType.YES) { + account_list.remove(account_item); + account_list.queue_draw(); + if (account_item.account.enabled) account_disabled(account_item.account); + account_item.account.remove(); + if (account_list.get_row_at_index(0) != null) { + account_list.select_row(account_list.get_row_at_index(0)); + } else { + main_stack.set_visible_child_name("no_accounts"); + } } + msg.close(); } private void on_account_list_row_selected(ListBoxRow? row) {