/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 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.child.connect('focus-out-event', 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._history = UrlHistory(GlobalConfig(), 'branch_history')
105
 
        self._build_history()
106
 
    
107
 
    def _build_history(self):
108
 
        """ Build up the branch history. """
109
 
        self._combo_model = gtk.ListStore(str)
110
 
        for item in self._history.get_entries():
111
 
            self._combo_model.append([ item ])
112
 
        self._combo.set_model(self._combo_model)
113
 
        self._combo.set_text_column(0)
114
106
    
115
107
    def _get_last_revno(self):
116
108
        """ Get the revno of the last revision (if any). """
117
 
        location = self._combo.get_child().get_text()
118
109
        try:
119
 
            br = Branch.open(location)
120
 
        except:
121
 
            return None
122
 
        else:
 
110
            br = self._remote_branch.get_branch()
123
111
            return br.revno()
 
112
        except:
 
113
            pass
124
114
    
125
115
    def _on_revision_clicked(self, button):
126
116
        """ Browse for revision button clicked handler. """
127
117
        from revbrowser import RevisionBrowser
128
118
        
129
 
        location = self._combo.get_child().get_text()
130
119
        
131
120
        try:
132
 
            br = Branch.open(location)
 
121
            br = self._remote_branch.get_branch()
133
122
        except:
134
123
            return
135
 
        else:
136
 
            revb = RevisionBrowser(br, self)
137
 
            response = revb.run()
138
 
            if response != gtk.RESPONSE_NONE:
139
 
                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)
140
132
        
141
 
                if response == gtk.RESPONSE_OK:
142
 
                    if revb.selected_revno is not None:
143
 
                        self._entry_revision.set_text(revb.selected_revno)
144
 
            
145
 
                revb.destroy()
 
133
            revb.destroy()
146
134
    
147
135
    @show_bzr_error
148
136
    def _on_branch_clicked(self, button):
149
137
        """ Branch button clicked handler. """
150
 
        location = self._combo.get_child().get_text()
 
138
        location = self._remote_branch.get_url()
151
139
        if location is '':
152
 
            error_dialog(_('Missing branch location'),
153
 
                         _('You must specify a branch location.'))
 
140
            error_dialog(_i18n('Missing branch location'),
 
141
                         _i18n('You must specify a branch location.'))
154
142
            return
155
143
        
156
144
        destination = self._filechooser.get_filename()
191
179
        finally:
192
180
            br_from.unlock()
193
181
                
194
 
        self._history.add_entry(location)
195
 
        info_dialog(_('Branching successful'),
196
 
                    _('%d revision(s) branched.') % revs)
 
182
        info_dialog(_i18n('Branching successful'),
 
183
                    _i18n('%d revision(s) branched.') % revs)
197
184
        
198
185
        self.response(gtk.RESPONSE_OK)
199
186
    
200
 
    def _on_combo_changed(self, widget, event):
 
187
    def _on_branch_changed(self, widget, event):
201
188
        """ We try to get the last revision if focus lost. """
202
 
        print "DEBUG: combo changed."
203
189
        rev = self._get_last_revno()
204
190
        if rev is None:
205
 
            self._entry_revision.set_text(_('N/A'))
 
191
            self._entry_revision.set_text(_i18n('N/A'))
206
192
            self._button_revision.set_sensitive(False)
207
193
        else:
208
194
            self._entry_revision.set_text(str(rev))
209
195
            self._button_revision.set_sensitive(True)
210
196
            if self._entry_nick.get_text() == '':
211
 
                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("/\\")))