Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.0, 1.0.1, and 1.0.2

history: add context submenus

add sub menus to context menu
to shorten overall menu length

Changeset 89f683ba4ea9

Parent 2525801b8b8d

by Emmanuel Rosa

Changes to one file · Browse files at 89f683ba4ea9 Showing diff from parent 2525801b8b8d Diff from another changeset...

 
27
28
29
30
 
31
32
 
 
33
34
35
 
 
 
 
 
36
37
38
 
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
 
 
 
 
729
730
731
 
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
 
 
776
777
778
779
780
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
781
782
783
 
27
28
29
 
30
31
 
32
33
34
35
36
37
38
39
40
41
42
43
44
 
719
720
721
 
 
 
 
 
 
 
 
 
 
 
 
 
722
723
724
725
726
727
728
 
749
750
751
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
@@ -27,12 +27,18 @@
 from tortoisehg.hgtk import archive, changeset, thgconfig, thgmq, histdetails  from tortoisehg.hgtk import statusbar, bookmark   -def create_menu(label, callback): +def create_menu(label, callback=None):   menuitem = gtk.MenuItem(label, True) - menuitem.connect('activate', callback) + if callback: + menuitem.connect('activate', callback)   menuitem.set_border_width(1)   return menuitem   +def create_submenu(label, menu): + m = create_menu(label) + m.set_submenu(menu) + return m +  class GLog(gdialog.GDialog):   'GTK+ based dialog for displaying repository logs'   def init(self): @@ -713,19 +719,10 @@
  m.append(create_menu(_('_Update...'), self.checkout))   cmenu_merge = create_menu(_('_Merge with...'), self.domerge)   m.append(cmenu_merge) - m.append_sep() - m.append(create_menu(_('_Export Patch...'), self.export_patch)) - m.append(create_menu(_('E_mail Patch...'), self.email_patch)) - m.append(create_menu(_('_Bundle rev:tip...'), self.bundle_rev_to_tip)) - m.append_sep() - m.append(create_menu(_('Add/Remove _Tag...'), self.add_tag)) - if 'bookmarks' in self.exs: - m.append(create_menu(_('Add/Remove B_ookmark...'), - self.add_bookmark)) - m.append(create_menu(_('Rename Bookmark...'), - self.rename_bookmark)) - m.append_sep() - + m.append(create_submenu(_('Patches & Bundles...'), + self.patches_context_menu())) + m.append(create_submenu(_('Tags & Bookmarks...'), + self.tags_context_menu()))   cmenu_backout = create_menu(_('Backout Revision...'), self.backout_rev)   m.append(cmenu_backout)   m.append(create_menu(_('_Revert'), self.revert)) @@ -752,32 +749,55 @@
    # need mq extension for strip command   if 'mq' in self.exs: - cmenu_qimport = create_menu(_('qimport'), self.qimport_rev) - cmenu_strip = create_menu(_('Strip Revision...'), self.strip_rev) - - try: - ctx = self.repo[self.currevid] - qbase = self.repo['qbase'] - actx = ctx.ancestor(qbase) - if self.repo['qparent'] == ctx: - cmenu_qimport.set_sensitive(True) - cmenu_strip.set_sensitive(False) - elif actx == qbase or actx == ctx: - # we're in the mq revision range or the mq - # is a descendant of us - cmenu_qimport.set_sensitive(False) - cmenu_strip.set_sensitive(False) - except: - pass - - m.append_sep() - m.append(cmenu_qimport) - m.append(cmenu_strip) + m.append(create_submenu(_('Mercurial Queues...'), + self.mq_context_menu()))     menu = m.create_menu()   menu.show_all()   return menu   + def patches_context_menu(self): + m = gtklib.MenuItems() + m.append(create_menu(_('_Export Patch...'), self.export_patch)) + m.append(create_menu(_('E_mail Patch...'), self.email_patch)) + m.append(create_menu(_('_Bundle rev:tip...'), self.bundle_rev_to_tip)) + return m.create_menu() + + def tags_context_menu(self): + m = gtklib.MenuItems() + m.append(create_menu(_('Add/Remove _Tag...'), self.add_tag)) + if 'bookmarks' in self.exs: + m.append(create_menu(_('Add/Remove B_ookmark...'), + self.add_bookmark)) + m.append(create_menu(_('Rename Bookmark...'), + self.rename_bookmark)) + return m.create_menu() + + def mq_context_menu(self): + m = gtklib.MenuItems() + cmenu_qimport = create_menu(_('qimport'), self.qimport_rev) + cmenu_strip = create_menu(_('Strip Revision...'), self.strip_rev) + + try: + ctx = self.repo[self.currevid] + qbase = self.repo['qbase'] + actx = ctx.ancestor(qbase) + if self.repo['qparent'] == ctx: + cmenu_qimport.set_sensitive(True) + cmenu_strip.set_sensitive(False) + elif actx == qbase or actx == ctx: + # we're in the mq revision range or the mq + # is a descendant of us + cmenu_qimport.set_sensitive(False) + cmenu_strip.set_sensitive(False) + except: + pass + + m.append_sep() + m.append(cmenu_qimport) + m.append(cmenu_strip) + return m.create_menu() +   def restore_single_sel(self, widget, *args):   self.tree.get_selection().set_mode(gtk.SELECTION_SINGLE)   if self.origsel: