diff --git a/sat_frontends/quick_frontend/quick_app.py b/sat_frontends/quick_frontend/quick_app.py index 0fe6f553..672e0759 100644 --- a/sat_frontends/quick_frontend/quick_app.py +++ b/sat_frontends/quick_frontend/quick_app.py @@ -306,10 +306,8 @@ class QuickApp(object): else: self.options = None - # widgets - self.selected_widget = ( - None - ) # widget currently selected (must be filled by frontend) + # widget currently selected (must be filled by frontend) + self.selected_widget = None # listeners self._listeners = {} # key: listener type ("avatar", "selected", etc), @@ -407,12 +405,26 @@ class QuickApp(object): @property def visible_widgets(self): - """widgets currently visible (must be implemented by frontend) + """Widgets currently visible - @return (iter[QuickWidget]): iterable on visible widgets + This must be implemented by frontend + @return (iter[object]): iterable on visible widgets + widgets can be QuickWidgets or not """ raise NotImplementedError + @property + def visible_quick_widgets(self): + """QuickWidgets currently visible + + This generator iterate only on QuickWidgets, discarding other kinds of + widget the frontend may have. + @return (iter[object]): iterable on visible widgets + """ + for w in self.visisble_widgets: + if isinstance(w, quick_widgets.QuickWidget): + return w + def registerSignal( self, function_name, handler=None, iface="core", with_profile=True ):