/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
254.1.1 by Jelmer Vernooij
Add Merge Directive option to revision menu.
1
# Copyright (C) 2007 by Jelmer Vernooij <jelmer@samba.org>
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
try:
18
    import pygtk
19
    pygtk.require("2.0")
20
except:
21
    pass
22
23
import bzrlib
24
import gtk
25
import os
26
324 by Jelmer Vernooij
Add very simple "Send Merge Directive" window.
27
from bzrlib.plugins.gtk.branchbox import BranchSelectionBox
28
254.1.1 by Jelmer Vernooij
Add Merge Directive option to revision menu.
29
class CreateMergeDirectiveDialog(gtk.Dialog):
30
    def __init__(self, branch, stop_revid=None):
31
        super(CreateMergeDirectiveDialog, self).__init__()
32
        self.branch = branch
33
        self.stop_revid = stop_revid
34
        self._create()
35
36
    def _create(self):
37
        # TODO: Create a frame with information about the revision that will be 
38
        # submittted
39
40
        # TODO: Create a frame with a the ability to select a branch
41
        
42
        # TODO: Create a frame with a button for selecting a file name 
43
        # for the bundle
44
        pass
45
46
47
class SendMergeDirectiveDialog(gtk.Dialog):
324 by Jelmer Vernooij
Add very simple "Send Merge Directive" window.
48
    def __init__(self, branch, parent=None):
49
        super(SendMergeDirectiveDialog, self).__init__(parent)
323 by Jelmer Vernooij
Add gsend command.
50
        self.branch = branch
324 by Jelmer Vernooij
Add very simple "Send Merge Directive" window.
51
        self.set_title("Send Merge Directive")
323 by Jelmer Vernooij
Add gsend command.
52
        self._create()
53
54
    def _create(self):
324 by Jelmer Vernooij
Add very simple "Send Merge Directive" window.
55
        table = gtk.Table(rows=3, columns=2)
56
        self.vbox.add(table)
57
58
        label = gtk.Label()
59
        label.set_markup("<b>Branch to Submit:</b>")
60
        table.attach(label, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
61
62
        label = gtk.Label(str(self.branch))
63
        table.attach(label, 1, 2, 0, 1, gtk.FILL, gtk.FILL)
64
65
        label = gtk.Label()
66
        label.set_markup("<b>Target Branch:</b>")
67
        table.attach(label, 0, 1, 1, 2, gtk.FILL, gtk.FILL)
68
69
        self.submit_branch = BranchSelectionBox(self.branch.get_submit_branch())
70
        table.attach(self.submit_branch, 1, 2, 1, 2, gtk.FILL, gtk.FILL)
71
72
        # TODO: Display number of revisions to be send whenever 
73
        # submit branch changes
74
75
        label = gtk.Label()
76
        label.set_markup("<b>Email To:</b>")
77
        table.attach(label, 0, 1, 2, 3, gtk.FILL, gtk.FILL)
78
79
        self.mail_to = gtk.ComboBoxEntry()
80
        mail_to = self.branch.get_config().get_user_option('submit_to')
449.1.2 by Jelmer Vernooij
Honor child_submit_to in the submit_branch if no email address was specified.
81
        if mail_to is None:
82
            submit_branch = self.submit_branch.get_branch()
83
            if submit_branch is not None:
84
                mail_to = submit_branch.get_config().get_user_option(
85
                            'child_submit_to')
324 by Jelmer Vernooij
Add very simple "Send Merge Directive" window.
86
        if mail_to is not None:
87
            self.mail_to.get_child().set_text(mail_to)
88
        table.attach(self.mail_to, 1, 2, 2, 3, gtk.FILL, gtk.FILL)
89
90
        self.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, 
91
                         gtk.STOCK_OK, gtk.RESPONSE_OK)
92
93
        self.show_all()
94
95
    def get_mail_to(self):
96
        return self.mail_to.get_child().get_text()
97
98
    def get_merge_directive(self):
99
        from bzrlib.merge_directive import MergeDirective2
100
        from bzrlib import osutils
101
        import time
102
        return MergeDirective2.from_objects(self.branch.repository,
103
                                            self.branch.last_revision(),
104
                                            time.time(),
105
                                            osutils.local_time_offset(),
106
                                            self.submit_branch.get_url(),
107
                                            public_branch=None,
108
                                            include_patch=True,
109
                                            include_bundle=True,
110
                                            message=None,
111
                                            base_revision_id=None)
112
254.1.1 by Jelmer Vernooij
Add Merge Directive option to revision menu.
113
114
115
class ApplyMergeDirectiveDialog(gtk.Dialog):
116
    def __init__(self):
117
        super(ApplyMergeDirectiveDialog, self).__init__()