quick_frontend (app, widget): CagouWidget.onSelected is called when the widget is selected:

A property is now used to manage `selected_widget` in QuickApp, and widget's onSelected
method is called when suitable.
This commit is contained in:
Goffi 2020-02-09 23:50:21 +01:00
commit 5ef5f4aabf

View file

@ -301,8 +301,8 @@ class QuickApp(object):
else:
self.options = None
# widget currently selected (must be filled by frontend)
self.selected_widget = None
# see selected_widget setter and getter
self._selected_widget = None
# listeners are callable watching events
self._listeners = {} # key: listener type ("avatar", "selected", etc),
@ -436,6 +436,28 @@ class QuickApp(object):
if isinstance(w, quick_widgets.QuickWidget):
return w
@property
def selected_widget(self):
"""widget currently selected
This must be set by frontend using setter.
"""
return self._selected_widget
@selected_widget.setter
def selected_widget(self, wid):
"""Set the currently selected widget
Must be set by frontend
"""
self._selected_widget = wid
try:
onSelected = wid.onSelected
except AttributeError:
pass
else:
onSelected()
# backend state management
@property