changeset 9536517d946f in /home/hg/repos/gajim-plugins
author: lovetox forenjunkie@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)