From a45ba285413a40740275ff91a38eb7f513488eff Mon Sep 17 00:00:00 2001
From: Dennis Fink <dennis.fink@c3l.lu>
Date: Mon, 30 Oct 2017 17:08:19 +0100
Subject: 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(-)

(limited to 'main/src')

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 <b>%s</b>? 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) {
-- 
cgit v1.2.3-70-g09d2