/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 branch.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:
27
27
from errors import show_bzr_error
28
28
 
29
29
from bzrlib.branch import Branch
30
 
from bzrlib.config import GlobalConfig
31
30
import bzrlib.errors as errors
32
31
 
 
32
from bzrlib.plugins.gtk import _i18n
 
33
 
33
34
from dialog import error_dialog, info_dialog
34
35
 
35
 
from history import UrlHistory
36
 
from olive import Preferences
 
36
from branchbox import BranchSelectionBox
37
37
 
38
38
class BranchDialog(gtk.Dialog):
39
39
    """ New implementation of the Branch dialog. """
 
40
 
40
41
    def __init__(self, path=None, parent=None, remote_path=None):
41
42
        """ Initialize the Branch dialog. """
42
43
        gtk.Dialog.__init__(self, title="Branch - Olive",
48
49
        self.path = path
49
50
        
50
51
        # Create the widgets
51
 
        self._button_branch = gtk.Button(_("_Branch"), use_underline=True)
 
52
        self._button_branch = gtk.Button(_i18n("_Branch"), use_underline=True)
 
53
        self._remote_branch = BranchSelectionBox()
52
54
        self._button_revision = gtk.Button('')
53
 
        self._image_browse = gtk.Image()
54
 
        self._filechooser = gtk.FileChooserButton(_("Please select a folder"))
55
 
        self._combo = gtk.ComboBoxEntry()
56
 
        self._label_location = gtk.Label(_("Branch location:"))
57
 
        self._label_destination = gtk.Label(_("Destination:"))
58
 
        self._label_nick = gtk.Label(_("Branck nick:"))
59
 
        self._label_revision = gtk.Label(_("Revision:"))
 
55
        self._label_location = gtk.Label(_i18n("Branch location:"))
 
56
        self._label_location.set_alignment(0, 0.5)
 
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._filechooser = gtk.FileChooserButton(_i18n("Please select a folder"))
 
61
        self._filechooser.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
60
62
        self._hbox_revision = gtk.HBox()
61
63
        self._entry_revision = gtk.Entry()
62
64
        self._entry_nick = gtk.Entry()
64
66
        # Set callbacks
65
67
        self._button_branch.connect('clicked', self._on_branch_clicked)
66
68
        self._button_revision.connect('clicked', self._on_revision_clicked)
67
 
        self._combo.child.connect('focus-out-event', self._on_combo_changed)
68
 
        
 
69
        self._remote_branch.connect('branch-changed', self._on_branch_changed)
 
70
 
69
71
        # Create the table and pack the widgets into it
70
72
        self._table = gtk.Table(rows=3, columns=2)
71
73
        self._table.attach(self._label_location, 0, 1, 0, 1)
 
74
        self._table.attach(self._remote_branch, 1, 2, 0, 1)
72
75
        self._table.attach(self._label_destination, 0, 1, 1, 2)
73
76
        self._table.attach(self._label_nick, 0, 1, 2, 3)
74
77
        self._table.attach(self._label_revision, 0, 1, 3, 4)
75
 
        self._table.attach(self._combo, 1, 2, 0, 1)
76
78
        self._table.attach(self._filechooser, 1, 2, 1, 2)
77
79
        self._table.attach(self._entry_nick, 1, 2, 2, 3)
78
80
        self._table.attach(self._hbox_revision, 1, 2, 3, 4)
79
81
        
80
82
        # Set properties
 
83
        self._image_browse = gtk.Image()
81
84
        self._image_browse.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
82
85
        self._button_revision.set_image(self._image_browse)
83
86
        self._button_revision.set_sensitive(False)
84
 
        self._filechooser.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
85
 
        self._label_location.set_alignment(0, 0.5)
86
87
        self._label_destination.set_alignment(0, 0.5)
87
88
        self._label_nick.set_alignment(0, 0.5)
88
89
        self._label_revision.set_alignment(0, 0.5)
89
90
        self._table.set_row_spacings(3)
90
91
        self._table.set_col_spacings(3)
91
92
        self.vbox.set_spacing(3)
 
93
        if remote_path is not None:
 
94
            self._remote_branch.set_url(remote_path)
92
95
        if self.path is not None:
93
96
            self._filechooser.set_filename(self.path)
94
 
        if remote_path is not None:
95
 
            self._combo.child.set_text(remote_path)
96
97
        
97
98
        # Pack some widgets
98
99
        self._hbox_revision.pack_start(self._entry_revision, True, True)
102
103
        
103
104
        # Show the dialog
104
105
        self.vbox.show_all()
105
 
        
106
 
        # Build branch history
107
 
        self._history = UrlHistory(GlobalConfig(), 'branch_history')
108
 
        self._build_history()
109
 
    
110
 
    def _build_history(self):
111
 
        """ Build up the branch history. """
112
 
        self._combo_model = gtk.ListStore(str)
113
 
        
114
 
        for item in self._history.get_entries():
115
 
            self._combo_model.append([ item ])
116
 
        
117
 
        pref = Preferences()
118
 
        for item in pref.get_bookmarks():
119
 
            self._combo_model.append([ item ])
120
 
        
121
 
        self._combo.set_model(self._combo_model)
122
 
        self._combo.set_text_column(0)
123
106
    
124
107
    def _get_last_revno(self):
125
108
        """ Get the revno of the last revision (if any). """
126
 
        location = self._combo.get_child().get_text()
127
109
        try:
128
 
            br = Branch.open(location)
129
 
        except:
130
 
            return None
131
 
        else:
 
110
            br = self._remote_branch.get_branch()
132
111
            return br.revno()
 
112
        except:
 
113
            pass
133
114
    
134
115
    def _on_revision_clicked(self, button):
135
116
        """ Browse for revision button clicked handler. """
136
117
        from revbrowser import RevisionBrowser
137
118
        
138
 
        location = self._combo.get_child().get_text()
139
119
        
140
120
        try:
141
 
            br = Branch.open(location)
 
121
            br = self._remote_branch.get_branch()
142
122
        except:
143
123
            return
144
 
        else:
145
 
            revb = RevisionBrowser(br, self)
146
 
            response = revb.run()
147
 
            if response != gtk.RESPONSE_NONE:
148
 
                revb.hide()
 
124
        revb = RevisionBrowser(br, self)
 
125
        response = revb.run()
 
126
        if response != gtk.RESPONSE_NONE:
 
127
            revb.hide()
 
128
    
 
129
            if response == gtk.RESPONSE_OK:
 
130
                if revb.selected_revno is not None:
 
131
                    self._entry_revision.set_text(revb.selected_revno)
149
132
        
150
 
                if response == gtk.RESPONSE_OK:
151
 
                    if revb.selected_revno is not None:
152
 
                        self._entry_revision.set_text(revb.selected_revno)
153
 
            
154
 
                revb.destroy()
 
133
            revb.destroy()
155
134
    
156
135
    @show_bzr_error
157
136
    def _on_branch_clicked(self, button):
158
137
        """ Branch button clicked handler. """
159
 
        location = self._combo.get_child().get_text()
 
138
        location = self._remote_branch.get_url()
160
139
        if location is '':
161
 
            error_dialog(_('Missing branch location'),
162
 
                         _('You must specify a branch location.'))
 
140
            error_dialog(_i18n('Missing branch location'),
 
141
                         _i18n('You must specify a branch location.'))
163
142
            return
164
143
        
165
144
        destination = self._filechooser.get_filename()
200
179
        finally:
201
180
            br_from.unlock()
202
181
                
203
 
        self._history.add_entry(location)
204
 
        info_dialog(_('Branching successful'),
205
 
                    _('%d revision(s) branched.') % revs)
 
182
        info_dialog(_i18n('Branching successful'),
 
183
                    _i18n('%d revision(s) branched.') % revs)
206
184
        
207
185
        self.response(gtk.RESPONSE_OK)
208
186
    
209
 
    def _on_combo_changed(self, widget, event):
 
187
    def _on_branch_changed(self, widget, event):
210
188
        """ We try to get the last revision if focus lost. """
211
189
        rev = self._get_last_revno()
212
190
        if rev is None:
213
 
            self._entry_revision.set_text(_('N/A'))
 
191
            self._entry_revision.set_text(_i18n('N/A'))
214
192
            self._button_revision.set_sensitive(False)
215
193
        else:
216
194
            self._entry_revision.set_text(str(rev))
217
195
            self._button_revision.set_sensitive(True)
218
196
            if self._entry_nick.get_text() == '':
219
 
                self._entry_nick.set_text(os.path.basename(self._combo.get_child().get_text().rstrip("/\\")))
 
197
                self._entry_nick.set_text(os.path.basename(self._remote_branch.get_url().rstrip("/\\")))