* (trunk-1594) Add and improve the mnemonics in the group menu
* Also fix the group radio buttons after the mnemonics additions broke them (GTK3 is such a pain - there may be a better solution, I just couldn't find it)
This commit is contained in:
parent
795ab2aeec
commit
275086501b
|
@ -450,24 +450,29 @@ class Terminal(Gtk.VBox):
|
||||||
"""Fill out a group menu"""
|
"""Fill out a group menu"""
|
||||||
menu = Gtk.Menu()
|
menu = Gtk.Menu()
|
||||||
self.group_menu = menu
|
self.group_menu = menu
|
||||||
groupitem = None
|
groupitems = []
|
||||||
|
|
||||||
item = Gtk.MenuItem(_('New group...'))
|
item = Gtk.MenuItem.new_with_mnemonic(_('N_ew group...'))
|
||||||
item.connect('activate', self.create_group)
|
item.connect('activate', self.create_group)
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
if len(self.terminator.groups) > 0:
|
if len(self.terminator.groups) > 0:
|
||||||
groupitem = Gtk.RadioMenuItem(_('None'), groupitem)
|
cnxs = []
|
||||||
groupitem.set_active(self.group == None)
|
item = Gtk.RadioMenuItem.new_with_mnemonic(groupitems, _('_None'))
|
||||||
groupitem.connect('activate', self.set_group, None)
|
groupitems = item.get_group()
|
||||||
menu.append(groupitem)
|
item.set_active(self.group == None)
|
||||||
|
cnxs.append([item, 'toggled', self.set_group, None])
|
||||||
|
menu.append(item)
|
||||||
|
|
||||||
for group in self.terminator.groups:
|
for group in self.terminator.groups:
|
||||||
item = Gtk.RadioMenuItem(group, groupitem, False) # VERIFY FOR GTK3 what is the last arg?
|
item = Gtk.RadioMenuItem.new_with_label(groupitems, group)
|
||||||
|
groupitems = item.get_group()
|
||||||
item.set_active(self.group == group)
|
item.set_active(self.group == group)
|
||||||
item.connect('toggled', self.set_group, group)
|
cnxs.append([item, 'toggled', self.set_group, group])
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
groupitem = item
|
|
||||||
|
for cnx in cnxs:
|
||||||
|
cnx[0].connect(cnx[1], cnx[2], cnx[3])
|
||||||
|
|
||||||
if self.group != None or len(self.terminator.groups) > 0:
|
if self.group != None or len(self.terminator.groups) > 0:
|
||||||
menu.append(Gtk.MenuItem())
|
menu.append(Gtk.MenuItem())
|
||||||
|
@ -483,7 +488,7 @@ class Terminal(Gtk.VBox):
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
if len(self.terminator.groups) > 0:
|
if len(self.terminator.groups) > 0:
|
||||||
item = Gtk.MenuItem.new_with_mnemonic(_('Ungr_oup all in tab'))
|
item = Gtk.MenuItem.new_with_mnemonic(_('Ungro_up all in tab'))
|
||||||
item.connect('activate', lambda x: self.emit('ungroup_tab'))
|
item.connect('activate', lambda x: self.emit('ungroup_tab'))
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
|
@ -502,40 +507,44 @@ class Terminal(Gtk.VBox):
|
||||||
|
|
||||||
menu.append(Gtk.MenuItem())
|
menu.append(Gtk.MenuItem())
|
||||||
|
|
||||||
groupitem = None
|
groupitems = []
|
||||||
|
cnxs = []
|
||||||
|
|
||||||
for key, value in {_('Broadcast all'):'all',
|
for key, value in {_('Broadcast _all'):'all',
|
||||||
_('Broadcast group'):'group',
|
_('Broadcast _group'):'group',
|
||||||
_('Broadcast off'):'off'}.items():
|
_('Broadcast _off'):'off'}.items():
|
||||||
groupitem = Gtk.RadioMenuItem(key, groupitem)
|
item = Gtk.RadioMenuItem.new_with_mnemonic(groupitems, key)
|
||||||
|
groupitems = item.get_group()
|
||||||
dbg('Terminal::populate_group_menu: %s active: %s' %
|
dbg('Terminal::populate_group_menu: %s active: %s' %
|
||||||
(key, self.terminator.groupsend ==
|
(key, self.terminator.groupsend ==
|
||||||
self.terminator.groupsend_type[value]))
|
self.terminator.groupsend_type[value]))
|
||||||
groupitem.set_active(self.terminator.groupsend ==
|
item.set_active(self.terminator.groupsend ==
|
||||||
self.terminator.groupsend_type[value])
|
self.terminator.groupsend_type[value])
|
||||||
groupitem.connect('activate', self.set_groupsend,
|
cnxs.append([item, 'activate', self.set_groupsend, self.terminator.groupsend_type[value]])
|
||||||
self.terminator.groupsend_type[value])
|
menu.append(item)
|
||||||
menu.append(groupitem)
|
|
||||||
|
for cnx in cnxs:
|
||||||
|
cnx[0].connect(cnx[1], cnx[2], cnx[3])
|
||||||
|
|
||||||
menu.append(Gtk.MenuItem())
|
menu.append(Gtk.MenuItem())
|
||||||
|
|
||||||
item = Gtk.CheckMenuItem(_('Split to this group'))
|
item = Gtk.CheckMenuItem.new_with_mnemonic(_('_Split to this group'))
|
||||||
item.set_active(self.config['split_to_group'])
|
item.set_active(self.config['split_to_group'])
|
||||||
item.connect('toggled', lambda x: self.do_splittogroup_toggle())
|
item.connect('toggled', lambda x: self.do_splittogroup_toggle())
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
item = Gtk.CheckMenuItem(_('Autoclean groups'))
|
item = Gtk.CheckMenuItem.new_with_mnemonic(_('Auto_clean groups'))
|
||||||
item.set_active(self.config['autoclean_groups'])
|
item.set_active(self.config['autoclean_groups'])
|
||||||
item.connect('toggled', lambda x: self.do_autocleangroups_toggle())
|
item.connect('toggled', lambda x: self.do_autocleangroups_toggle())
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
menu.append(Gtk.MenuItem())
|
menu.append(Gtk.MenuItem())
|
||||||
|
|
||||||
item = Gtk.MenuItem(_('Insert terminal number'))
|
item = Gtk.MenuItem.new_with_mnemonic(_('_Insert terminal number'))
|
||||||
item.connect('activate', lambda x: self.emit('enumerate', False))
|
item.connect('activate', lambda x: self.emit('enumerate', False))
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
item = Gtk.MenuItem(_('Insert padded terminal number'))
|
item = Gtk.MenuItem.new_with_mnemonic(_('Insert _padded terminal number'))
|
||||||
item.connect('activate', lambda x: self.emit('enumerate', True))
|
item.connect('activate', lambda x: self.emit('enumerate', True))
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue