/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
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
31
from dialog import error_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. """
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
37
    def __init__(self, wt, wtpath, standalone=False):
38
        """ Initialize the Commit dialog.
39
        @param  wt:         bzr working tree object
40
        @param  wtpath:     path to working tree root
41
        @param  standalone: when used in gcommit command as standalone window
42
                            this argument should be True
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
48
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
49
        self.standalone = standalone
50
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
51
        # Get some important widgets
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
52
        self.window = self.glade.get_widget('window_commit')
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
53
        self.checkbutton_local = self.glade.get_widget('checkbutton_commit_local')
54
        self.textview = self.glade.get_widget('textview_commit')
55
        self.file_view = self.glade.get_widget('treeview_commit_select')
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
56
        self.pending_label = self.glade.get_widget('label_commit_pending')
57
        self.pending_view = self.glade.get_widget('treeview_commit_pending')
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
58
0.13.1 by Jelmer Vernooij
Remove communicator use from Commit.
59
        file_id = self.wt.path2id(wtpath)
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
60
61
        self.notbranch = False
62
        if file_id is None:
63
            self.notbranch = True
64
            return
65
        
66
        # Set the delta
67
        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.
68
        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>
69
        
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
70
        # Get pending merges
71
        self.pending = self._pending_merges(self.wt)
72
        
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
73
        # Dictionary for signal_autoconnect
74
        dic = { "on_button_commit_commit_clicked": self.commit,
75
                "on_button_commit_cancel_clicked": self.close }
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
76
77
        if self.standalone:
78
            dic["on_button_commit_cancel_clicked"] = self.quit
93.1.11 by Alexander Belchenko
Another fix for closing gcommit dialog: when user press [x] in title mainloop also should be quit
79
            self.window.connect("delete_event", gtk.main_quit)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
80
        
81
        # Connect the signals to the handlers
82
        self.glade.signal_autoconnect(dic)
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
83
        
84
        # Create the file list
85
        self._create_file_view()
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
86
        # Create the pending merges
87
        self._create_pending_merges()
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
88
    
89
    def display(self):
90
        """ Display the Push dialog. """
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()
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
95
        else:
0.13.1 by Jelmer Vernooij
Remove communicator use from Commit.
96
            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
97
                # we have a checkout, so the local commit checkbox must appear
98
                self.checkbutton_local.show()
99
            
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
100
            if self.pending:
101
                # There are pending merges, file selection not supported
102
                self.file_view.set_sensitive(False)
103
            else:
104
                # No pending merges
105
                self.pending_view.set_sensitive(False)
106
            
0.8.26 by Szilveszter Farkas (Phanatic)
Implemented Diff window; added menu.py (was missing from last commit)
107
            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
108
            self.window.show()
109
            
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
110
    
111
    def _create_file_view(self):
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
112
        self.file_store = gtk.ListStore(gobject.TYPE_BOOLEAN,   # [0] checkbox
113
                                        gobject.TYPE_STRING,    # [1] path to display
114
                                        gobject.TYPE_STRING,    # [2] changes type
115
                                        gobject.TYPE_STRING)    # [3] real path
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
116
        self.file_view.set_model(self.file_store)
117
        crt = gtk.CellRendererToggle()
118
        crt.set_property("activatable", True)
119
        crt.connect("toggled", self._toggle_commit, self.file_store)
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
120
        self.file_view.append_column(gtk.TreeViewColumn(_('Commit'),
0.8.21 by Szilveszter Farkas (Phanatic)
2006-07-25 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
121
                                     crt, active=0))
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
122
        self.file_view.append_column(gtk.TreeViewColumn(_('Path'),
0.8.21 by Szilveszter Farkas (Phanatic)
2006-07-25 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
123
                                     gtk.CellRendererText(), text=1))
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
124
        self.file_view.append_column(gtk.TreeViewColumn(_('Type'),
0.8.21 by Szilveszter Farkas (Phanatic)
2006-07-25 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
125
                                     gtk.CellRendererText(), text=2))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
