aboutsummaryrefslogtreecommitdiff
path: root/plugins/omemo/src/ui/account_settings_widget.vala
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/omemo/src/ui/account_settings_widget.vala')
-rw-r--r--plugins/omemo/src/ui/account_settings_widget.vala54
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() {
+ }
+}
+
+}