From 4e27949d872a8be6c9f8ea5d1ab607964c672f2a Mon Sep 17 00:00:00 2001 From: Michael James Gratton Date: Thu, 9 Feb 2017 21:54:36 +1100 Subject: [PATCH] Fix editing additional email addresses from account prefs. Bug 778364. * src/client/accounts/account-dialog-add-edit-pane.vala (AccountDialogAddEditPane): Pass an account id to edit_alternate_emails signal, not an email addess. * src/client/accounts/account-dialog.vala (AccountDialog::get_account_info_for_email): Rename method to "get_account_info" and param since it actually accepts an account id. Update call sites. * src/client/accounts/add-edit-page.vala (AddEditPage::id): Make RO access public, so the AddEditPane can access it. --- .../account-dialog-add-edit-pane.vala | 4 ++-- src/client/accounts/account-dialog.vala | 24 +++++++++---------- src/client/accounts/add-edit-page.vala | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/client/accounts/account-dialog-add-edit-pane.vala b/src/client/accounts/account-dialog-add-edit-pane.vala index 4c1e0efa..372cc5c7 100644 --- a/src/client/accounts/account-dialog-add-edit-pane.vala +++ b/src/client/accounts/account-dialog-add-edit-pane.vala @@ -17,7 +17,7 @@ public class AccountDialogAddEditPane : AccountDialogPane { public signal void size_changed(); - public signal void edit_alternate_emails(string email_address); + public signal void edit_alternate_emails(string id); public AccountDialogAddEditPane(Gtk.Stack stack) { base(stack); @@ -38,7 +38,7 @@ public class AccountDialogAddEditPane : AccountDialogPane { cancel_button.clicked.connect(() => { cancel(); }); add_edit_page.size_changed.connect(() => { size_changed(); }); - add_edit_page.edit_alternate_emails.connect(() => { edit_alternate_emails(add_edit_page.email_address); }); + add_edit_page.edit_alternate_emails.connect(() => { edit_alternate_emails(add_edit_page.id); }); pack_start(add_edit_page); pack_start(button_box, false, false); diff --git a/src/client/accounts/account-dialog.vala b/src/client/accounts/account-dialog.vala index ee95d134..7a7d965c 100644 --- a/src/client/accounts/account-dialog.vala +++ b/src/client/accounts/account-dialog.vala @@ -66,7 +66,7 @@ public class AccountDialog : Gtk.Dialog { // Grab the account info. While the addresses passed into this method should *always* be // available in Geary, we double-check to be defensive. - private Geary.AccountInformation? get_account_info_for_email(string email_address) { + private Geary.AccountInformation? get_account_info(string id) { Gee.Map accounts; try { accounts = Geary.Engine.instance.get_accounts(); @@ -76,21 +76,21 @@ public class AccountDialog : Gtk.Dialog { return null; } - if (!accounts.has_key(email_address)) { - debug("Unable to get account info for: %s", email_address); + if (!accounts.has_key(id)) { + debug("No such account: %s", id); return null; } - return accounts.get(email_address); + return accounts.get(id); } - private void on_edit_account(string email_address) { - on_edit_account_async.begin(email_address); + private void on_edit_account(string id) { + on_edit_account_async.begin(id); } - private async void on_edit_account_async(string email_address) { - Geary.AccountInformation? account = get_account_info_for_email(email_address); + private async void on_edit_account_async(string id) { + Geary.AccountInformation? account = get_account_info(id); if (account == null) return; @@ -105,8 +105,8 @@ public class AccountDialog : Gtk.Dialog { add_edit_pane.present(); } - private void on_delete_account(string email_address) { - Geary.AccountInformation? account = get_account_info_for_email(email_address); + private void on_delete_account(string id) { + Geary.AccountInformation? account = get_account_info(id); if (account == null) return; @@ -136,8 +136,8 @@ public class AccountDialog : Gtk.Dialog { } } - private void on_edit_alternate_emails(string email_address) { - Geary.AccountInformation? account_info = get_account_info_for_email(email_address); + private void on_edit_alternate_emails(string id) { + Geary.AccountInformation? account_info = get_account_info(id); if (account_info == null) return; diff --git a/src/client/accounts/add-edit-page.vala b/src/client/accounts/add-edit-page.vala index a00be5b5..83d5992c 100644 --- a/src/client/accounts/add-edit-page.vala +++ b/src/client/accounts/add-edit-page.vala @@ -15,7 +15,7 @@ public class AddEditPage : Gtk.Box { EDIT } - private string? id = null; + public string? id { get; private set; default = null; } public string real_name { get { return entry_real_name.text; }