changeset 9536517d946f in /home/hg/repos/gajim-plugins
author: lovetox <forenjunkie(a)chello.at>
branches:
details:gajim-plugins?cmd=changeset;node=9536517d946f
description: Add own device fingerprints to fingerprint window
diffstat:
omemo/fpr_dialog.ui | 200 ++++++++++++++++++++++++++++++++++++++++-----------
omemo/ui.py | 65 ++++++++++-----
2 files changed, 198 insertions(+), 67 deletions(-)
diffs (truncated from 359 to 300 lines):
diff -r fafe86698a1d -r 9536517d946f omemo/fpr_dialog.ui
--- a/omemo/fpr_dialog.ui Tue Jul 19 19:40:52 2016 +0200
+++ b/omemo/fpr_dialog.ui Tue Jul 19 23:00:17 2016 +0200
@@ -23,6 +23,7 @@
<object class="GtkNotebook" id="notebook1">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <signal name="switch-page" handler="update_context_list" after="yes" swapped="no"/>
<child>
<object class="GtkVBox" id="vbox4">
<property name="visible">True</property>
@@ -30,47 +31,6 @@
<property name="border_width">12</property>
<property name="spacing">10</property>
<child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">10</property>
- <child>
- <object class="GtkLabel" id="fingerprint_label_desc">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" comments="Descriptive label">Own Fingerprint:</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="fingerprint_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"><tt>-------- -------- -------- -------- -------- </tt></property>
- <property name="use_markup">True</property>
- <property name="selectable">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
<object class="GtkScrolledWindow" id="scrolledwindow1">
<property name="height_request">100</property>
<property name="visible">True</property>
@@ -127,7 +87,7 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -154,7 +114,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
@@ -163,12 +123,164 @@
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes" comments="tab label">Known Fingerprints</property>
+ <property name="label" translatable="yes" comments="tab label">Contact</property>
</object>
<packing>
<property name="tab_fill">False</property>
</packing>
</child>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel" id="fingerprint_label_desc1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Descriptive label">Own Fingerprint:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="fingerprint_label_own">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"><tt>-------- -------- -------- -------- -------- </tt></property>
+ <property name="use_markup">True</property>
+ <property name="selectable">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow2">
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <object class="GtkTreeView" id="fingerprint_view_own">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="model">fingerprint_store</property>
+ <property name="headers_clickable">False</property>
+ <property name="search_column">0</property>
+ <property name="tooltip_column">3</property>
+ <signal name="button-press-event" handler="fpr_button_pressed_cb" swapped="no"/>
+ <child>
+ <object class="GtkTreeViewColumn" id="name_column1">
+ <property name="resizable">True</property>
+ <property name="title">Name</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="trust_column1">
+ <property name="resizable">True</property>
+ <property name="title">Trust</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertoggle2"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="fingerprint_column1">
+ <property name="resizable">True</property>
+ <property name="title">Fingerprint</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3"/>
+ <attributes>
+ <attribute name="markup">3</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkButton" id="trust_button1">
+ <property name="label" translatable="yes" comments="button">Verify Fingerprint</property>
+ <property name="width_request">150</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="trust_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Own Devices</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
</object>
<object class="GtkMenu" id="fprclipboard_menu">
<property name="visible">True</property>
diff -r fafe86698a1d -r 9536517d946f omemo/ui.py
--- a/omemo/ui.py Tue Jul 19 19:40:52 2016 +0200
+++ b/omemo/ui.py Tue Jul 19 23:00:17 2016 +0200
@@ -413,21 +413,36 @@
self.fpr_view.set_model(self.fpr_model)
self.fpr_view.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
- self.child.pack_start(self.B.get_object('notebook1'))
+ self.fpr_view_own = self.B.get_object('fingerprint_view_own')
+ self.fpr_view_own.set_model(self.fpr_model)
+ self.fpr_view_own.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
+
+ self.notebook = self.B.get_object('notebook1')
+
+ self.child.pack_start(self.notebook)
self.B.connect_signals(self)
+ self.account = self.contact.account.name
+ self.omemostate = self.plugin.get_omemo_state(self.account)
+
+ ownfpr = binascii.hexlify(self.omemostate.store.getIdentityKeyPair()
+ .getPublicKey().serialize())
+ ownfpr = self.human_hash(ownfpr[2:])
+
+ self.B.get_object('fingerprint_label_own').set_markup('<tt>%s</tt>'
+ % ownfpr)
+
self.update_context_list()
def on_close_button_clicked(self, widget):
self.hide()
def trust_button_clicked_cb(self, button, *args):
- account = self.contact.account.name
-
- state = self.plugin.get_omemo_state(account)
-
- mod, paths = self.fpr_view.get_selection().get_selected_rows()
+ if self.notebook.get_current_page() == 1:
+ mod, paths = self.fpr_view_own.get_selection().get_selected_rows()
+ else:
+ mod, paths = self.fpr_view.get_selection().get_selected_rows()
for path in paths:
it = mod.get_iter(path)
@@ -439,20 +454,23 @@
gtk.STOCK_NO, gtk.RESPONSE_NO))
l = gtk.Label()
l.set_markup('Do you want to trust the following '
- 'fingerprint for the contact <b>%s</b> on the account <b>%s</b>?'
- '\n\n<tt>%s</tt>' % (user, account, fpr))
+ 'fingerprint for the contact <b>%s</b> '
+ 'on the account <b>%s</b>?'
+ '\n\n<tt>%s</tt>' % (user, self.account, fpr))
l.set_line_wrap(True)
dlg.vbox.pack_start(l)