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