126
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
127
        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 '/')
128
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
129
            self.file_store.append([ True, path+marker, _('added'), path ])
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
130
131
        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 '/')
132
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
133
            self.file_store.append([ True, path+marker, _('removed'), path ])
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
134
135
        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 '/')
136
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
137
            if text_modified or meta_modified:
138
                changes = _('renamed and modified')
139
            else:
140
                changes = _('renamed')
93.1.10 by Alexander Belchenko
- Show file kind marker with path (i.e. directory path ends with '/')
141
            self.file_store.append([ True,
142
                                     oldpath+marker + '  =>  ' + newpath+marker,
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
143
                                     changes,
144
                                     newpath
145
                                   ])
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
146
147
        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 '/')
148
            marker = osutils.kind_marker(kind)
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
149
            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>
150
    
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
151
    def _create_pending_merges(self):
152
        liststore = gtk.ListStore(gobject.TYPE_STRING,
153
                                  gobject.TYPE_STRING,
154
                                  gobject.TYPE_STRING)
155
        self.pending_view.set_model(liststore)
156
        
157
        self.pending_view.append_column(gtk.TreeViewColumn(_('Date'),
158
                                        gtk.CellRendererText(), text=0))
159
        self.pending_view.append_column(gtk.TreeViewColumn(_('Committer'),
160
                                        gtk.CellRendererText(), text=1))
161
        self.pending_view.append_column(gtk.TreeViewColumn(_('Summary'),
162
                                        gtk.CellRendererText(), text=2))
163
        
164
        if not self.pending:
165
            return
166
        
167
        for item in self.pending:
168
            liststore.append([ item['date'],
169
                               item['committer'],
170
                               item['summary'] ])
171
    
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
172
    def _get_specific_files(self):
173
        ret = []
174
        it = self.file_store.get_iter_first()
175
        while it:
176
            if self.file_store.get_value(it, 0):
93.1.13 by Alexander Belchenko
Fix bug introduced by revid:bialix@ukr.net-20061025102040-90bcdbad341ee3fa
177
                # get real path from hidden column 3
178
                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>
179
            it = self.file_store.iter_next(it)
180
181
        return ret
182
    
183
    def _toggle_commit(self, cell, path, model):
184
        model[path][0] = not model[path][0]
185
        return
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
186
    
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
187
    def _pending_merges(self, wt):
188
        """ Return a list of pending merges or None if there are none of them. """
189
        parents = wt.get_parent_ids()
190
        if len(parents) < 2:
191
            return None
192
        
193
        import re
194
        from bzrlib.osutils import format_date
195
        
196
        pending = parents[1:]
197
        branch = wt.branch
198
        last_revision = parents[0]
199
        
200
        if last_revision is not None:
201
            try:
202
                ignore = set(branch.repository.get_ancestry(last_revision))
203
            except errors.NoSuchRevision:
204
                # the last revision is a ghost : assume everything is new 
205
                # except for it
206
                ignore = set([None, last_revision])
207
        else:
208
            ignore = set([None])
209
        
210
        pm = []
211
        for merge in pending:
212
            ignore.add(merge)
213
            try:
214
                m_revision = branch.repository.get_revision(merge)
215
                
216
                rev = {}
217
                rev['committer'] = re.sub('<.*@.*>', '', m_revision.committer).strip(' ')
218
                rev['summary'] = m_revision.get_summary()
219
                rev['date'] = format_date(m_revision.timestamp,
220
                                          m_revision.timezone or 0, 
221
                                          'original', date_fmt="%Y-%m-%d",
222
                                          show_offset=False)
223
                
224
                pm.append(rev)
225
                
226
                inner_merges = branch.repository.get_ancestry(merge)
227
                assert inner_merges[0] is None
228
                inner_merges.pop(0)
229
                inner_merges.reverse()
230
                for mmerge in inner_merges:
