/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-05-01 12:55:33 UTC
  • mto: This revision was merged to the branch mainline in revision 488.
  • Revision ID: jelmer@samba.org-20080501125533-hesg3b13cxgsyqa2
Import Chris Lamb's olive-gtk manpage.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
from bzrlib import (errors, ui)
28
28
from bzrlib.revision import NULL_REVISION
29
29
 
30
 
class RevisionMenu(gtk.Menu):
 
30
class RevisionPopupMenu(gtk.Menu):
31
31
 
32
32
    __gsignals__ = {
33
33
            'tag-added': (
37
37
            )
38
38
    }
39
39
 
40
 
    def __init__(self, repository, revids, branch=None, wt=None, parent=None):
41
 
        super(RevisionMenu, self).__init__()
42
 
        self._parent = parent
 
40
    def __init__(self, repository, revids, branch=None, wt=None):
 
41
        super(RevisionPopupMenu, self).__init__()
43
42
        self.branch = branch
44
43
        self.repository = repository
45
44
        self.wt = wt
46
 
        self.set_revision_ids(revids)
47
 
 
48
 
    def set_revision_ids(self, revids):
49
 
        assert isinstance(revids, list)
50
 
        for c in self.get_children():
51
 
            self.remove(c)
52
45
        self.revids = revids
53
46
        self.create_items()
54
47
 
57
50
            item = gtk.MenuItem("View _Changes")
58
51
            item.connect('activate', self.show_diff)
59
52
            self.append(item)
 
53
            self.show_all()
60
54
 
61
55
            item = gtk.MenuItem("_Push")
62
56
            item.connect('activate', self.show_push)
63
57
            self.append(item)
 
58
            self.show_all()
64
59
 
65
60
            item = gtk.MenuItem("_Tag Revision")
66
61
            item.connect('activate', self.show_tag)
67
62
            self.append(item)
 
63
            self.show_all()
68
64
 
69
65
            item = gtk.MenuItem("_Merge Directive")
70
66
            item.connect('activate', self.store_merge_directive)
71
67
            # FIXME: self.append(item)
72
 
 
73
 
            item = gtk.MenuItem("_Send Merge Directive")
74
 
            item.connect('activate', self.send_merge_directive)
75
 
            self.append(item)
 
68
            self.show_all()
76
69
            
77
70
            if self.wt:
78
71
                item = gtk.MenuItem("_Revert to this revision")
79
72
                item.connect('activate', self.revert)
80
73
                self.append(item)
81
 
 
82
 
        self.show_all()
 
74
                self.show_all()
83
75
 
84
76
    def store_merge_directive(self, item):
85
77
        from bzrlib.plugins.gtk.mergedirective import CreateMergeDirectiveDialog
86
78
        window = CreateMergeDirectiveDialog(self.branch, self.revids[0])
87
79
        window.show()
88
80
 
89
 
    def send_merge_directive(self, item):
90
 
        from bzrlib.plugins.gtk.mergedirective import SendMergeDirectiveDialog
91
 
        from cStringIO import StringIO
92
 
        window = SendMergeDirectiveDialog(self.branch, self.revids[0])
93
 
        if window.run() == gtk.RESPONSE_OK:
94
 
            outf = StringIO()
95
 
            outf.writelines(window.get_merge_directive().to_lines())
96
 
            mail_client = self.branch.get_config().get_mail_client()
97
 
            mail_client.compose_merge_request(window.get_mail_to(), "[MERGE]",
98
 
                                              outf.getvalue())
99
 
        window.destroy()
100
 
 
101
81
    def show_diff(self, item):
102
82
        from bzrlib.plugins.gtk.diff import DiffWindow
103
 
        window = DiffWindow(parent=self._parent)
104
 
        parentids = self.repository.get_revision(self.revids[0]).parent_ids
 
83
        window = DiffWindow(parent=self.parent)
 
84
        parentids = self.repository.revision_parents(self.revids[0])
 
85
 
105
86
        if len(parentids) == 0:
106
87
            parentid = NULL_REVISION
107
88
        else:
108
89
            parentid = parentids[0]
 
90
 
109
91
        rev_tree    = self.repository.revision_tree(self.revids[0])
110
92
        parent_tree = self.repository.revision_tree(parentid)
111
93
        window.set_diff(self.revids[0], rev_tree, parent_tree)