/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: rodney.dawes at canonical
  • Date: 2008-10-25 06:02:09 UTC
  • Revision ID: rodney.dawes@canonical.com-20081025060209-irlizouino63cs1m
        * preferences/__init__.py:
        Remove the dialog separator
        Remove useless extra call to self._create_pages()
        Make the default window size smaller
        Set the default border width on various widgets
        Set the current notebook page to the first one

        * preferences/identity.py:
        Set various border widths appropriately
        Align the labels to the left
        Remove the unneeded bold markup from the labels
        Change the "User Id" label to "E-Mail"
        Align the radio group labels to the top of the groups

        * preferences/plugins.py:
        Set various border widths appropriately
        Set the default paned position to something more sensible
        Set the shadow type on the treeview's scrolled window to in
        Align the Author and Version labels to the left

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 RevisionPopupMenu(gtk.Menu):
 
30
class RevisionMenu(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):
41
 
        super(RevisionPopupMenu, self).__init__()
 
40
    def __init__(self, repository, revids, branch=None, wt=None, parent=None):
 
41
        super(RevisionMenu, self).__init__()
 
42
        self._parent = parent
42
43
        self.branch = branch
43
44
        self.repository = repository
44
45
        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)
45
52
        self.revids = revids
46
53
        self.create_items()
47
54
 
50
57
            item = gtk.MenuItem("View _Changes")
51
58
            item.connect('activate', self.show_diff)
52
59
            self.append(item)
53
 
            self.show_all()
54
60
 
55
61
            item = gtk.MenuItem("_Push")
56
62
            item.connect('activate', self.show_push)
57
63
            self.append(item)
58
 
            self.show_all()
59
64
 
60
65
            item = gtk.MenuItem("_Tag Revision")
61
66
            item.connect('activate', self.show_tag)
62
67
            self.append(item)
63
 
            self.show_all()
64
68
 
65
69
            item = gtk.MenuItem("_Merge Directive")
66
70
            item.connect('activate', self.store_merge_directive)
67
71
            # FIXME: self.append(item)
68
 
            self.show_all()
 
72
 
 
73
            item = gtk.MenuItem("_Send Merge Directive")
 
74
            item.connect('activate', self.send_merge_directive)
 
75
            self.append(item)
69
76
            
70
77
            if self.wt:
71
78
                item = gtk.MenuItem("_Revert to this revision")
72
79
                item.connect('activate', self.revert)
73
80
                self.append(item)
74
 
                self.show_all()
 
81
 
 
82
        self.show_all()
75
83
 
76
84
    def store_merge_directive(self, item):
77
85
        from bzrlib.plugins.gtk.mergedirective import CreateMergeDirectiveDialog
78
86
        window = CreateMergeDirectiveDialog(self.branch, self.revids[0])
79
87
        window.show()
80
88
 
 
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
 
81
101
    def show_diff(self, item):
82
102
        from bzrlib.plugins.gtk.diff import DiffWindow
83
 
        window = DiffWindow(parent=self.parent)
84
 
        parentids = self.repository.revision_parents(self.revids[0])
85
 
 
 
103
        window = DiffWindow(parent=self._parent)
 
104
        parentids = self.repository.get_revision(self.revids[0]).parent_ids
86
105
        if len(parentids) == 0:
87
106
            parentid = NULL_REVISION
88
107
        else:
89
108
            parentid = parentids[0]
90
 
 
91
109
        rev_tree    = self.repository.revision_tree(self.revids[0])
92
110
        parent_tree = self.repository.revision_tree(parentid)
93
111
        window.set_diff(self.revids[0], rev_tree, parent_tree)