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