/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: Javier Derderian
  • Date: 2008-04-11 20:34:06 UTC
  • mto: (465.1.1 gtk.patch)
  • mto: This revision was merged to the branch mainline in revision 466.
  • Revision ID: javierder@gmail.com-20080411203406-ftlwyodw9vr87olv
Updated "Compare with..." (#78765) to use revbrowser.RevisionBrowser.
Also needed to fix #215872 to make it work.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
import gtk
21
21
import pango
22
22
import gobject
23
 
import webbrowser
 
23
import subprocess
24
24
 
 
25
from bzrlib.plugins.gtk import icon_path
25
26
from bzrlib.osutils import format_date
26
27
from bzrlib.util.bencode import bdecode
27
 
from bzrlib.testament import Testament
28
 
 
29
 
from bzrlib.plugins.gtk import icon_path
30
28
 
31
29
try:
32
30
    from bzrlib.plugins.gtk import seahorse
40
38
PAGE_SIGNATURE = 2
41
39
PAGE_BUGS = 3
42
40
 
43
 
 
44
41
def _open_link(widget, uri):
45
 
    for cmd in ['sensible-browser', 'xdg-open']:
46
 
        if webbrowser._iscommand(cmd):
47
 
            webbrowser._tryorder.insert(0, '%s "%%s"' % cmd)
48
 
    webbrowser.open(uri)
 
42
    subprocess.Popen(['sensible-browser', uri], close_fds=True)
49
43
 
50
44
gtk.link_button_set_uri_hook(_open_link)
51
45
 
222
216
                                        "This revision has not been signed.")
223
217
 
224
218
    def show_signature(self, crypttext):
225
 
        (cleartext, key) = seahorse.verify(crypttext)
226
 
 
227
 
        assert cleartext is not None
228
 
 
229
 
        inv = self.repository.get_inventory(self.revision.revision_id)
230
 
        expected_testament = Testament(self.revision, inv).as_short_text()
231
 
        if expected_testament != cleartext:
232
 
            self.signature_image.set_from_file(icon_path("sign-bad.png"))
233
 
            self.signature_label.set_markup("<b>Signature does not match repository data</b>\n" +
234
 
                        "The signature plaintext is different from the expected testament plaintext.")
235
 
            return
 
219
        key = seahorse.verify(crypttext)
236
220
 
237
221
        if key and key.is_available():
238
222
            if key.is_trusted():
321
305
        )
322
306
    }
323
307
 
324
 
    def __init__(self, branch=None, repository=None):
 
308
    def __init__(self, branch=None):
325
309
        gtk.Notebook.__init__(self)
326
310
 
327
311
        self._revision = None
328
312
        self._branch = branch
329
 
        if branch is not None:
330
 
            self._repository = branch.repository
331
 
        else:
332
 
            self._repository = repository
333
313
 
334
314
        self._create_general()
335
315
        self._create_relations()
336
 
        # Disabled because testaments aren't verified yet:
337
316
        if has_seahorse:
338
317
            self._create_signature()
339
318
        self._create_file_info_view()
534
513
 
535
514
            button = gtk.Button(revid)
536
515
            button.connect("clicked",
537
 
                    lambda w, r: self.set_revision(self._repository.get_revision(r)), revid)
 
516
                    lambda w, r: self.set_revision(self._branch.repository.get_revision(r)), revid)
538
517
            button.set_use_underline(False)
539
518
            hbox.pack_start(button, expand=False, fill=True)
540
519
            button.show()
556
535
        vbox.show()
557
536
 
558
537
    def _create_signature(self):
559
 
        self.signature_table = SignatureTab(self._repository)
 
538
        self.signature_table = SignatureTab(self._branch.repository)
560
539
        self.append_page(self.signature_table, tab_label=gtk.Label('Signature'))
561
540
        self.connect_after('notify::revision', self._update_signature)
562
541