/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: John Arbash Meinel
  • Date: 2007-10-03 23:25:15 UTC
  • mto: (322.1.1 trunk) (330.3.3 trunk)
  • mto: This revision was merged to the branch mainline in revision 368.
  • Revision ID: john@arbash-meinel.com-20071003232515-ziol79tmbtkbak3e
Add the Ctrl+n accelerator to jump through the commit messages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
191
191
 
192
192
        self._treeview_files.set_model(store)
193
193
        self._last_selected_file = None
 
194
        # This sets the cursor, which causes the expander to close, which
 
195
        # causes the _file_message_text_view to never get realized. So we have
 
196
        # to give it a little kick, or it warns when we try to grab the focus
194
197
        self._treeview_files.set_cursor(0)
195
198
 
 
199
        def _realize_file_message_tree_view(*args):
 
200
            self._file_message_text_view.realize()
 
201
        self.connect_after('realize', _realize_file_message_tree_view)
 
202
 
196
203
    def _fill_in_diff(self):
197
204
        self._diff_view.set_trees(self._wt, self._basis_tree)
198
205
 
232
239
        self._hpane.show()
233
240
        self.set_focus(self._global_message_text_view)
234
241
 
 
242
        self._construct_accelerators()
 
243
        self._set_sizes()
 
244
 
 
245
    def _set_sizes(self):
235
246
        # This seems like a reasonable default, we might like it to
236
247
        # be a bit wider, so that by default we can fit an 80-line diff in the
237
248
        # diff window.
248
259
        self.set_default_size(width, height)
249
260
        self._hpane.set_position(300)
250
261
 
 
262
    def _construct_accelerators(self):
 
263
        group = gtk.AccelGroup()
 
264
        group.connect_group(gtk.gdk.keyval_from_name('N'),
 
265
                            gtk.gdk.CONTROL_MASK, 0, self._on_accel_next)
 
266
        self.add_accel_group(group)
 
267
 
251
268
    def _construct_left_pane(self):
252
269
        self._left_pane_box = gtk.VBox(homogeneous=False, spacing=5)
253
270
        self._construct_file_list()
315
332
        self._treeview_files = gtk.TreeView()
316
333
        self._treeview_files.show()
317
334
        scroller.add(self._treeview_files)
 
335
        scroller.set_shadow_type(gtk.SHADOW_IN)
318
336
        scroller.show()
319
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
320
337
        self._files_box.pack_start(scroller,
321
338
                                   expand=True, fill=True)
322
339
        self._files_box.show()
379
396
        scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
380
397
        self._treeview_pending = gtk.TreeView()
381
398
        scroller.add(self._treeview_pending)
 
399
        scroller.set_shadow_type(gtk.SHADOW_IN)
382
400
        scroller.show()
383
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
384
401
        self._pending_box.pack_start(scroller,
385
402
                                     expand=True, fill=True, padding=5)
386
403
        self._treeview_pending.show()
414
431
        self._diff_view.show()
415
432
 
416
433
    def _construct_file_message(self):
417
 
        file_message_box = gtk.VBox()
418
434
        scroller = gtk.ScrolledWindow()
419
435
        scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
420
436
 
421
437
        self._file_message_text_view = gtk.TextView()
422
438
        scroller.add(self._file_message_text_view)
 
439
        scroller.set_shadow_type(gtk.SHADOW_IN)
423
440
        scroller.show()
424
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
425
 
        file_message_box.pack_start(scroller, expand=True, fill=True)
426
441
 
427
442
        self._file_message_text_view.modify_font(pango.FontDescription("Monospace"))
428
443
        self._file_message_text_view.set_wrap_mode(gtk.WRAP_WORD)
430
445
        self._file_message_text_view.show()
431
446
 
432
447
        self._file_message_expander = gtk.Expander(_('File commit message'))
433
 
        self._file_message_expander.add(file_message_box)
434
 
        file_message_box.show()
 
448
        self._file_message_expander.set_expanded(True)
 
449
        self._file_message_expander.add(scroller)
435
450
        self._add_to_right_table(self._file_message_expander, 1, False)
436
451
        self._file_message_expander.show()
437
452
 
449
464
        self._global_message_text_view = gtk.TextView()
450
465
        self._global_message_text_view.modify_font(pango.FontDescription("Monospace"))
451
466
        scroller.add(self._global_message_text_view)
 
467
        scroller.set_shadow_type(gtk.SHADOW_IN)
452
468
        scroller.show()
453
 
        scroller.set_shadow_type(gtk.SHADOW_IN)
454
469
        self._add_to_right_table(scroller, 2, True)
455
470
        self._file_message_text_view.set_wrap_mode(gtk.WRAP_WORD)
456
471
        self._file_message_text_view.set_accepts_tab(False)
469
484
                self._diff_view.show_diff([path.decode('UTF-8')])
470
485
            self._update_per_file_info(selection)
471
486
 
 
487
    def _on_accel_next(self, accel_group, window, keyval, modifier):
 
488
        # We don't really care about any of the parameters, because we know
 
489
        # where this message came from
 
490
        tree_selection = self._treeview_files.get_selection()
 
491
        (model, selection) = tree_selection.get_selected()
 
492
        if selection is None:
 
493
            next = None
 
494
        else:
 
495
            next = model.iter_next(selection)
 
496
 
 
497
        if next is None:
 
498
            # We have either made it to the end of the list, or nothing was
 
499
            # selected. Either way, select All Files, and jump to the global
 
500
            # commit message.
 
501
            self._treeview_files.set_cursor((0,))
 
502
            self._global_message_text_view.grab_focus()
 
503
        else:
 
504
            # Set the cursor to this entry, and jump to the per-file commit
 
505
            # message
 
506
            self._treeview_files.set_cursor(model.get_path(next))
 
507
            self._file_message_text_view.grab_focus()
 
508
 
472
509
    def _save_current_file_message(self):
473
510
        if self._last_selected_file is None:
474
511
            return # Nothing to save