diff options
Diffstat (limited to 'main/src/ui/manage_accounts')
-rw-r--r-- | main/src/ui/manage_accounts/add_account_dialog.vala | 17 | ||||
-rw-r--r-- | main/src/ui/manage_accounts/dialog.vala | 4 |
2 files changed, 14 insertions, 7 deletions
diff --git a/main/src/ui/manage_accounts/add_account_dialog.vala b/main/src/ui/manage_accounts/add_account_dialog.vala index 558738aa..cefc3261 100644 --- a/main/src/ui/manage_accounts/add_account_dialog.vala +++ b/main/src/ui/manage_accounts/add_account_dialog.vala @@ -70,12 +70,14 @@ public class AddAccountDialog : Gtk.Dialog { }; private StreamInteractor stream_interactor; + private Database db; private HashMap<ListBoxRow, string> list_box_jids = new HashMap<ListBoxRow, string>(); private Jid? server_jid = null; private Xep.InBandRegistration.Form? form = null; - public AddAccountDialog(StreamInteractor stream_interactor) { + public AddAccountDialog(StreamInteractor stream_interactor, Database db) { this.stream_interactor = stream_interactor; + this.db = db; this.title = _("Add Account"); // Sign in - Jid @@ -258,8 +260,8 @@ public class AddAccountDialog : Gtk.Dialog { break; } } else { + add_activate_account(account); show_success(); - added(account); } } @@ -343,9 +345,9 @@ public class AddAccountDialog : Gtk.Dialog { case "password": password = field.get_value_string(); break; } } - Account account = new Account(new Jid(username + "@" + server_jid.domainpart), null, password, null); + Account account = new Account(new Jid.components(username, server_jid.domainpart, null), null, password, null); + add_activate_account(account); show_success(); - added(account); } else { display_notification(error); } @@ -360,6 +362,13 @@ public class AddAccountDialog : Gtk.Dialog { }); } + private void add_activate_account(Account account) { + account.enabled = true; + account.persist(db); + stream_interactor.connect_account(account); + added(account); + } + private void animate_window_resize(Widget widget) { // TODO code duplication int def_height, curr_width, curr_height; get_size(out curr_width, out curr_height); diff --git a/main/src/ui/manage_accounts/dialog.vala b/main/src/ui/manage_accounts/dialog.vala index bcc0f017..e605e083 100644 --- a/main/src/ui/manage_accounts/dialog.vala +++ b/main/src/ui/manage_accounts/dialog.vala @@ -108,10 +108,9 @@ public class Dialog : Gtk.Dialog { } private void show_add_account_dialog() { - AddAccountDialog add_account_dialog = new AddAccountDialog(stream_interactor); + AddAccountDialog add_account_dialog = new AddAccountDialog(stream_interactor, db); add_account_dialog.set_transient_for(this); add_account_dialog.added.connect((account) => { - account.persist(db); AccountRow account_item = add_account(account); account_list.select_row(account_item); account_list.queue_draw(); @@ -174,7 +173,6 @@ public class Dialog : Gtk.Dialog { private bool change_account_state(bool state) { selected_account.enabled = state; if (state) { - if (selected_account.enabled) account_disabled(selected_account); account_enabled(selected_account); } else { account_disabled(selected_account); |