changeset 9536517d946f in /home/hg/repos/gajim-plugins

author: lovetox <[email protected]>
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">&lt;tt&gt;-------- -------- -------- 
-------- --------  &lt;/tt&gt;</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">&lt;tt&gt;-------- -------- -------- 
-------- --------  &lt;/tt&gt;</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)
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to