* Configurable menu launchers in the xml configuration file
git-svn-id: svn+ssh://svn.marcochapeau.org/laditools/trunk@96 bfe161da-02ef-4cea-8c43-ae261ea21ac6
This commit is contained in:
parent
cdec0e58ca
commit
ca3a49f0a8
10
jacklog
10
jacklog
|
@ -52,11 +52,11 @@ def read_last(lfile, lines):
|
|||
lfile.seek(endpos, 0)
|
||||
return "\n".join(backlog)
|
||||
|
||||
class jackctl_logview(gtk.glade.XML):
|
||||
class jacklog(gtk.glade.XML):
|
||||
def __init__(self):
|
||||
# Handle the configuration
|
||||
self.logview_config = pyjackctl.config()
|
||||
self.param_dict = self.logview_config.get('jacklog')
|
||||
self.jacklog_config = pyjackctl.config()
|
||||
self.param_dict = self.jacklog_config.get('jacklog')
|
||||
if 'jackdbus_log' not in self.param_dict:
|
||||
self.param_dict['jackdbus_log'] = jackdbus_log_default, {}
|
||||
if 'max_lines' not in self.param_dict:
|
||||
|
@ -120,7 +120,7 @@ class jackctl_logview(gtk.glade.XML):
|
|||
|
||||
def run(self):
|
||||
gtk.main()
|
||||
self.logview_config.set('jacklog', self.param_dict)
|
||||
self.jacklog_config.set('jacklog', self.param_dict)
|
||||
return 0
|
||||
|
||||
jackctl_logview().run()
|
||||
jacklog().run()
|
|
@ -56,8 +56,8 @@ class config:
|
|||
for grandchild_node in child.childNodes:
|
||||
if grandchild_node.nodeType == child.TEXT_NODE:
|
||||
text = grandchild_node.data
|
||||
if grandchild_node.nodeType == child.ATTRIBUTE_NODE:
|
||||
attrib_dict[grandchild_node.name] = grandchild_node.nodeValue
|
||||
for i in range(child.attributes.length):
|
||||
attrib_dict[child.attributes.item(i).name] = child.attributes.item(i).nodeValue
|
||||
param_dict[child.tagName] = text, attrib_dict
|
||||
return param_dict
|
||||
else:
|
||||
|
|
|
@ -19,28 +19,40 @@ pygtk.require('2.0')
|
|||
import gtk
|
||||
import gobject
|
||||
import subprocess
|
||||
from config import config
|
||||
|
||||
# TODO : somehow, we need stock icons. Nothing else can be used for ImageMenuItems
|
||||
|
||||
config_app = "/usr/bin/jackconf"
|
||||
connect_app = "/usr/bin/patchage"
|
||||
log_app = "/usr/bin/jacklog"
|
||||
# Default configuration
|
||||
config_app_default = "/usr/bin/jackconf"
|
||||
connect_app_default = "/usr/bin/patchage"
|
||||
log_app_default = "/usr/bin/jacklog"
|
||||
|
||||
class jack_menu:
|
||||
def __init__(self):
|
||||
self.menu_items = []
|
||||
# Handle the configuration and grab custom menu items
|
||||
self.jack_menu_config = config()
|
||||
self.menu_dict = self.jack_menu_config.get('jack_menu')
|
||||
if self.menu_dict == {}:
|
||||
self.menu_dict['menuitem0'] = config_app_default, {'name' : 'Configure'}
|
||||
self.menu_dict['menuitem1'] = connect_app_default, {'name' : 'Connect'}
|
||||
self.menu_dict['menuitem2'] = log_app_default, {'name' : 'Logs'}
|
||||
self.jack_menu_config.set('jack_menu', self.menu_dict)
|
||||
for menu_entry in self.menu_dict.values():
|
||||
path, attrib_dict = menu_entry
|
||||
self.menu_items.append((gtk.ImageMenuItem(attrib_dict['name']), self.on_menu_launcher, path))
|
||||
#Create the rest of the menu
|
||||
self.menu = gtk.Menu()
|
||||
self.menu_items = [(gtk.ImageMenuItem("Configure"), self.on_menu_launcher, config_app),
|
||||
(gtk.ImageMenuItem("Connect"), self.on_menu_launcher, connect_app),
|
||||
(gtk.ImageMenuItem("Logs"), self.on_menu_launcher, log_app),
|
||||
(gtk.SeparatorMenuItem(), self.on_menu_start, None),
|
||||
(gtk.ImageMenuItem("Reset Xruns"), self.on_menu_reset_xruns, None),
|
||||
(gtk.ImageMenuItem("Start JACK"), self.on_menu_start, None),
|
||||
(gtk.ImageMenuItem("Stop JACK"), self.on_menu_stop, None),
|
||||
(gtk.SeparatorMenuItem(), self.on_menu_start, None),
|
||||
(gtk.ImageMenuItem("Reactivate JACK"), self.on_menu_reactivate, None),
|
||||
(gtk.ImageMenuItem("Quit"), self.on_menu_destroy, None)]
|
||||
for tuples in self.menu_items:
|
||||
item, callback, exec_path = tuples
|
||||
self.menu_items.append((gtk.SeparatorMenuItem(), self.on_menu_start, None))
|
||||
self.menu_items.append((gtk.ImageMenuItem("Reset Xruns"), self.on_menu_reset_xruns, None))
|
||||
self.menu_items.append((gtk.ImageMenuItem("Start JACK"), self.on_menu_start, None))
|
||||
self.menu_items.append((gtk.ImageMenuItem("Stop JACK"), self.on_menu_stop, None))
|
||||
self.menu_items.append((gtk.SeparatorMenuItem(), self.on_menu_start, None))
|
||||
self.menu_items.append((gtk.ImageMenuItem("Reactivate JACK"), self.on_menu_reactivate, None))
|
||||
self.menu_items.append((gtk.ImageMenuItem("Quit"), self.on_menu_destroy, None))
|
||||
for menu_tuple in self.menu_items:
|
||||
item, callback, exec_path = menu_tuple
|
||||
self.menu.append(item)
|
||||
if type(item) is not gtk.SeparatorMenuItem:
|
||||
item.connect("activate", callback, exec_path)
|
||||
|
|
Loading…
Reference in New Issue