/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to revisionview.py

  • Committer: Jelmer Vernooij
  • Date: 2008-03-30 15:34:26 UTC
  • mto: (450.1.11 trunk)
  • mto: This revision was merged to the branch mainline in revision 458.
  • Revision ID: jelmer@samba.org-20080330153426-yivyja2p89rh2200
Move signature tab to a separate class.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import pango
22
22
import gobject
23
23
import subprocess
24
 
from gpg import GPGSubprocess
25
24
 
26
25
from bzrlib.osutils import format_date
27
26
from bzrlib.util.bencode import bdecode
28
27
 
29
 
gpg = GPGSubprocess()
30
 
 
31
28
def _open_link(widget, uri):
32
29
    subprocess.Popen(['sensible-browser', uri], close_fds=True)
33
30
 
57
54
        self.show_all()
58
55
 
59
56
 
 
57
class SignatureTab(gtk.VBox):
 
58
    def __init__(self):
 
59
        from gpg import GPGSubprocess
 
60
        self.gpg = GPGSubprocess()
 
61
        super(SignatureTab, self).__init__(False, 6)
 
62
        signature_box = gtk.Table(rows=1, columns=2)
 
63
        signature_box.set_col_spacing(0, 12)
 
64
 
 
65
        self.signature_image = gtk.Image()
 
66
        signature_box.attach(self.signature_image, 0, 1, 0, 1, gtk.FILL)
 
67
 
 
68
        self.signature_label = gtk.Label()
 
69
        signature_box.attach(self.signature_label, 1, 2, 0, 1, gtk.FILL)
 
70
 
 
71
        signature_info = gtk.Table(rows=1, columns=2)
 
72
        signature_info.set_row_spacings(6)
 
73
        signature_info.set_col_spacings(6)
 
74
 
 
75
        align = gtk.Alignment(1.0, 0.5)
 
76
        label = gtk.Label()
 
77
        label.set_markup("<b>Key Id:</b>")
 
78
        align.add(label)
 
79
        signature_info.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
 
80
 
 
81
        align = gtk.Alignment(0.0, 0.5)
 
82
        self.signature_key_id = gtk.Label()
 
83
        self.signature_key_id.set_selectable(True)
 
84
        align.add(self.signature_key_id)
 
85
        signature_info.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
 
86
 
 
87
        self.set_border_width(6)
 
88
        self.pack_start(signature_box, expand=False)
 
89
        self.pack_start(signature_info, expand=False)
 
90
        self.show_all()
 
91
 
 
92
 
60
93
class RevisionView(gtk.Notebook):
61
94
    """ Custom widget for commit log details.
62
95
 
231
264
 
232
265
        if self._branch.repository.has_signature_for_revision_id(revid):
233
266
            signature_text = self._branch.repository.get_signature_text(revid)
234
 
            signature = gpg.verify(signature_text)
 
267
            signature = self.signature_table.gpg.verify(signature_text)
235
268
 
236
269
            if signature.key_id is not None:
237
270
                self.signature_key_id.set_text(signature.key_id)
334
367
        vbox.show()
335
368
 
336
369
    def _create_signature(self):
337
 
        signature_box = gtk.Table(rows=1, columns=2)
338
 
        signature_box.set_col_spacing(0, 12)
339
 
 
340
 
        self.signature_image = gtk.Image()
341
 
        signature_box.attach(self.signature_image, 0, 1, 0, 1, gtk.FILL)
342
 
 
343
 
        self.signature_label = gtk.Label()
344
 
        signature_box.attach(self.signature_label, 1, 2, 0, 1, gtk.FILL)
345
 
 
346
 
        signature_info = gtk.Table(rows=1, columns=2)
347
 
        signature_info.set_row_spacings(6)
348
 
        signature_info.set_col_spacings(6)
349
 
 
350
 
        align = gtk.Alignment(1.0, 0.5)
351
 
        label = gtk.Label()
352
 
        label.set_markup("<b>Key Id:</b>")
353
 
        align.add(label)
354
 
        signature_info.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
355
 
 
356
 
        align = gtk.Alignment(0.0, 0.5)
357
 
        self.signature_key_id = gtk.Label()
358
 
        self.signature_key_id.set_selectable(True)
359
 
        align.add(self.signature_key_id)
360
 
        signature_info.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
361
 
 
362
 
        box = gtk.VBox(False, 6)
363
 
        box.set_border_width(6)
364
 
        box.pack_start(signature_box, expand=False)
365
 
        box.pack_start(signature_info, expand=False)
366
 
        box.show_all()
367
 
        self.append_page(box, tab_label=gtk.Label("Signature"))
368
 
 
 
370
        try:
 
371
            self.signature_table = SignatureTab()
 
372
        except ImportError: # No GPG module installed
 
373
            self.signature_table = None
 
374
            return
 
375
        self.append_page(self.signature_table, tab_label=gtk.Label('Signature'))
369
376
        self.connect_after('notify::revision', self._update_signature)
370
377
 
371
378
    def _create_headers(self):