From c16292b2b5252c4b6746be38c84477b854bcfa46 Mon Sep 17 00:00:00 2001 From: Goffi Date: Sun, 20 Jan 2019 15:46:32 +0100 Subject: [PATCH] quick frontends: visible_widgets can now keep any kind of widget, new visible_quick_widgets only iters on QuickWidgets --- sat_frontends/quick_frontend/quick_app.py | 24 +++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) 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 ):