/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 commit.py

  • Committer: Curtis Hovey
  • Date: 2011-09-08 03:11:06 UTC
  • mto: This revision was merged to the branch mainline in revision 741.
  • Revision ID: sinzui.is@verizon.net-20110908031106-c0s7grzmctdyghcm
Fixed packing args.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
 
import os.path
18
17
import re
19
18
 
20
 
try:
21
 
    import pygtk
22
 
    pygtk.require("2.0")
23
 
except:
24
 
    pass
25
 
 
26
 
import gtk
27
 
import gobject
28
 
import pango
 
19
from gi.repository import Gdk
 
20
from gi.repository import Gtk
 
21
from gi.repository import GObject
 
22
from gi.repository import Pango
29
23
 
30
24
from bzrlib import (
31
 
    branch,
32
25
    errors,
33
26
    osutils,
34
27
    trace,
38
31
except ImportError:
39
32
    from bzrlib.util import bencode
40
33
 
41
 
from bzrlib.plugins.gtk import _i18n
42
34
from bzrlib.plugins.gtk.dialog import question_dialog
43
35
from bzrlib.plugins.gtk.errors import show_bzr_error
 
36
from bzrlib.plugins.gtk.i18n import _i18n
44
37
 
45
38
try:
46
39
    import dbus
111
104
    return fixed_newline.decode('utf-8')
112
105
 
113
106
 
114
 
class CommitDialog(gtk.Dialog):
 
107
class CommitDialog(Gtk.Dialog):
115
108
    """Implementation of Commit."""
116
109
 
117
110
    def __init__(self, wt, selected=None, parent=None):
118
 
        gtk.Dialog.__init__(self, title="Commit to %s" % wt.basedir,
119
 
                            parent=parent, flags=0,)
 
111
        super(CommitDialog, self).__init__(
 
112
            title="Commit to %s" % wt.basedir, parent=parent, flags=0)
120
113
        self.connect('delete-event', self._on_delete_window)
121
114
        self._question_dialog = question_dialog
122
115
 
123
 
        self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_NORMAL)
 
116
        self.set_type_hint(Gdk.WindowTypeHint.NORMAL)
124
117
 
125
118
        self._wt = wt
126
119
        # TODO: Do something with this value, it is used by Olive
129
122
        self._enable_per_file_commits = True
130
123
        self._commit_all_changes = True
131
124
        self.committed_revision_id = None # Nothing has been committed yet
132
 
        self._saved_commit_messages_manager = SavedCommitMessagesManager(self._wt, self._wt.branch)
 
125
        self._saved_commit_messages_manager = SavedCommitMessagesManager(
 
126
            self._wt, self._wt.branch)
133
127
 
134
128
        self.setup_params()
135
129
        self.construct()
234
228
        # This sets the cursor, which causes the expander to close, which
235
229
        # causes the _file_message_text_view to never get realized. So we have
236
230
        # to give it a little kick, or it warns when we try to grab the focus
237
 
        self._treeview_files.set_cursor(initial_cursor)
 
231
        self._treeview_files.set_cursor(initial_cursor, None, False)
238
232
 
239
233
        def _realize_file_message_tree_view(*args):
240
234
            self._file_message_text_view.realize()
288
282
        """Build up the dialog widgets."""
289
283
        # The primary pane which splits it into left and right (adjustable)
290
284
        # sections.
291
 
        self._hpane = gtk.HPaned()
 
285
        self._hpane = Gtk.HPaned()
292
286
 
293
287
        self._construct_left_pane()
294
288
        self._construct_right_pane()
295
289
        self._construct_action_pane()
296
290
 
297
 
        self.vbox.pack_start(self._hpane)
 
291
        self.get_content_area().pack_start(self._hpane, True, True, 0)
298
292
        self._hpane.show()
299
293
        self.set_focus(self._global_message_text_view)
300
294
 
319
313
        self._hpane.set_position(300)
320
314
 
321
315
    def _construct_accelerators(self):
322
 
        group = gtk.AccelGroup()
323
 
        group.connect_group(gtk.gdk.keyval_from_name('N'),
324
 
                            gtk.gdk.CONTROL_MASK, 0, self._on_accel_next)
 
316
        group = Gtk.AccelGroup()
 
