/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
1
# Copyright (C) 2006 by Szilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
2
#
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
7
#
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
12
#
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
try:
18
    import pygtk
19
    pygtk.require("2.0")
20
except:
21
    pass
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
22
0.13.11 by Jelmer Vernooij
Bunch of small fixes, cleanups and simplifications.
23
import gtk
24
import gtk.glade
25
import gobject
26
import pango
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
27
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
28
import bzrlib.errors as errors
93.1.10 by Alexander Belchenko
- Show file kind marker with path (i.e. directory path ends with '/')
29
from bzrlib import osutils
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
30
66.3.1 by v.ladeuil+lp at free
Fix #73737. Check empty message at commit time.
31
from dialog import error_dialog, question_dialog
93.1.12 by Alexander Belchenko
Names XML files with GUI resources obtained via olive/guifiles.py
32
from guifiles import GLADEFILENAME
93.1.6 by Alexander Belchenko
detecting name of glade file doing in separate module (olive.gladefile)
33
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
34
89 by Jelmer Vernooij
Rename OliveBranch -> BranchDialog.
35
class CommitDialog:
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
36
    """ Display Commit dialog and perform the needed actions. """
91.1.11 by Jelmer Vernooij
Cherrypick Alexanders' fix for #68127.
37
    def __init__(self, wt, wtpath, notbranch):
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
38
        """ Initialize the Commit dialog.
91.1.9 by Jelmer Vernooij
Use epydoc style (for consistency with Bazaar).
39
        :param  wt:         bzr working tree object
40
        :param  wtpath:     path to working tree root
91.1.11 by Jelmer Vernooij
Cherrypick Alexanders' fix for #68127.
41
        :param  notbranch:  flag that path is not a brach
42
        :type   notbranch:  bool
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
43
        """
93.1.6 by Alexander Belchenko
detecting name of glade file doing in separate module (olive.gladefile)
44
        self.glade = gtk.glade.XML(GLADEFILENAME, 'window_commit', 'olive-gtk')
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
45
        
0.13.1 by Jelmer Vernooij
Remove communicator use from Commit.
46
        self.wt = wt
47
        self.wtpath = wtpath
91.1.11 by Jelmer Vernooij
Cherrypick Alexanders' fix for #68127.
48
        self.notbranch = notbranch
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
49
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
50
        # Get some important widgets
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
51
        self.window = self.glade.get_widget('window_commit')
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
52
        self.checkbutton_local = self.glade.get_widget('checkbutton_commit_local')
53
        self.textview = self.glade.get_widget('textview_commit')
115 by Szilveszter Farkas (Phanatic)
Reworked Commit dialog to fix bug #73778.
54
        self.file_expander = self.glade.get_widget('expander_commit_select')
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
55
        self.file_view = self.glade.get_widget('treeview_commit_select')
115 by Szilveszter Farkas (Phanatic)
Reworked Commit dialog to fix bug #73778.
56
        self.pending_expander = self.glade.get_widget('expander_commit_pending')
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
57
        self.pending_label = self.glade.get_widget('label_commit_pending')
58
        self.pending_view = self.glade.get_widget('treeview_commit_pending')
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
59
91.1.11 by Jelmer Vernooij
Cherrypick Alexanders' fix for #68127.
60
        if wt is None or notbranch:
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
61
            return
62
        
63
        # Set the delta
64
        self.old_tree = self.wt.branch.repository.revision_tree(self.wt.branch.last_revision())
0.13.6 by Jelmer Vernooij
Don't pass along dialog context everywhere.
65
        self.delta = self.wt.changes_from(self.old_tree)
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
66
        
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
67
        # Get pending merges
68
        self.pending = self._pending_merges(self.wt)
69
        
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
70
        # Dictionary for signal_autoconnect
71
        dic = { "on_button_commit_commit_clicked": self.commit,
72
                "on_button_commit_cancel_clicked": self.close }
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
73
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
74
        # Connect the signals to the handlers
75
        self.glade.signal_autoconnect(dic)
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
76
        
77
        # Create the file list
78
        self._create_file_view()
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
79
        # Create the pending merges
80
        self._create_pending_merges()
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
81
    
82
    def display(self):
91.1.11 by Jelmer Vernooij
Cherrypick Alexanders' fix for #68127.
83
        """ Display the Push dialog.
84
        @return:    True if dialog is shown.
85
        """
86
        if self.wt is None and not self.notbranch:
87
            error_dialog(_('Directory does not have a working tree'),
88
                         _('Operation aborted.'))
89
            self.close()
66.3.1 by v.ladeuil+lp at free
Fix #73737. Check empty message at commit time.
90
            dialog_shown = False
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
91
        if self.notbranch:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
92
            error_dialog(_('Directory is not a branch'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
93
                         _('You can perform this action only in a branch.'))
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
94
            self.close()
66.3.1 by v.ladeuil+lp at free
Fix #73737. Check empty message at commit time.
95
            dialog_shown = False
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
96
        else:
0.13.1 by Jelmer Vernooij
Remove communicator use from Commit.
97
            if self.wt.branch.get_bound_location() is not None:
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
98
                # we have a checkout, so the local commit checkbox must appear
99
                self.checkbutton_local.show()
100
            
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
101
            if self.pending:
102
                # There are pending merges, file selection not supported
115 by Szilveszter Farkas (Phanatic)
Reworked Commit dialog to fix bug #73778.
103
                self.file_expander.set_expanded(False)
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
104
                self.file_view.set_sensitive(False)
105
            else:
106
                # No pending merges
115 by Szilveszter Farkas (Phanatic)
Reworked Commit dialog to fix bug #73778.
107
                self.pending_expander.hide()
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
108
            
0.8.26 by Szilveszter Farkas (Phanatic)
Implemented Diff window; added menu.py (was missing from last commit)
109
            self.textview.modify_font(pango.FontDescription("Monospace"))
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
110
            self.window.show()
66.3.1 by v.ladeuil+lp at free
Fix #73737. Check empty message at commit time.
111
            dialog_shown = True
112
        if dialog_shown:
113
            # Gives the focus to the commit message area
114
            self.textview.grab_focus()
115
        return dialog_shown
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
116
    
117
    def _create_file_view(self):
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
118
        self.file_store = gtk.ListStore(gobject.TYPE_BOOLEAN,   # [0] checkbox
119
                                        gobject.TYPE_STRING,    # [1] path to display
120
                                        gobject.TYPE_STRING,    # [2] changes type
121
                                        gobject.TYPE_STRING)    # [3] real path
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
122
        self.file_view.set_model(self.file_store)
123
        crt = gtk.CellRendererToggle()
124
        crt.set_property("activatable", True)
125
        crt.connect("toggled", self._toggle_commit, self.file_store)
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
126
        self.file_view.append_column(gtk.TreeViewColumn(_('Commit'),
0.8.21 by Szilveszter Farkas (Phanatic)
2006-07-25 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
127
                                     crt, active=0))
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
128
        self.file_view.append_column(gtk.TreeViewColumn(_('Path'),
0.8.21 by Szilveszter Farkas (Phanatic)
2006-07-25 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
129
                                     gtk.CellRendererText(), text=1))
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
130
        self.file_view.append_column(gtk.TreeViewColumn(_('Type'),
0.8.21 by Szilveszter Farkas (Phanatic)
2006-07-25 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
131
                                     gtk.CellRendererText(), text=2))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
132
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
133
        for path, id, kind in self.delta.added:
93.1.10 by Alexander Belchenko
- Show file kind marker with path (i.e. directory path ends with '/')
134
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
135
            self.file_store.append([ True, path+marker, _('added'), path ])
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
136
137
        for path, id, kind in self.delta.removed:
93.1.10 by Alexander Belchenko
- Show file kind marker with path (i.e. directory path ends with '/')
138
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
139
            self.file_store.append([ True, path+marker, _('removed'), path ])
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
140
141
        for oldpath, newpath, id, kind, text_modified, meta_modified in self.delta.renamed:
93.1.10 by Alexander Belchenko
- Show file kind marker with path (i.e. directory path ends with '/')
142
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
143
            if text_modified or meta_modified:
144
                changes = _('renamed and modified')
145
            else:
146
                changes = _('renamed')
93.1.10 by Alexander Belchenko
- Show file kind marker with path (i.e. directory path ends with '/')
147
            self.file_store.append([ True,
148
                                     oldpath+marker + '  =>  ' + newpath+marker,
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
149
                                     changes,
150
                                     newpath
151
                                   ])
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
152
153
        for path, id, kind, text_modified, meta_modified in self.delta.modified:
93.1.10 by Alexander Belchenko
- Show file kind marker with path (i.e. directory path ends with '/')
154
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
155
            self.file_store.append([ True, path+marker, _('modified'), path ])
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
156
    
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
157
    def _create_pending_merges(self):
158
        liststore = gtk.ListStore(gobject.TYPE_STRING,
159
                                  gobject.TYPE_STRING,
160
                                  gobject.TYPE_STRING)
161
        self.pending_view.set_model(liststore)
162
        
163
        self.pending_view.append_column(gtk.TreeViewColumn(_('Date'),
164
                                        gtk.CellRendererText(), text=0))
165
        self.pending_view.append_column(gtk.TreeViewColumn(_('Committer'),
166
                                        gtk.CellRendererText(), text=1))
167
        self.pending_view.append_column(gtk.TreeViewColumn(_('Summary'),
168
                                        gtk.CellRendererText(), text=2))
169
        
170
        if not self.pending:
171
            return
172
        
173
        for item in self.pending:
174
            liststore.append([ item['date'],
175
                               item['committer'],
176
                               item['summary'] ])
177
    
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
178
    def _get_specific_files(self):
179
        ret = []
180
        it = self.file_store.get_iter_first()
181
        while it:
182
            if self.file_store.get_value(it, 0):
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
183
                # get real path from hidden column 3
184
                ret.append(self.file_store.get_value(it, 3))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
185
            it = self.file_store.iter_next(it)
186
187
        return ret
188
    
189
    def _toggle_commit(self, cell, path, model):
190
        model[path][0] = not model[path][0]
191
        return
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
192
    
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
193
    def _pending_merges(self, wt):
194
        """ Return a list of pending merges or None if there are none of them. """
195
        parents = wt.get_parent_ids()
196
        if len(parents) < 2:
197
            return None
198
        
199
        import re
200
        from bzrlib.osutils import format_date
201
        
202
        pending = parents[1:]
203
        branch = wt.branch
204
        last_revision = parents[0]
205
        
206
        if last_revision is not None:
207
            try:
208
                ignore = set(branch.repository.get_ancestry(last_revision))
209
            except errors.NoSuchRevision:
210
                # the last revision is a ghost : assume everything is new 
211
                # except for it
212
                ignore = set([None, last_revision])
213
        else:
214
            ignore = set([None])
215
        
216
        pm = []
217
        for merge in pending:
218
            ignore.add(merge)
219
            try:
220
                m_revision = branch.repository.get_revision(merge)
221
                
222
                rev = {}
223
                rev['committer'] = re.sub('<.*@.*>', '', m_revision.committer).strip(' ')
224
                rev['summary'] = m_revision.get_summary()
225
                rev['date'] = format_date(m_revision.timestamp,
226
                                          m_revision.timezone or 0, 
227
                                          'original', date_fmt="%Y-%m-%d",
228
                                          show_offset=False)
229
                
230
                pm.append(rev)
231
                
232
                inner_merges = branch.repository.get_ancestry(merge)
233
                assert inner_merges[0] is None
234
                inner_merges.pop(0)
235
                inner_merges.reverse()
236
                for mmerge in inner_merges:
237
                    if mmerge in ignore:
238
                        continue
239
                    mm_revision = branch.repository.get_revision(mmerge)
240
                    
241
                    rev = {}
242
                    rev['committer'] = re.sub('<.*@.*>', '', mm_revision.committer).strip(' ')
243
                    rev['summary'] = mm_revision.get_summary()
244
                    rev['date'] = format_date(mm_revision.timestamp,
245
                                              mm_revision.timezone or 0, 
246
                                              'original', date_fmt="%Y-%m-%d",
247
                                              show_offset=False)
248
                
249
                    pm.append(rev)
250
                    
251
                    ignore.add(mmerge)
252
            except errors.NoSuchRevision:
253
                print "DEBUG: NoSuchRevision:", merge
254
        
255
        return pm
256
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
257
    def commit(self, widget):
0.8.26 by Szilveszter Farkas (Phanatic)
Implemented Diff window; added menu.py (was missing from last commit)
258
        textbuffer = self.textview.get_buffer()
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
259
        start, end = textbuffer.get_bounds()
93.1.9 by Alexander Belchenko
Fix bug 67927 (non-ascii commit message saved as utf-8 string)
260
        message = textbuffer.get_text(start, end).decode('utf-8')
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
261
        
262
        checkbutton_strict = self.glade.get_widget('checkbutton_commit_strict')
263
        checkbutton_force = self.glade.get_widget('checkbutton_commit_force')
264
        
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
265
        if not self.pending:
266
            specific_files = self._get_specific_files()
267
        else:
268
            specific_files = None
66.3.1 by v.ladeuil+lp at free
Fix #73737. Check empty message at commit time.
269
270
        if message == '':
271
            response = question_dialog('Commit with an empty message ?',
272
                                       'You can describe your commit intent'
273
                                       +' in the message')
274
            if response == gtk.RESPONSE_NO:
275
                # Kindly give focus to message area
276
                self.textview.grab_focus()
277
                return
278
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
279
        try:
66.3.1 by v.ladeuil+lp at free
Fix #73737. Check empty message at commit time.
280
            self.wt.commit(message,
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
281
                           allow_pointless=checkbutton_force.get_active(),
282
                           strict=checkbutton_strict.get_active(),
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
283
                           local=self.checkbutton_local.get_active(),
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
284
                           specific_files=specific_files)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
285
        except errors.NotBranchError:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
286
            error_dialog(_('Directory is not a branch'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
287
                         _('You can perform this action only in a branch.'))
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
288
            return
289
        except errors.LocalRequiresBoundBranch:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
290
            error_dialog(_('Directory is not a checkout'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
291
                         _('You can perform local commit only on checkouts.'))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
292
            return
293
        except errors.PointlessCommit:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
294
            error_dialog(_('No changes to commit'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
295
                         _('Try force commit if you want to commit anyway.'))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
296
            return
297
        except errors.ConflictsInTree:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
298
            error_dialog(_('Conflicts in tree'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
299
                         _('You need to resolve the conflicts before committing.'))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
300
            return
301
        except errors.StrictCommitFailed:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
302
            error_dialog(_('Strict commit failed'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
303
                         _('There are unknown files in the working tree.\nPlease add or delete them.'))
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
304
            return
305
        except errors.BoundBranchOutOfDate, errmsg:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
306
            error_dialog(_('Bound branch is out of date'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
307
                         _('%s') % errmsg)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
308
            return
0.13.2 by Jelmer Vernooij
Handle unknown errors in commit.
309
        except errors.BzrError, msg:
0.13.4 by Jelmer Vernooij
Handle non-bzr unknown errors as well.
310
            error_dialog(_('Unknown bzr error'), str(msg))
311
            return
312
        except Exception, msg:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
313
            error_dialog(_('Unknown error'), str(msg))
0.13.2 by Jelmer Vernooij
Handle unknown errors in commit.
314
            return
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
315
91.1.11 by Jelmer Vernooij
Cherrypick Alexanders' fix for #68127.
316
        self.close()
317
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
318
    def close(self, widget=None):
319
        self.window.destroy()