diff options
Diffstat (limited to 'plugins/omemo/src/ui/account_settings_widget.vala')
-rw-r--r-- | plugins/omemo/src/ui/account_settings_widget.vala | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/plugins/omemo/src/ui/account_settings_widget.vala b/plugins/omemo/src/ui/account_settings_widget.vala new file mode 100644 index 00000000..6148da56 --- /dev/null +++ b/plugins/omemo/src/ui/account_settings_widget.vala @@ -0,0 +1,54 @@ +using Gtk; +using Dino.Entities; + +namespace Dino.Plugins.Omemo { + +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; + + fingerprint = new Label("..."); + fingerprint.xalign = 0; + Border border = new Button().get_style_context().get_padding(StateFlags.NORMAL); + fingerprint.margin_top = border.top + 1; + fingerprint.margin_start = border.left + 1; + fingerprint.visible = true; + pack_start(fingerprint); + + btn = new Button(); + btn.image = new Image.from_icon_name("view-list-symbolic", IconSize.BUTTON); + btn.relief = ReliefStyle.NONE; + btn.visible = false; + btn.valign = Align.CENTER; + btn.clicked.connect(() => { + activated(); + ContactDetailsDialog dialog = new ContactDetailsDialog(plugin, account, account.bare_jid); + 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; + 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 { + 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; + } + } + + public void deactivate() { + } +} + +} |