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

  • Committer: Jelmer Vernooij
  • Date: 2011-11-02 11:11:06 UTC
  • mfrom: (734.1.55 gtk3)
  • Revision ID: jelmer@samba.org-20111102111106-7l0vso8eg24dpf87
Merge gtk3 support from Curtis.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
import os
18
18
 
19
 
try:
20
 
    import pygtk
21
 
    pygtk.require("2.0")
22
 
except:
23
 
    pass
24
 
 
25
 
import gtk
 
19
from gi.repository import GObject
 
20
from gi.repository import Gtk
26
21
 
27
22
from bzrlib.branch import Branch
28
23
from bzrlib.config import GlobalConfig
33
28
from bzrlib.plugins.gtk.i18n import _i18n
34
29
 
35
30
 
36
 
class CheckoutDialog(gtk.Dialog):
 
31
class CheckoutDialog(Gtk.Dialog):
37
32
    """ New implementation of the Checkout dialog. """
38
33
 
39
34
    def __init__(self, path=None, parent=None, remote_path=None):
40
35
        """ Initialize the Checkout dialog. """
41
 
        gtk.Dialog.__init__(self, title="Checkout - Olive",
42
 
                                  parent=parent,
43
 
                                  flags=0,
44
 
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
 
36
        super(CheckoutDialog, self).__init__(
 
37
            title="Checkout - Olive", parent=parent, flags=0,
 
38
            buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
45
39
 
46
40
        # Get arguments
47
41
        self.path = path
48
42
 
49
43
        # Create the widgets
50
 
        self._button_checkout = gtk.Button(_i18n("Check_out"), use_underline=True)
51
 
        self._button_revision = gtk.Button('')
52
 
        self._image_browse = gtk.Image()
53
 
        self._filechooser = gtk.FileChooserButton(_i18n("Please select a folder"))
54
 
        self._combo = gtk.ComboBoxEntry()
55
 
        self._label_location = gtk.Label(_i18n("Branch location:"))
56
 
        self._label_destination = gtk.Label(_i18n("Destination:"))
57
 
        self._label_nick = gtk.Label(_i18n("Branch nick:"))
58
 
        self._label_revision = gtk.Label(_i18n("Revision:"))
59
 
        self._hbox_revision = gtk.HBox()
60
 
        self._entry_revision = gtk.Entry()
61
 
        self._entry_nick = gtk.Entry()
62
 
        self._check_lightweight = gtk.CheckButton(_i18n("_Lightweight checkout"),
 
44
        self._button_checkout = Gtk.Button(_i18n("Check_out"), use_underline=True)
 
45
        self._button_revision = Gtk.Button('')
 
46
        self._image_browse = Gtk.Image()
 
47
        self._filechooser = Gtk.FileChooserButton(_i18n("Please select a folder"))
 
48
        self._combo = Gtk.ComboBox.new_with_entry()
 
49
        self._label_location = Gtk.Label(label=_i18n("Branch location:"))
 
50
        self._label_destination = Gtk.Label(label=_i18n("Destination:"))
 
51
        self._label_nick = Gtk.Label(label=_i18n("Branch nick:"))
 
52
        self._label_revision = Gtk.Label(label=_i18n("Revision:"))
 
53
        self._hbox_revision = Gtk.HBox()
 
54
        self._entry_revision = Gtk.Entry()
 
55
        self._entry_nick = Gtk.Entry()
 
56
        self._check_lightweight = Gtk.CheckButton(_i18n("_Lightweight checkout"),
63
57
                                                  use_underline=True)
64
58
 
65
59
        # Set callbacks
66
60
        self._button_checkout.connect('clicked', self._on_checkout_clicked)
67
61
        self._button_revision.connect('clicked', self._on_revision_clicked)
68
 
        self._combo.child.connect('focus-out-event', self._on_combo_changed)
 
62
        self._combo.get_child().connect('focus-out-event', self._on_combo_changed)
69
63
 
70
64
        # Create the table and pack the widgets into it
71
 
        self._table = gtk.Table(rows=3, columns=2)
 
65
        self._table = Gtk.Table(rows=3, columns=2)
72
66
        self._table.attach(self._label_location, 0, 1, 0, 1)
73
67
        self._table.attach(self._label_destination, 0, 1, 1, 2)
74
68
        self._table.attach(self._label_nick, 0, 1, 2, 3)
80
74
        self._table.attach(self._check_lightweight, 1, 2, 4, 5)
81
75
 
82
76
        # Set properties
83
 
        self._image_browse.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
 
77
        self._image_browse.set_from_stock(Gtk.STOCK_OPEN, Gtk.IconSize.BUTTON)
84
78
        self._button_revision.set_image(self._image_browse)
85
79
        self._button_revision.set_sensitive(False)
86
 
        self._filechooser.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
 
80
        self._filechooser.set_action(Gtk.FileChooserAction.SELECT_FOLDER)
87
81
        self._label_location.set_alignment(0, 0.5)
88
82
        self._label_destination.set_alignment(0, 0.5)
89
83
        self._label_nick.set_alignment(0, 0.5)
90
84
        self._label_revision.set_alignment(0, 0.5)
91
85
        self._table.set_row_spacings(3)
92
86
        self._table.set_col_spacings(3)
93
 
        self.vbox.set_spacing(3)
 
87
        self.get_content_area().set_spacing(3)
94
88
        if self.path is not None:
95
89
            self._filechooser.set_filename(self.path)
96
90
        if remote_path is not None:
97
 
            self._combo.child.set_text(remote_path)
 
91
            self._combo.get_child().set_text(remote_path)
98
92
 
99
93
        # Pack some widgets
100
 
        self._hbox_revision.pack_start(self._entry_revision, True, True)
101
 
        self._hbox_revision.pack_start(self._button_revision, False, False)
102
 
        self.vbox.add(self._table)
103
 
        self.action_area.pack_end(self._button_checkout)
 
94
        self._hbox_revision.pack_start(self._entry_revision, True, True, 0)
 
95
        self._hbox_revision.pack_start(self._button_revision, False, False, 0)
 
96
        self.get_content_area().add(self._table)
 
97
        self.action_area.pack_end(self._button_checkout, False, False, 0)
104
98
 
105
99
        # Show the dialog
106
 
        self.vbox.show_all()
 
100
        self.get_content_area().show_all()
107
101
 
108
102
        # Build checkout history
109
103
        self._history = UrlHistory(GlobalConfig(), 'branch_history')
111
105
 
112
106
    def _build_history(self):
113
107
        """ Build up the checkout history. """
114
 
        self._combo_model = gtk.ListStore(str)
 
108
        self._combo_model = Gtk.ListStore(str)
115
109
 
116
110
        for item in self._history.get_entries():
117
111
            self._combo_model.append([ item ])
118
112
 
119
113
        self._combo.set_model(self._combo_model)
120
 
        self._combo.set_text_column(0)
 
114
        self._combo.set_entry_text_column(0)
121
115
 
122
116
    def _get_last_revno(self):
123
117
        """ Get the revno of the last revision (if any). """
142
136
        else:
143
137
            revb = RevisionBrowser(br, self)
144
138
            response = revb.run()
145
 
            if response != gtk.RESPONSE_NONE:
 
139
            if response != Gtk.ResponseType.NONE:
146
140
                revb.hide()
147
141
 
148
 
                if response == gtk.RESPONSE_OK:
 
142
                if response == Gtk.ResponseType.OK:
149
143
                    if revb.selected_revno is not None:
150
144
                        self._entry_revision.set_text(revb.selected_revno)
151
145
 
182
176
 
183
177
        self._history.add_entry(location)
184
178
 
185
 
        self.response(gtk.RESPONSE_OK)
 
179
        self.response(Gtk.ResponseType.OK)
186
180
 
187
181
    def _on_combo_changed(self, widget, event):
188
182
        """ We try to get the last revision if focus lost. """