[core] add debugging around click events
log commandline outputs and errors. allow input handlers to be configured as "waiting" for debugging purposes. see #628
This commit is contained in:
parent
02a80840a1
commit
a697500491
3 changed files with 16 additions and 5 deletions
|
@ -36,20 +36,20 @@ def __event_id(obj_id, button):
|
|||
return "{}::{}".format(obj_id, button_name(button))
|
||||
|
||||
|
||||
def __execute(cmd):
|
||||
def __execute(cmd, wait=False):
|
||||
try:
|
||||
util.cli.execute(cmd, wait=False, shell=True)
|
||||
util.cli.execute(cmd, wait=wait, shell=True)
|
||||
except Exception as e:
|
||||
logging.error("failed to invoke callback: {}".format(e))
|
||||
|
||||
|
||||
def register(obj, button=None, cmd=None):
|
||||
def register(obj, button=None, cmd=None, wait=False):
|
||||
event_id = __event_id(obj.id if obj is not None else "", button)
|
||||
logging.debug("registering callback {}".format(event_id))
|
||||
if callable(cmd):
|
||||
core.event.register(event_id, cmd)
|
||||
else:
|
||||
core.event.register(event_id, lambda _: __execute(cmd))
|
||||
core.event.register(event_id, lambda _: __execute(cmd, wait))
|
||||
|
||||
|
||||
def trigger(event):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue