diff options
Diffstat (limited to 'plugins/omemo/src/account_settings_widget.vala')
-rw-r--r-- | plugins/omemo/src/account_settings_widget.vala | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/plugins/omemo/src/account_settings_widget.vala b/plugins/omemo/src/account_settings_widget.vala index 2842c698..da3f6ca2 100644 --- a/plugins/omemo/src/account_settings_widget.vala +++ b/plugins/omemo/src/account_settings_widget.vala @@ -7,6 +7,7 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box { private Plugin plugin; private Label fingerprint; private Account account; + private Button btn; public AccountSettingWidget(Plugin plugin) { this.plugin = plugin; @@ -18,38 +19,31 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box { fingerprint.visible = true; pack_start(fingerprint); - Button btn = new Button(); + btn = new Button(); btn.image = new Image.from_icon_name("view-list-symbolic", IconSize.BUTTON); btn.relief = ReliefStyle.NONE; - btn.visible = true; + btn.visible = false; btn.valign = Align.CENTER; - btn.clicked.connect(() => { activated(); }); + btn.clicked.connect(() => { + activated(); + AccountSettingsDialog dialog = new AccountSettingsDialog(plugin, account); + dialog.set_transient_for((Window) get_toplevel()); + dialog.present(); + }); pack_start(btn, false); } public void set_account(Account account) { this.account = account; + btn.visible = false; try { Qlite.Row? row = plugin.db.identity.row_with(plugin.db.identity.account_id, account.id).inner; if (row == null) { fingerprint.set_markup("%s\n<span font='8'>%s</span>".printf(_("Own fingerprint"), _("Will be generated on first connect"))); } else { - uint8[] arr = Base64.decode(((!)row)[plugin.db.identity.identity_key_public_base64]); - arr = arr[1:arr.length]; - string res = ""; - foreach (uint8 i in arr) { - string s = i.to_string("%x"); - if (s.length == 1) s = "0" + s; - res = res + s; - if ((res.length % 9) == 8) { - if (res.length == 35) { - res += "\n"; - } else { - res += " "; - } - } - } + string res = fingerprint_markup(fingerprint_from_base64(((!)row)[plugin.db.identity.identity_key_public_base64])); fingerprint.set_markup("%s\n<span font_family='monospace' font='8'>%s</span>".printf(_("Own fingerprint"), res)); + btn.visible = true; } } catch (Qlite.DatabaseError e) { fingerprint.set_markup("%s\n<span font='8'>%s</span>".printf(_("Own fingerprint"), _("Database error"))); |