/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:
16
16
 
17
17
import os
18
18
 
19
 
from gi.repository import Gtk
20
 
 
21
 
from bzrlib import (
22
 
    errors,
23
 
    )
 
19
try:
 
20
    import pygtk
 
21
    pygtk.require("2.0")
 
22
except:
 
23
    pass
 
24
 
 
25
import gtk
 
26
 
 
27
from errors import show_bzr_error
 
28
 
24
29
from bzrlib.branch import Branch
25
 
from bzrlib.transport import get_transport
26
 
 
27
 
from bzrlib.plugins.gtk.dialog import error_dialog, info_dialog
28
 
from bzrlib.plugins.gtk.errors import show_bzr_error
29
 
from bzrlib.plugins.gtk.i18n import _i18n
30
 
from bzrlib.plugins.gtk.branchbox import BranchSelectionBox
31
 
 
32
 
 
33
 
class BranchDialog(Gtk.Dialog):
 
30
import bzrlib.errors as errors
 
31
 
 
32
from bzrlib.plugins.gtk import _i18n
 
33
 
 
34
from dialog import error_dialog, info_dialog
 
35
 
 
36
from branchbox import BranchSelectionBox
 
37
 
 
38
class BranchDialog(gtk.Dialog):
34
39
    """ New implementation of the Branch dialog. """
35
40
 
36
41
    def __init__(self, path=None, parent=None, remote_path=None):
37
42
        """ Initialize the Branch dialog. """
