Adds subtrees to custom commands menu - just add '/' to split.
This commit is contained in:
parent
8f67c229b1
commit
321c4a7ba9
|
@ -58,6 +58,7 @@ class CustomCommandsMenu(plugin.MenuItem):
|
||||||
|
|
||||||
def callback(self, menuitems, menu, terminal):
|
def callback(self, menuitems, menu, terminal):
|
||||||
"""Add our menu items to the menu"""
|
"""Add our menu items to the menu"""
|
||||||
|
submenus = {}
|
||||||
item = Gtk.MenuItem.new_with_mnemonic(_('_Custom Commands'))
|
item = Gtk.MenuItem.new_with_mnemonic(_('_Custom Commands'))
|
||||||
menuitems.append(item)
|
menuitems.append(item)
|
||||||
|
|
||||||
|
@ -77,16 +78,30 @@ class CustomCommandsMenu(plugin.MenuItem):
|
||||||
continue
|
continue
|
||||||
exe = command['command'].split(' ')[0]
|
exe = command['command'].split(' ')[0]
|
||||||
iconinfo = theme.choose_icon([exe], Gtk.IconSize.MENU, Gtk.IconLookupFlags.USE_BUILTIN)
|
iconinfo = theme.choose_icon([exe], Gtk.IconSize.MENU, Gtk.IconLookupFlags.USE_BUILTIN)
|
||||||
|
leaf_name = command['name'].split('/')[-1]
|
||||||
|
branch_names = command['name'].split('/')[:-1]
|
||||||
|
target_submenu = submenu
|
||||||
|
parent_submenu = submenu
|
||||||
|
for idx in range(len(branch_names)):
|
||||||
|
lookup_name = '/'.join(branch_names[0:idx+1])
|
||||||
|
target_submenu = submenus.get(lookup_name, None)
|
||||||
|
if not target_submenu:
|
||||||
|
item = Gtk.MenuItem(_(branch_names[idx]))
|
||||||
|
parent_submenu.append(item)
|
||||||
|
target_submenu = Gtk.Menu()
|
||||||
|
item.set_submenu(target_submenu)
|
||||||
|
submenus[lookup_name] = target_submenu
|
||||||
|
parent_submenu = target_submenu
|
||||||
if iconinfo:
|
if iconinfo:
|
||||||
image = Gtk.Image()
|
image = Gtk.Image()
|
||||||
image.set_from_icon_name(exe, Gtk.IconSize.MENU)
|
image.set_from_icon_name(exe, Gtk.IconSize.MENU)
|
||||||
menuitem = Gtk.ImageMenuItem(command['name'])
|
menuitem = Gtk.ImageMenuItem(leaf_name)
|
||||||
menuitem.set_image(image)
|
menuitem.set_image(image)
|
||||||
else:
|
else:
|
||||||
menuitem = Gtk.MenuItem(command["name"])
|
menuitem = Gtk.MenuItem(leaf_name)
|
||||||
terminals = terminal.terminator.get_target_terms(terminal)
|
terminals = terminal.terminator.get_target_terms(terminal)
|
||||||
menuitem.connect("activate", self._execute, {'terminals' : terminals, 'command' : command['command'] })
|
menuitem.connect("activate", self._execute, {'terminals' : terminals, 'command' : command['command'] })
|
||||||
submenu.append(menuitem)
|
target_submenu.append(menuitem)
|
||||||
|
|
||||||
def _save_config(self):
|
def _save_config(self):
|
||||||
config = Config()
|
config = Config()
|
||||||
|
|
Loading…
Reference in New Issue