/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 revisionmenu.py

  • Committer: Jelmer Vernooij
  • Date: 2008-06-29 19:07:23 UTC
  • mto: This revision was merged to the branch mainline in revision 515.
  • Revision ID: jelmer@samba.org-20080629190723-l8mzg9x4oec0lhsl
Return cleartext from seahorse module

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
import bzrlib
25
25
import gtk
 
26
import gobject
26
27
from bzrlib import (errors, ui)
 
28
from bzrlib.revision import NULL_REVISION
27
29
 
28
30
class RevisionPopupMenu(gtk.Menu):
 
31
 
 
32
    __gsignals__ = {
 
33
            'tag-added': (
 
34
                gobject.SIGNAL_RUN_FIRST,
 
35
                gobject.TYPE_NONE,
 
36
                (gobject.TYPE_STRING, gobject.TYPE_STRING)
 
37
            )
 
38
    }
 
39
 
29
40
    def __init__(self, repository, revids, branch=None, wt=None):
30
41
        super(RevisionPopupMenu, self).__init__()
31
42
        self.branch = branch
36
47
 
37
48
    def create_items(self):
38
49
        if len(self.revids) == 1:
39
 
            item = gtk.MenuItem("View _Diff")
 
50
            item = gtk.MenuItem("View _Changes")
40
51
            item.connect('activate', self.show_diff)
41
52
            self.append(item)
42
53
            self.show_all()
70
81
    def show_diff(self, item):
71
82
        from bzrlib.plugins.gtk.diff import DiffWindow
72
83
        window = DiffWindow(parent=self.parent)
73
 
        parentid = self.repository.revision_parents(self.revids[0])[0]
74
 
        (parent_tree, rev_tree) = self.repository.revision_trees(
75
 
            [parentid, self.revids[0]])
 
84
        parentids = self.repository.revision_parents(self.revids[0])
 
85
 
 
86
        if len(parentids) == 0:
 
87
            parentid = NULL_REVISION
 
88
        else:
 
89
            parentid = parentids[0]
 
90
 
 
91
        rev_tree    = self.repository.revision_tree(self.revids[0])
 
92
        parent_tree = self.repository.revision_tree(parentid)
76
93
        window.set_diff(self.revids[0], rev_tree, parent_tree)
77
94
        window.show()
78
95
 
79
96
    def show_push(self, item):
80
97
        from bzrlib.plugins.gtk.push import PushDialog
81
98
        dialog = PushDialog(self.repository, self.revids[0], self.branch)
82
 
        dialog.run()
 
99
        response = dialog.run()
 
100
 
 
101
        if response != gtk.RESPONSE_NONE:
 
102
            dialog.destroy()
83
103
 
84
104
    def show_tag(self, item):
85
105
        from bzrlib.plugins.gtk.tags import AddTagDialog
86
106
        dialog = AddTagDialog(self.repository, self.revids[0], self.branch)
87
107
        response = dialog.run()
 
108
 
88
109
        if response != gtk.RESPONSE_NONE:
89
110
            dialog.hide()
90
111
        
91
112
            if response == gtk.RESPONSE_OK:
92
 
                self.branch.lock_write()
93
 
                self.branch.tags.set_tag(dialog.tagname, dialog._revid)
94
 
                self.branch.unlock()
 
113
                self.emit('tag-added', dialog.tagname, dialog._revid)
95
114
            
96
115
            dialog.destroy()
97
116