317
        group.connect(Gdk.keyval_from_name('N'),
 
318
                      Gdk.ModifierType.CONTROL_MASK, 0, self._on_accel_next)
325
319
        self.add_accel_group(group)
326
320
 
327
321
        # ignore the escape key (avoid closing the window)
328
322
        self.connect_object('close', self.emit_stop_by_name, 'close')
329
323
 
330
324
    def _construct_left_pane(self):
331
 
        self._left_pane_box = gtk.VBox(homogeneous=False, spacing=5)
 
325
        self._left_pane_box = Gtk.VBox(homogeneous=False, spacing=5)
332
326
        self._construct_file_list()
333
327
        self._construct_pending_list()
334
328
 
335
 
        self._check_local = gtk.CheckButton(_i18n("_Only commit locally"),
 
329
        self._check_local = Gtk.CheckButton(_i18n("_Only commit locally"),
336
330
                                            use_underline=True)
337
 
        self._left_pane_box.pack_end(self._check_local, False, False)
 
331
        self._left_pane_box.pack_end(self._check_local, False, False, 0)
338
332
        self._check_local.set_active(False)
339
333
 
340
334
        self._hpane.pack1(self._left_pane_box, resize=False, shrink=False)
347
341
        # commit, and 1 for file commit, and it looked good. But I don't seem
348
342
        # to have a way to do that with the gtk boxes... :( (Which is extra
349
343
        # weird since wx uses gtk on Linux...)
350
 
        self._right_pane_table = gtk.Table(rows=10, columns=1, homogeneous=False)
 
344
        self._right_pane_table = Gtk.Table(rows=10, columns=1, homogeneous=False)
351
345
        self._right_pane_table.set_row_spacings(5)
352
346
        self._right_pane_table.set_col_spacings(5)
353
347
        self._right_pane_table_row = 0
359
353
        self._hpane.pack2(self._right_pane_table, resize=True, shrink=True)
360
354
 
361
355
    def _construct_action_pane(self):
362
 
        self._button_cancel = gtk.Button(stock=gtk.STOCK_CANCEL)
 
356
        self._button_cancel = Gtk.Button(stock=Gtk.STOCK_CANCEL)
363
357
        self._button_cancel.connect('clicked', self._on_cancel_clicked)
364
358
        self._button_cancel.show()
365
 
        self.action_area.pack_end(self._button_cancel)
366
 
        self._button_commit = gtk.Button(_i18n("Comm_it"), use_underline=True)
 
359
        self.get_action_area().pack_end(
 
360
            self._button_cancel, True, True, 0)
 
361
        self._button_commit = Gtk.Button(_i18n("Comm_it"), use_underline=True)
367
362
        self._button_commit.connect('clicked', self._on_commit_clicked)
368
 
        self._button_commit.set_flags(gtk.CAN_DEFAULT)
 
363
        self._button_commit.set_can_default(True)
369
364
        self._button_commit.show()
370
 
        self.action_area.pack_end(self._button_commit)
 
365
        self.get_action_area().pack_end(
 
366
            self._button_commit, True, True, 0)
371
367
        self._button_commit.grab_default()
372
368
 
373
369
    def _add_to_right_table(self, widget, weight, expanding=False):
379
375
        """
380
376
        end_row = self._right_pane_table_row + weight
381
377
        options = 0
382
 
        expand_opts = gtk.EXPAND | gtk.FILL | gtk.SHRINK
 
378
        expand_opts = Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL | Gtk.AttachOptions.SHRINK
383
379
        if expanding:
384
380
            options = expand_opts
385
381
        self._right_pane_table.attach(widget, 0, 1,
388
384
        self._right_pane_table_row = end_row
389
385
 
390
386
    def _construct_file_list(self):
391
 
        self._files_box = gtk.VBox(homogeneous=False, spacing=0)
392
 
        file_label = gtk.Label(_i18n('Files'))
 
387
        self._files_box = Gtk.VBox(homogeneous=False, spacing=0)
 
388
        file_label = Gtk.Label(label=_i18n('Files'))
393
389
        # file_label.show()
394
 
        self._files_box.pack_start(file_label, expand=False)
 
390
        self._files_box.pack_start(file_label, False, True, 0)
395
391
 
396
 
        self._commit_all_files_radio = gtk.RadioButton(
 
392
        self._commit_all_files_radio = Gtk.RadioButton.new_with_label(
397
393
            None, _i18n("Commit all changes"))
398
 
        self._files_box.pack_start(self._commit_all_files_radio, expand=False)
 
394
        self._files_box.pack_start(self._commit_all_files_radio, False, True, 0)
399
395
        self._commit_all_files_radio.show()
400
396
        self._commit_all_files_radio.connect('toggled',
401
397
            self._toggle_commit_selection)
402
 
        self._commit_selected_radio = gtk.RadioButton(
 
398
        self._commit_selected_radio = Gtk.RadioButton.new_with_label_from_widget(
403
399
            self._commit_all_files_radio, _i18n("Only commit selected changes"))
404
 
        self._files_box.pack_start(self._commit_selected_radio, expand=False)
 
400
        self._files_box.pack_start(self._commit_selected_radio, False, True, 0)
405
401
        self._commit_selected_radio.show()
406
402
        self._commit_selected_radio.connect('toggled',
407
403
            self._toggle_commit_selection)
410
406
            self._commit_all_files_radio.set_sensitive(False)
411
407
            self._commit_selected_radio.set_sensitive(False)
412
408
 
413
 
        scroller = gtk.ScrolledWindow()
414
 
        scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
415
 
        self._treeview_files = gtk.TreeView()
 
409
        scroller = Gtk.ScrolledWindow()
 
410
        scroller.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
 
411
        self._treeview_files = Gtk.TreeView()
416
412
        self._treeview_files.show()
417
413
        scroller.add(self._treeview_files)
418
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
 
414
        scroller.set_shadow_type(Gtk.ShadowType.IN)
419
415
        scroller.show()
420
 
        self._files_box.pack_start(scroller,
421
 
                                   expand=True, fill=True)
 
416
        self._files_box.pack_start(scroller, True, True, 0)
422
417
        self._files_box.show()
423
 
        self._left_pane_box.pack_start(self._files_box)
 
418
        self._left_pane_box.pack_start(self._files_box, True, True, 0)
424
419
 
425
420
        # Keep note that all strings stored in a ListStore must be UTF-8
426
421
        # strings. GTK does not support directly setting and restoring Unicode
427
422
        # objects.
428
 
        liststore = gtk.ListStore(
429
 
            gobject.TYPE_STRING,  # [0] file_id
430
 
            gobject.TYPE_STRING,  # [1] real path
431
 
            gobject.TYPE_BOOLEAN, # [2] checkbox
432
 
            gobject.TYPE_STRING,  # [3] display path
433
 
            gobject.TYPE_STRING,  # [4] changes type
434
 
            gobject.TYPE_STRING,  # [5] commit message
 
423
        liststore = Gtk.ListStore(
 
424
            GObject.TYPE_STRING,  # [0] file_id
 
425
            GObject.TYPE_STRING,  # [1] real path
 
426
            GObject.TYPE_BOOLEAN, # [2] checkbox
 
427
            GObject.TYPE_STRING,  # [3] display path
 
428
            GObject.TYPE_STRING,  # [4] changes type
 
429
            GObject.TYPE_STRING,  # [5] commit message
435
430
            )
436
431
        self._files_store = liststore
437
432
        self._treeview_files.set_model(liststore)
438
 
        crt = gtk.CellRendererToggle()
 
433
        crt = Gtk.CellRendererToggle()
439
434
        crt.set_property('activatable', not bool(self._pending))
440
435
        crt.connect("toggled", self._toggle_commit, self._files_store)
441
436
        if self._pending:
442
437
            name = _i18n('Commit*')
443
438
        else:
444
439
            name = _i18n('Commit')
445
 
        commit_col = gtk.TreeViewColumn(name, crt, active=2)
 
440
        commit_col = Gtk.TreeViewColumn(name, crt, active=2)
446
441
        commit_col.set_visible(False)
447
442
        self._treeview_files.append_column(commit_col)
448
 
        self._treeview_files.append_column(gtk.TreeViewColumn(_i18n('Path'),
449
 
                                           gtk.CellRendererText(), text=3))
450
 
        self._treeview_files.append_column(gtk.TreeViewColumn(_i18n('Type'),
451
 
                                           gtk.CellRendererText(), text=4))
 
443
        self._treeview_files.append_column(Gtk.TreeViewColumn(_i18n('Path'),
 
444
                                           Gtk.CellRendererText(), text=3))
 
445
        self._treeview_files.append_column(Gtk.TreeViewColumn(_i18n('Type'),
 
446
                                           Gtk.CellRendererText(), text=4))
452
447
        self._treeview_files.connect('cursor-changed',
453
448
                                     self._on_treeview_files_cursor_changed)
454
449
 
469
464
                checked_col.set_visible(False)
470
465
            else:
471
466
                checked_col.set_visible(True)
472
 
            renderer = checked_col.get_cell_renderers()[0]
 
467
            renderer = checked_col.get_cells()[0]
473
468
            renderer.set_property('activatable', not all_files)
474
469
 
475
470
    def _construct_pending_list(self):
476
471
        # Pending information defaults to hidden, we put it all in 1 box, so
477
472
        # that we can show/hide all of them at once
478
 
        self._pending_box = gtk.VBox()
 
473
        self._pending_box = Gtk.VBox()
479
474
        self._pending_box.hide()
480
475
 
481
 
        pending_message = gtk.Label()
 
476
        pending_message = Gtk.Label()
482
477
        pending_message.set_markup(
483
478
            _i18n('<i>* Cannot select specific files when merging</i>'))
484
 
        self._pending_box.pack_start(pending_message, expand=False, padding=5)
 
479
        self._pending_box.pack_start(pending_message, False, True, 5)
485
480
        pending_message.show()
486
481
 
487
 
        pending_label = gtk.Label(_i18n('Pending Revisions'))
488
 
        self._pending_box.pack_start(pending_label, expand=False, padding=0)
 
482
        pending_label = Gtk.Label(label=_i18n('Pending Revisions'))
 
483
        self._pending_box.pack_start(pending_label, False, True, 0)
489
484
        pending_label.show()
490
485
 
491
 
        scroller = gtk.ScrolledWindow()
492
 
        scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
493
 
        self._treeview_pending = gtk.TreeView()
 
486
        scroller = Gtk.ScrolledWindow()
 
487
        scroller.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
 
488
        self._treeview_pending = Gtk.TreeView()
494
489
        scroller.add(self._treeview_pending)
495
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
 
490
        scroller.set_shadow_type(Gtk.ShadowType.IN)
496
491
        scroller.show()
497
 
        self._pending_box.pack_start(scroller,
498
 
                                     expand=True, fill=True, padding=5)
 
492
        self._pending_box.pack_start(scroller, True, True, 5)
499
493
        self._treeview_pending.show()
500
 
        self._left_pane_box.pack_start(self._pending_box)
 
494
        self._left_pane_box.pack_start(self._pending_box, True, True, 0)
501
495
 
502
 
        liststore = gtk.ListStore(gobject.TYPE_STRING, # revision_id
503
 
                                  gobject.TYPE_STRING, # date
504
 
                                  gobject.TYPE_STRING, # committer
505
 
                                  gobject.TYPE_STRING, # summary
 
496
        liststore = Gtk.ListStore(GObject.TYPE_STRING, # revision_id
 
497
                                  GObject.TYPE_STRING, # date
 
498
                                  GObject.TYPE_STRING, # committer
 
499
                                  GObject.TYPE_STRING, # summary
506
500
                                 )
507
501
        self._pending_store = liststore
508
502
        self._treeview_pending.set_model(liststore)
509
 
        self._treeview_pending.append_column(gtk.TreeViewColumn(_i18n('Date'),
510
 
                                             gtk.CellRendererText(), text=1))
511
 
        self._treeview_pending.append_column(gtk.TreeViewColumn(_i18n('Committer'),
512
 
                                             gtk.CellRendererText(), text=2))
513
 
        self._treeview_pending.append_column(gtk.TreeViewColumn(_i18n('Summary'),
514
 
                                             gtk.CellRendererText(), text=3))
 
503
        self._treeview_pending.append_column(Gtk.TreeViewColumn(_i18n('Date'),
 
504
                                             Gtk.CellRendererText(), text=1))
 
505
        self._treeview_pending.append_column(Gtk.TreeViewColumn(_i18n('Committer'),
 
506
                                             Gtk.CellRendererText(), text=2))
 
507
        self._treeview_pending.append_column(Gtk.TreeViewColumn(_i18n('Summary'),
 
508
                                             Gtk.CellRendererText(), text=3))
515
509
 
516
510
    def _construct_diff_view(self):
517
 
        from diff import DiffView
 
511
        from bzrlib.plugins.gtk.diff import DiffView
518
512
 
519
513
        # TODO: jam 2007-10-30 The diff label is currently disabled. If we
520
514
        #       decide that we really don't ever want to display it, we should
521
515
        #       actually remove it, and other references to it, along with the
522
516
        #       tests that it is set properly.
523
 
        self._diff_label = gtk.Label(_i18n('Diff for whole tree'))
 
517
        self._diff_label = Gtk.Label(label=_i18n('Diff for whole tree'))
524
518
        self._diff_label.set_alignment(0, 0)
525
519
        self._right_pane_table.set_row_spacing(self._right_pane_table_row, 0)
526
520
        self._add_to_right_table(self._diff_label, 1, False)
531
525
        self._diff_view.show()
532
526
 
533
527
    def _construct_file_message(self):
534
 
        scroller = gtk.ScrolledWindow()
535
 
        scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
 
528
        scroller = Gtk.ScrolledWindow()
 
529
        scroller.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
536
530
 
537
 
        self._file_message_text_view = gtk.TextView()
 
531
        self._file_message_text_view = Gtk.TextView()
538
532
        scroller.add(self._file_message_text_view)
539
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
 
533
        scroller.set_shadow_type(Gtk.ShadowType.IN)
540
534
        scroller.show()
541
535
 
542
 
        self._file_message_text_view.modify_font(pango.FontDescription("Monospace"))
543
 
        self._file_message_text_view.set_wrap_mode(gtk.WRAP_WORD)
 
536
        self._file_message_text_view.modify_font(Pango.FontDescription("Monospace"))
 
537
        self._file_message_text_view.set_wrap_mode(Gtk.WrapMode.WORD)
544
538
        self._file_message_text_view.set_accepts_tab(False)
545
539
        self._file_message_text_view.show()
546
540
 
547
 
        self._file_message_expander = gtk.Expander(_i18n('File commit message'))
 
541
        self._file_message_expander = Gtk.Expander(
 
542
            label=_i18n('File commit message'))
548
543
        self._file_message_expander.set_expanded(True)
549
544
        self._file_message_expander.add(scroller)
550
545
        self._add_to_right_table(self._file_message_expander, 1, False)
551
546
        self._file_message_expander.show()
552
547
 
553
548
    def _construct_global_message(self):
554
 
        self._global_message_label = gtk.Label(_i18n('Global Commit Message'))
 
549
        self._global_message_label = Gtk.Label(label=_i18n('Global Commit Message'))
555
550
        self._global_message_label.set_markup(
556
551
            _i18n('<b>Global Commit Message</b>'))
557
552
        self._global_message_label.set_alignment(0, 0)
560
555
        # Can we remove the spacing between the label and the box?
561
556
        self._global_message_label.show()
562
557
 
563
 
        scroller = gtk.ScrolledWindow()
564
 
        scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
 
558
        scroller = Gtk.ScrolledWindow()
 
559
        scroller.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
565
560
 
566
 
        self._global_message_text_view = gtk.TextView()
 
561
        self._global_message_text_view = Gtk.TextView()
567
562
        self._set_global_commit_message(self._saved_commit_messages_manager.get()[0])
568
 
        self._global_message_text_view.modify_font(pango.FontDescription("Monospace"))
 
563
        self._global_message_text_view.modify_font(Pango.FontDescription("Monospace"))
569
564
        scroller.add(self._global_message_text_view)
570
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
 
565
        scroller.set_shadow_type(Gtk.ShadowType.IN)
571
566
        scroller.show()
572
567
        self._add_to_right_table(scroller, 2, True)
573
 
        self._file_message_text_view.set_wrap_mode(gtk.WRAP_WORD)
 
568
        self._file_message_text_view.set_wrap_mode(Gtk.WrapMode.WORD)
574
569
        self._file_message_text_view.set_accepts_tab(False)
575
570
        self._global_message_text_view.show()
576
571
 
601
596
            # We have either made it to the end of the list, or nothing was
602
597
            # selected. Either way, select All Files, and jump to the global
603
598
            # commit message.
604
 
            self._treeview_files.set_cursor((0,))
 
599
            self._treeview_files.set_cursor(
 
600
                Gtk.TreePath(path=0), None, False)
605
601
            self._global_message_text_view.grab_focus()
606
602
        else:
607
603
            # Set the cursor to this entry, and jump to the per-file commit
608
604
            # message
609
 
            self._treeview_files.set_cursor(model.get_path(next))
 
605
            self._treeview_files.set_cursor(model.get_path(next), None, False)
610
606
            self._file_message_text_view.grab_focus()
611
607
 
612
608
    def _save_current_file_message(self):
614
610
            return # Nothing to save
615
611
        text_buffer = self._file_message_text_view.get_buffer()
616
612
        cur_text = text_buffer.get_text(text_buffer.get_start_iter(),
617
 
                                        text_buffer.get_end_iter())
 
613
                                        text_buffer.get_end_iter(), True)
618
614
        last_selected = self._files_store.get_iter(self._last_selected_file)
619
615
        self._files_store.set_value(last_selected, 5, cur_text)
620
616
 
691
687
                _i18n('Commit cancelled'),
692
688
                _i18n('Do you want to save your commit messages ?'),
693
689
                parent=self)
694
 
            if response == gtk.RESPONSE_NO:
 
690
            if response == Gtk.ResponseType.NO:
695
691
                 # save nothing and destroy old comments if any
696
692
                mgr = SavedCommitMessagesManager()
697
693
        mgr.save(self._wt, self._wt.branch)
698
 
        self.response(gtk.RESPONSE_CANCEL) # close window
 
694
        self.response(Gtk.ResponseType.CANCEL) # close window
699
695
 
700
696
    @show_bzr_error
701
697
    def _on_commit_clicked(self, button):
710
706
                _i18n('Commit with an empty message?'),
711
707
                _i18n('You can describe your commit intent in the message.'),
712
708
                parent=self)
713
 
            if response == gtk.RESPONSE_NO:
 
709
            if response == Gtk.ResponseType.NO:
714
710
                # Kindly give focus to message area
715
711
                self._global_message_text_view.grab_focus()
716
712
                return
732
728
                _i18n("Unknown files exist in the working tree. Commit anyway?"),
733
729
                parent=self)
734
730
                # Doesn't set a parent for the dialog..
735
 
            if response == gtk.RESPONSE_NO:
 
731
            if response == Gtk.ResponseType.NO:
736
732
                return
737
733
            break
738
734
 
753
749
                _i18n('There are no changes in the working tree.'
754
750
                      ' Do you want to commit anyway?'),
755
751
                parent=self)
756
 
            if response == gtk.RESPONSE_YES:
 
752
            if response == Gtk.ResponseType.YES:
757
753
                rev_id = self._wt.commit(message,
758
754
                               allow_pointless=True,
759
755
                               strict=False,
763
759
        self.committed_revision_id = rev_id
764
760
        # destroy old comments if any
765
761
        SavedCommitMessagesManager().save(self._wt, self._wt.branch)
766
 
        self.response(gtk.RESPONSE_OK)
 
762
        self.response(Gtk.ResponseType.OK)
767
763
 
768
764
    def _get_global_commit_message(self):
769
765
        buf = self._global_message_text_view.get_buffer()
770
766
        start, end = buf.get_bounds()
771
 
        text = buf.get_text(start, end)
 
767
        text = buf.get_text(start, end, True)
772
768
        return _sanitize_and_decode_message(text)
773
769
 
774
770
    def _set_global_commit_message(self, message):
812
808
            self.global_message = u''
813
809
            self.file_messages = {}
814
810
        else:
815
 
            config = branch.get_config()._get_branch_data_config()
 
811
            config = branch.get_config()
816
812
            self.global_message = config.get_user_option(
817
813
                'gtk_global_commit_message')
818
814
            if self.global_message is None: