Rev 414: Move signature tab to a separate class. in file:///data/jelmer/bzr-gtk/signatures/

Jelmer Vernooij jelmer at samba.org
Sun Mar 30 16:34:28 BST 2008


At file:///data/jelmer/bzr-gtk/signatures/

------------------------------------------------------------
revno: 414
revision-id: jelmer at samba.org-20080330153426-yivyja2p89rh2200
parent: daniel.schierbeck at gmail.com-20080315211005-25sy4as4x942p8v3
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: signatures
timestamp: Sun 2008-03-30 17:34:26 +0200
message:
  Move signature tab to a separate class.
modified:
  revisionview.py                logview.py-20051024072750-4d5c28cb73611027
=== modified file 'revisionview.py'
--- a/revisionview.py	2008-03-15 20:54:34 +0000
+++ b/revisionview.py	2008-03-30 15:34:26 +0000
@@ -21,13 +21,10 @@
 import pango
 import gobject
 import subprocess
-from gpg import GPGSubprocess
 
 from bzrlib.osutils import format_date
 from bzrlib.util.bencode import bdecode
 
-gpg = GPGSubprocess()
-
 def _open_link(widget, uri):
     subprocess.Popen(['sensible-browser', uri], close_fds=True)
 
@@ -57,6 +54,42 @@
         self.show_all()
 
 
+class SignatureTab(gtk.VBox):
+    def __init__(self):
+        from gpg import GPGSubprocess
+        self.gpg = GPGSubprocess()
+        super(SignatureTab, self).__init__(False, 6)
+        signature_box = gtk.Table(rows=1, columns=2)
+        signature_box.set_col_spacing(0, 12)
+
+        self.signature_image = gtk.Image()
+        signature_box.attach(self.signature_image, 0, 1, 0, 1, gtk.FILL)
+
+        self.signature_label = gtk.Label()
+        signature_box.attach(self.signature_label, 1, 2, 0, 1, gtk.FILL)
+
+        signature_info = gtk.Table(rows=1, columns=2)
+        signature_info.set_row_spacings(6)
+        signature_info.set_col_spacings(6)
+
+        align = gtk.Alignment(1.0, 0.5)
+        label = gtk.Label()
+        label.set_markup("<b>Key Id:</b>")
+        align.add(label)
+        signature_info.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
+
+        align = gtk.Alignment(0.0, 0.5)
+        self.signature_key_id = gtk.Label()
+        self.signature_key_id.set_selectable(True)
+        align.add(self.signature_key_id)
+        signature_info.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
+
+        self.set_border_width(6)
+        self.pack_start(signature_box, expand=False)
+        self.pack_start(signature_info, expand=False)
+        self.show_all()
+
+
 class RevisionView(gtk.Notebook):
     """ Custom widget for commit log details.
 
@@ -231,7 +264,7 @@
 
         if self._branch.repository.has_signature_for_revision_id(revid):
             signature_text = self._branch.repository.get_signature_text(revid)
-            signature = gpg.verify(signature_text)
+            signature = self.signature_table.gpg.verify(signature_text)
 
             if signature.key_id is not None:
                 self.signature_key_id.set_text(signature.key_id)
@@ -334,38 +367,12 @@
         vbox.show()
 
     def _create_signature(self):
-        signature_box = gtk.Table(rows=1, columns=2)
-        signature_box.set_col_spacing(0, 12)
-
-        self.signature_image = gtk.Image()
-        signature_box.attach(self.signature_image, 0, 1, 0, 1, gtk.FILL)
-
-        self.signature_label = gtk.Label()
-        signature_box.attach(self.signature_label, 1, 2, 0, 1, gtk.FILL)
-
-        signature_info = gtk.Table(rows=1, columns=2)
-        signature_info.set_row_spacings(6)
-        signature_info.set_col_spacings(6)
-
-        align = gtk.Alignment(1.0, 0.5)
-        label = gtk.Label()
-        label.set_markup("<b>Key Id:</b>")
-        align.add(label)
-        signature_info.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
-
-        align = gtk.Alignment(0.0, 0.5)
-        self.signature_key_id = gtk.Label()
-        self.signature_key_id.set_selectable(True)
-        align.add(self.signature_key_id)
-        signature_info.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
-
-        box = gtk.VBox(False, 6)
-        box.set_border_width(6)
-        box.pack_start(signature_box, expand=False)
-        box.pack_start(signature_info, expand=False)
-        box.show_all()
-        self.append_page(box, tab_label=gtk.Label("Signature"))
-
+        try:
+            self.signature_table = SignatureTab()
+        except ImportError: # No GPG module installed
+            self.signature_table = None
+            return
+        self.append_page(self.signature_table, tab_label=gtk.Label('Signature'))
         self.connect_after('notify::revision', self._update_signature)
 
     def _create_headers(self):




More information about the bazaar-commits mailing list