38
 
        super(BranchDialog, self).__init__(
39
 
            title="Branch - Olive", parent=parent, flags=0,
40
 
            buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
41
 
 
 
43
        gtk.Dialog.__init__(self, title="Branch - Olive",
 
44
                                  parent=parent,
 
45
                                  flags=0,
 
46
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
 
47
        
42
48
        # Get arguments
43
49
        self.path = path
44
 
 
 
50
        
45
51
        # Create the widgets
46
 
        self._button_branch = Gtk.Button(_i18n("_Branch"), use_underline=True)
 
52
        self._button_branch = gtk.Button(_i18n("_Branch"), use_underline=True)
47
53
        self._remote_branch = BranchSelectionBox()
48
 
        self._button_revision = Gtk.Button('')
49
 
        self._label_location = Gtk.Label(label=_i18n("Branch location:"))
 
54
        self._button_revision = gtk.Button('')
 
55
        self._label_location = gtk.Label(_i18n("Branch location:"))
50
56
        self._label_location.set_alignment(0, 0.5)
51
 
        self._label_destination = Gtk.Label(label=_i18n("Destination:"))
52
 
        self._label_nick = Gtk.Label(label=_i18n("Branck nick:"))
53
 
        self._label_revision = Gtk.Label(label=_i18n("Revision:"))
54
 
        self._filechooser = Gtk.FileChooserButton(_i18n("Please select a folder"))
55
 
        self._filechooser.set_action(Gtk.FileChooserAction.SELECT_FOLDER)
56
 
        self._hbox_revision = Gtk.HBox()
57
 
        self._entry_revision = Gtk.Entry()
58
 
        self._entry_nick = Gtk.Entry()
59
 
 
 
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)
 
62
        self._hbox_revision = gtk.HBox()
 
63
        self._entry_revision = gtk.Entry()
 
64
        self._entry_nick = gtk.Entry()
 
65
        
60
66
        # Set callbacks
61
67
        self._button_branch.connect('clicked', self._on_branch_clicked)
62
68
        self._button_revision.connect('clicked', self._on_revision_clicked)
63
69
        self._remote_branch.connect('branch-changed', self._on_branch_changed)
64
70
 
65
71
        # Create the table and pack the widgets into it
66
 
        self._table = Gtk.Table(rows=3, columns=2)
 
72
        self._table = gtk.Table(rows=3, columns=2)
67
73
        self._table.attach(self._label_location, 0, 1, 0, 1)
68
74
        self._table.attach(self._remote_branch, 1, 2, 0, 1)
69
75
        self._table.attach(self._label_destination, 0, 1, 1, 2)
72
78
        self._table.attach(self._filechooser, 1, 2, 1, 2)
73
79
        self._table.attach(self._entry_nick, 1, 2, 2, 3)
74
80
        self._table.attach(self._hbox_revision, 1, 2, 3, 4)
75
 
 
 
81
        
76
82
        # Set properties
77
 
        self._image_browse = Gtk.Image()
78
 
        self._image_browse.set_from_stock(Gtk.STOCK_OPEN, Gtk.IconSize.BUTTON)
 
83
        self._image_browse = gtk.Image()
 
84
        self._image_browse.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
79
85
        self._button_revision.set_image(self._image_browse)
80
86
        self._button_revision.set_sensitive(False)
81
87
        self._label_destination.set_alignment(0, 0.5)
83
89
        self._label_revision.set_alignment(0, 0.5)
84
90
        self._table.set_row_spacings(3)
85
91
        self._table.set_col_spacings(3)
86
 
        self.get_content_area().set_spacing(3)
 
92
        self.vbox.set_spacing(3)
87
93
        if remote_path is not None:
88
94
            self._remote_branch.set_url(remote_path)
89
95
        if self.path is not None:
90
96
            self._filechooser.set_filename(self.path)
91
 
 
 
97
        
92
98
        # Pack some widgets
93
 
        self._hbox_revision.pack_start(self._entry_revision, True, True, 0)
94
 
        self._hbox_revision.pack_start(self._button_revision, False, False, 0)
95
 
        self.get_content_area().add(self._table)
96
 
        self.action_area.pack_end(self._button_branch, False, False, 0)
97
 
 
 
99
        self._hbox_revision.pack_start(self._entry_revision, True, True)
 
100
        self._hbox_revision.pack_start(self._button_revision, False, False)
 
101
        self.vbox.add(self._table)
 
102
        self.action_area.pack_end(self._button_branch)
 
103
        
98
104
        # Show the dialog
99
 
        self.get_content_area().show_all()
100
 
 
 
105
        self.vbox.show_all()
 
106
    
101
107
    def _get_last_revno(self):
102
108
        """ Get the revno of the last revision (if any). """
103
109
        try:
105
111
            return br.revno()
106
112
        except:
107
113
            pass
108
 
 
 
114
    
109
115
    def _on_revision_clicked(self, button):
110
116
        """ Browse for revision button clicked handler. """
111
117
        from revbrowser import RevisionBrowser
112
 
 
113
 
 
 
118
        
 
119
        
114
120
        try:
115
121
            br = self._remote_branch.get_branch()
116
122
        except:
117
123
            return
118
124
        revb = RevisionBrowser(br, self)
119
125
        response = revb.run()
120
 
        if response != Gtk.ResponseType.NONE:
 
126
        if response != gtk.RESPONSE_NONE:
121
127
            revb.hide()
122
 
 
123
 
            if response == Gtk.ResponseType.OK:
 
128
    
 
129
            if response == gtk.RESPONSE_OK:
124
130
                if revb.selected_revno is not None:
125
131
                    self._entry_revision.set_text(revb.selected_revno)
126
 
 
 
132
        
127
133
            revb.destroy()
128
 
 
 
134
    
129
135
    @show_bzr_error
130
136
    def _on_branch_clicked(self, button):
131
137
        """ Branch button clicked handler. """
134
140
            error_dialog(_i18n('Missing branch location'),
135
141
                         _i18n('You must specify a branch location.'))
136
142
            return
137
 
 
 
143
        
138
144
        destination = self._filechooser.get_filename()
139
145
        try:
140
146
            revno = int(self._entry_revision.get_text())
141
147
        except:
142
148
            revno = None
143
 
 
 
149
        
144
150
        nick = self._entry_nick.get_text()
145
151
        if nick is '':
146
152
            nick = os.path.basename(location.rstrip("/\\"))
147
 
 
 
153
        
148
154
        br_from = Branch.open(location)
149
 
 
 
155
        
150
156
        br_from.lock_read()
151
157
        try:
 
158
            from bzrlib.transport import get_transport
 
159
 
152
160
            revision_id = br_from.get_rev_id(revno)
153
161
 
154
162
            basis_dir = None
155
 
 
 
163
            
156
164
            to_location = destination + os.sep + nick
157
165
            to_transport = get_transport(to_location)
158
 
 
 
166
            
159
167
            to_transport.mkdir('.')
160
 
 
 
168
            
161
169
            try:
162
170
                # preserve whatever source format we have.
163
171
                dir = br_from.bzrdir.sprout(to_transport.base,
170
178
                raise
171
179
        finally:
172
180
            br_from.unlock()
173
 
 
 
181
                
174
182
        info_dialog(_i18n('Branching successful'),
175
183
                    _i18n('%d revision(s) branched.') % revs)
176
 
 
177
 
        self.response(Gtk.ResponseType.OK)
178
 
 
 
184
        
 
185
        self.response(gtk.RESPONSE_OK)
 
186
    
179
187
    def _on_branch_changed(self, widget, event):
180
188
        """ We try to get the last revision if focus lost. """
181
189
        rev = self._get_last_revno()