231
                    if mmerge in ignore:
232
                        continue
233
                    mm_revision = branch.repository.get_revision(mmerge)
234
                    
235
                    rev = {}
236
                    rev['committer'] = re.sub('<.*@.*>', '', mm_revision.committer).strip(' ')
237
                    rev['summary'] = mm_revision.get_summary()
238
                    rev['date'] = format_date(mm_revision.timestamp,
239
                                              mm_revision.timezone or 0, 
240
                                              'original', date_fmt="%Y-%m-%d",
241
                                              show_offset=False)
242
                
243
                    pm.append(rev)
244
                    
245
                    ignore.add(mmerge)
246
            except errors.NoSuchRevision:
247
                print "DEBUG: NoSuchRevision:", merge
248
        
249
        return pm
250
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
251
    def commit(self, widget):
0.8.26 by Szilveszter Farkas (Phanatic)
Implemented Diff window; added menu.py (was missing from last commit)
252
        textbuffer = self.textview.get_buffer()
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
253
        start, end = textbuffer.get_bounds()
93.1.9 by Alexander Belchenko
Fix bug 67927 (non-ascii commit message saved as utf-8 string)
254
        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>
255
        
256
        checkbutton_strict = self.glade.get_widget('checkbutton_commit_strict')
257
        checkbutton_force = self.glade.get_widget('checkbutton_commit_force')
258
        
95 by Szilveszter Farkas (Phanatic)
Added pending merges to Commit dialog. Fixed bug #66091.
259
        if not self.pending:
260
            specific_files = self._get_specific_files()
261
        else:
262
            specific_files = None
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
263
        
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
264
        try:
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
265
            self.wt.commit(message, 
266
                           allow_pointless=checkbutton_force.get_active(),
267
                           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
268
                           local=self.checkbutton_local.get_active(),
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
269
                           specific_files=specific_files)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
270
        except errors.NotBranchError:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
271
            error_dialog(_('Directory is not a branch'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
272
                         _('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>
273
            return
274
        except errors.LocalRequiresBoundBranch:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
275
            error_dialog(_('Directory is not a checkout'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
276
                         _('You can perform local commit only on checkouts.'))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
277
            return
278
        except errors.PointlessCommit:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
279
            error_dialog(_('No changes to commit'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
280
                         _('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>
281
            return
282
        except errors.ConflictsInTree:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
283
            error_dialog(_('Conflicts in tree'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
284
                         _('You need to resolve the conflicts before committing.'))
0.8.20 by Szilveszter Farkas (Phanatic)
2006-07-24 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
285
            return
286
        except errors.StrictCommitFailed:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
287
            error_dialog(_('Strict commit failed'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
288
                         _('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>
289
            return
290
        except errors.BoundBranchOutOfDate, errmsg:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
291
            error_dialog(_('Bound branch is out of date'),
0.8.98 by Szilveszter Farkas (Phanatic)
Loads of fixes. Pyflakes cleanup.
292
                         _('%s') % errmsg)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
293
            return
0.13.2 by Jelmer Vernooij
Handle unknown errors in commit.
294
        except errors.BzrError, msg:
0.13.4 by Jelmer Vernooij
Handle non-bzr unknown errors as well.
295
            error_dialog(_('Unknown bzr error'), str(msg))
296
            return
297
        except Exception, msg:
0.13.3 by Jelmer Vernooij
Start removing dialog context (it's not required).
298
            error_dialog(_('Unknown error'), str(msg))
0.13.2 by Jelmer Vernooij
Handle unknown errors in commit.
299
            return
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
300
301
        if not self.standalone:
302
            self.close()
303
        else:
304
            self.quit()
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
305
        
306
    def close(self, widget=None):
307
        self.window.destroy()
93.1.7 by Alexander Belchenko
Fix gcommit bug 66937 (bzr still running after cancel/commit clicked)
308
309
    def quit(self, widget=None):
310
        self.close(widget)
311
        gtk.main_quit()