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:
parent
9a9adb36cb
commit
5ef5f4aabf
1 changed files with 35 additions and 8 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue