/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: Vincent Ladeuil
  • Date: 2008-05-05 18:16:46 UTC
  • mto: (487.1.1 gtk)
  • mto: This revision was merged to the branch mainline in revision 490.
  • Revision ID: v.ladeuil+lp@free.fr-20080505181646-n95l8ltw2u6jtr26
Fix bug #187283 fix replacing _() by _i18n().

* genpot.sh 
Remove duplication. Add the ability to specify the genrated pot
file on command-line for debugging purposes.

* po/olive-gtk.pot:
Regenerated.

* __init__.py, branch.py, branchview/treeview.py, checkout.py,
commit.py, conflicts.py, diff.py, errors.py, initialize.py,
merge.py, nautilus-bzr.py, olive/__init__.py, olive/add.py,
olive/bookmark.py, olive/guifiles.py, olive/info.py,
olive/menu.py, olive/mkdir.py, olive/move.py, olive/remove.py,
olive/rename.py, push.py, revbrowser.py, status.py, tags.py:
Replace all calls to _() by calls to _i18n(), the latter being
defined in __init__.py and imported in the other modules from
there. This fix the problem encountered countless times when
running bzr selftest and getting silly error messages about
boolean not being callables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
import os
18
18
 
19
 
from gi.repository import GObject
20
 
from gi.repository import Gtk
 
19
try:
 
20
    import pygtk
 
21
    pygtk.require("2.0")
 
22
except:
 
23
    pass
 
24
 
 
25
import gtk
 
26
 
 
27
from bzrlib.plugins.gtk import _i18n
 
28
from errors import show_bzr_error
21
29
 
22
30
from bzrlib.branch import Branch
23
31
from bzrlib.config import GlobalConfig
24
32
 
25
 
from bzrlib.plugins.gtk.dialog import error_dialog
26
 
from bzrlib.plugins.gtk.errors import show_bzr_error
27
 
from bzrlib.plugins.gtk.history import UrlHistory
28
 
from bzrlib.plugins.gtk.i18n import _i18n
29
 
 
30
 
 
31
 
class CheckoutDialog(Gtk.Dialog):
 
33
from dialog import error_dialog
 
34
 
 
35
from history import UrlHistory
 
36
from olive import Preferences
 
37
 
 
38
class CheckoutDialog(gtk.Dialog):
32
39
    """ New implementation of the Checkout dialog. """
33
 
 
34
40
    def __init__(self, path=None, parent=None, remote_path=None):
35
41
        """ Initialize the Checkout dialog. """
36
 
        super(CheckoutDialog, self).__init__(
37
 
            title="Checkout - Olive", parent=parent, flags=0,
38
 
            buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
39
 
 
 
42
        gtk.Dialog.__init__(self, title="Checkout - Olive",
 
43
                                  parent=parent,
 
44
                                  flags=0,
 
45
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
 
46
        
40
47
        # Get arguments
41
48
        self.path = path
42
 
 
 
49
        
43
50
        # Create the widgets
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"),
 
51
        self._button_checkout = gtk.Button(_i18n("Check_out"), use_underline=True)
 
52
        self._button_revision = gtk.Button('')
 
53
        self._image_browse = gtk.Image()
 
54
        self._filechooser = gtk.FileChooserButton(_i18n("Please select a folder"))
 
55
        self._combo = gtk.ComboBoxEntry()
 
56
        self._label_location = gtk.Label(_i18n("Branch location:"))
 
57
        self._label_destination = gtk.Label(_i18n("Destination:"))
 
58
        self._label_nick = gtk.Label(_i18n("Branck nick:"))
 
59
        self._label_revision = gtk.Label(_i18n("Revision:"))
 
60
        self._hbox_revision = gtk.HBox()
 
61
        self._entry_revision = gtk.Entry()
 
62
        self._entry_nick = gtk.Entry()
 
63
        self._check_lightweight = gtk.CheckButton(_i18n("_Lightweight checkout"),
57
64
                                                  use_underline=True)
58
 
 
 
65
        
59
66
        # Set callbacks
60
67
        self._button_checkout.connect('clicked', self._on_checkout_clicked)
61
68
        self._button_revision.connect('clicked', self._on_revision_clicked)
62
 
        self._combo.get_child().connect('focus-out-event', self._on_combo_changed)
63
 
 
 
69
        self._combo.child.connect('focus-out-event', self._on_combo_changed)
 
70
        
64
71
        # Create the table and pack the widgets into it
65
 
        self._table = Gtk.Table(rows=3, columns=2)
 
72
        self._table = gtk.Table(rows=3, columns=2)
66
73
        self._table.attach(self._label_location, 0, 1, 0, 1)
67
74
        self._table.attach(self._label_destination, 0, 1, 1, 2)
68
75
        self._table.attach(self._label_nick, 0, 1, 2, 3)
72
79
        self._table.attach(self._entry_nick, 1, 2, 2, 3)
73
80
        self._table.attach(self._hbox_revision, 1, 2, 3, 4)
74
81
        self._table.attach(self._check_lightweight, 1, 2, 4, 5)
75
 
 
 
82
        
76
83
        # Set properties
77
 
        self._image_browse.set_from_stock(Gtk.STOCK_OPEN, Gtk.IconSize.BUTTON)
 
84
        self._image_browse.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
78
85
        self._button_revision.set_image(self._image_browse)
79
86
        self._button_revision.set_sensitive(False)
80
 
        self._filechooser.set_action(Gtk.FileChooserAction.SELECT_FOLDER)
 
87
        self._filechooser.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
81
88
        self._label_location.set_alignment(0, 0.5)
82
89
        self._label_destination.set_alignment(0, 0.5)
83
90
        self._label_nick.set_alignment(0, 0.5)
84
91
        self._label_revision.set_alignment(0, 0.5)
85
92
        self._table.set_row_spacings(3)
86
93
        self._table.set_col_spacings(3)
87
 
        self.get_content_area().set_spacing(3)
 
94
        self.vbox.set_spacing(3)
88
95
        if self.path is not None:
89
96
            self._filechooser.set_filename(self.path)
90
97
        if remote_path is not None:
91
 
            self._combo.get_child().set_text(remote_path)
92
 
 
 
98
            self._combo.child.set_text(remote_path)
 
99
        
93
100
        # Pack some widgets
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)
98
 
 
 
101
        self._hbox_revision.pack_start(self._entry_revision, True, True)
 
102
        self._hbox_revision.pack_start(self._button_revision, False, False)
 
103
        self.vbox.add(self._table)
 
104
        self.action_area.pack_end(self._button_checkout)
 
105
        
99
106
        # Show the dialog
100
 
        self.get_content_area().show_all()
101
 
 
 
107
        self.vbox.show_all()
 
108
        
102
109
        # Build checkout history
103
110
        self._history = UrlHistory(GlobalConfig(), 'branch_history')
104
111
        self._build_history()
105
 
 
 
112
    
106
113
    def _build_history(self):
107
114
        """ Build up the checkout history. """
108
 
        self._combo_model = Gtk.ListStore(str)
109
 
 
 
115
        self._combo_model = gtk.ListStore(str)
 
116
        
110
117
        for item in self._history.get_entries():
111
118
            self._combo_model.append([ item ])
112
 
 
 
119
        
 
120
        pref = Preferences()
 
121
        for item in pref.get_bookmarks():
 
122
            self._combo_model.append([ item ])
 
123
        
113
124
        self._combo.set_model(self._combo_model)
114
 
        self._combo.set_entry_text_column(0)
115
 
 
 
125
        self._combo.set_text_column(0)
 
126
    
116
127
    def _get_last_revno(self):
117
128
        """ Get the revno of the last revision (if any). """
118
129
        location = self._combo.get_child().get_text()
122
133
            return None
123
134
        else:
124
135
            return br.revno()
125
 
 
 
136
    
126
137
    def _on_revision_clicked(self, button):
127
138
        """ Browse for revision button clicked handler. """
128
139
        from revbrowser import RevisionBrowser
129
 
 
 
140
        
130
141
        location = self._combo.get_child().get_text()
131
 
 
 
142
        
132
143
        try:
133
144
            br = Branch.open(location)
134
145
        except:
136
147
        else:
137
148
            revb = RevisionBrowser(br, self)
138
149
            response = revb.run()
139
 
            if response != Gtk.ResponseType.NONE:
 
150
            if response != gtk.RESPONSE_NONE:
140
151
                revb.hide()
141
 
 
142
 
                if response == Gtk.ResponseType.OK:
 
152
        
 
153
                if response == gtk.RESPONSE_OK:
143
154
                    if revb.selected_revno is not None:
144
155
                        self._entry_revision.set_text(revb.selected_revno)
145
 
 
 
156
            
146
157
                revb.destroy()
147
 
 
 
158
    
148
159
    @show_bzr_error
149
160
    def _on_checkout_clicked(self, button):
150
161
        """ Checkout button clicked handler. """
153
164
            error_dialog(_i18n('Missing branch location'),
154
165
                         _i18n('You must specify a branch location.'))
155
166
            return
156
 
 
 
167
        
157
168
        destination = self._filechooser.get_filename()
158
169
        try:
159
170
            revno = int(self._entry_revision.get_text())
160
171
        except:
161
172
            revno = None
162
 
 
 
173
        
163
174
        nick = self._entry_nick.get_text()
164
175
        if nick is '':
165
176
            nick = os.path.basename(location.rstrip("/\\"))
166
 
 
 
177
        
167
178
        br_from = Branch.open(location)
168
 
 
 
179
        
169
180
        revision_id = br_from.get_rev_id(revno)
170
181
        lightweight = self._check_lightweight.get_active()
171
182
        to_location = destination + os.sep + nick
172
 
 
 
183
        
173
184
        os.mkdir(to_location)
174
 
 
 
185
        
175
186
        br_from.create_checkout(to_location, revision_id, lightweight)
176
 
 
 
187
        
177
188
        self._history.add_entry(location)
178
 
 
179
 
        self.response(Gtk.ResponseType.OK)
180
 
 
 
189
        
 
190
        self.response(gtk.RESPONSE_OK)
 
191
    
181
192
    def _on_combo_changed(self, widget, event):
182
193
        """ We try to get the last revision if focus lost. """
183
194
        rev = self._get_last_revno()