# HG changeset patch # User Drew Perttula # Date 2013-06-08 08:21:24 # Node ID cad8207933d73df9cb40f17b6d1cd7a70c202070 # Parent 4fe5612db2ed53e92b829212da7d3a9a7b41970a KC fix logging, startup after graph sync, display uri tails when there's no label Ignore-this: 55d0cac2cd05d07ac6e7691b25b6b117 diff --git a/bin/keyboardcomposer b/bin/keyboardcomposer --- a/bin/keyboardcomposer +++ b/bin/keyboardcomposer @@ -1,6 +1,7 @@ #!bin/python from __future__ import division, nested_scopes +from run_local import log import cgi, os, sys, time, subprocess, logging, random from optparse import OptionParser import webcolors, colorsys @@ -12,7 +13,6 @@ from Tix import * import Tix as tk import pickle -import run_local from light9.Fadable import Fadable from light9.Submaster import Submasters, sub_maxes from light9.subclient import SubClient @@ -142,7 +142,9 @@ class SubmasterBox(Frame): self.pauseTrace = False def updateName(self): - self.namelabel.config(text=self.sub.graph.label(self.sub.uri)) + def shortUri(u): + return '.../' + u.split('/')[-1] + self.namelabel.config(text=self.sub.graph.label(self.sub.uri) or shortUri(self.sub.uri)) def launch_subcomposer(self, *args): subprocess.Popen(["bin/subcomposer", "--no-geometry", self.name]) @@ -232,8 +234,8 @@ class KeyboardComposer(Frame, SubClient) self.graph.value(sub.uri, L9['order']), sub) for sub in self.submasters.get_all_subs()) - dispatcher.connect(self.onNewSub, "new submaster") - dispatcher.connect(self.onLostSub, "lost submaster") + #dispatcher.connect(self.onNewSub, "new submaster") + #dispatcher.connect(self.onLostSub, "lost submaster") log.info("withgroups %s", withgroups) for group, order, sub in withgroups: @@ -520,6 +522,18 @@ class Sliders(BCF2000): kc.change_row(kc.current_row + diff) self.valueOut(name, 0) +def launch(opts, root, graph, session): + tl = toplevelat("Keyboard Composer - %s" % opts.session, + existingtoplevel=root, graph=graph, session=session) + + kc = KeyboardComposer(tl, graph, session, + hw_sliders=not opts.no_sliders) + kc.pack(fill=BOTH, expand=1) + + for helpline in ["Bindings: B3 mute; C-l edit levels in subcomposer"]: + tk.Label(root,text=helpline, font="Helvetica -12 italic", + anchor='w').pack(side='top',fill='x') + if __name__ == "__main__": parser = OptionParser() parser.add_option('--no-sliders', action='store_true', @@ -528,8 +542,7 @@ if __name__ == "__main__": parser.add_option('-v', action='store_true', help="log info level") opts, args = parser.parse_args() - logging.basicConfig(level=logging.INFO if opts.v else logging.WARN) - log = logging.getLogger('keyboardcomposer') + log.setLevel(logging.INFO if opts.v else logging.WARN) graph = SyncedGraph("keyboardcomposer") @@ -541,16 +554,8 @@ if __name__ == "__main__": session = clientsession.getUri('keyboardcomposer', opts) - tl = toplevelat("Keyboard Composer - %s" % opts.session, - existingtoplevel=root, graph=graph, session=session) - - kc = KeyboardComposer(tl, graph, session, - hw_sliders=not opts.no_sliders) - kc.pack(fill=BOTH, expand=1) - - for helpline in ["Bindings: B3 mute; C-l edit levels in subcomposer"]: - tk.Label(root,text=helpline, font="Helvetica -12 italic", - anchor='w').pack(side='top',fill='x') + graph.initiallySynced.addCallback( + lambda _: launch(opts, root, graph, session)) if 0: # needs fixing, or maybe it's obsolete because other progs can just patch the rdf graph import twisted.internet diff --git a/light9/Submaster.py b/light9/Submaster.py --- a/light9/Submaster.py +++ b/light9/Submaster.py @@ -27,7 +27,7 @@ class Submaster(object): # obsolete dispatcher.connect(log.error, 'reload all subs') - log.debug("%s initial levels %s", self.name, self.levels) + #log.debug("%s initial levels %s", self.name, self.levels) def _editedLevels(self): pass @@ -271,7 +271,7 @@ def combine_subdict(subdict, name=None, class Submasters: "Collection o' Submaster objects" def __init__(self, graph): - self.submasters = {} + self.submasters = {} # uri : Submaster self.graph = graph graph.addHandler(self.findSubs) @@ -280,11 +280,13 @@ class Submasters: current = set() for s in self.graph.subjects(RDF.type, L9['Submaster']): + if self.graph.contains((s, RDF.type, L9['LocalSubmaster'])): + continue log.info("found sub %s", s) if s not in self.submasters: sub = self.submasters[s] = PersistentSubmaster(self.graph, s) dispatcher.send("new submaster", sub=sub) - current.add(s) + current.add(s) for s in set(self.submasters.keys()) - current: del self.submasters[s] dispatcher.send("lost submaster", subUri=s)