Mercurial > libervia-desktop-kivy
diff cagou/core/cagou_main.py @ 352:434f770fe55b
core (Cagou): add debug log for widget visibility + ignore_missing:
- debug log are now use to show which widget are made (in)visible, and to show the list of
currently visible widgets
- "ignore_missing" can be used in _removeVisibleWidget when we can expect that a widget is
missing in visible widgets list.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 17 Jan 2020 18:44:35 +0100 |
parents | e9d3c3793f94 |
children | 19422bbd9c8e |
line wrap: on
line diff
--- a/cagou/core/cagou_main.py Fri Jan 17 18:44:35 2020 +0100 +++ b/cagou/core/cagou_main.py Fri Jan 17 18:44:35 2020 +0100 @@ -769,15 +769,24 @@ for internal use only! """ assert isinstance(widget, CagouWidget) - self._visible_widgets.setdefault(widget.__class__, []).append(widget) + log.debug(f"Visible widget: {widget}") + self._visible_widgets.setdefault(widget.__class__, set()).add(widget) + log.debug(f"visible widgets list: {self.getVisibleList(None)}") widget.onVisible() - def _removeVisibleWidget(self, widget): + def _removeVisibleWidget(self, widget, ignore_missing=False): """declare a widget not visible anymore for internal use only! """ - self._visible_widgets[widget.__class__].remove(widget) + log.debug(f"Widget not visible anymore: {widget}") + try: + self._visible_widgets[widget.__class__].remove(widget) + except KeyError as e: + if not ignore_missing: + log.error(f"trying to remove a not visible widget ({widget}): {e}") + return + log.debug(f"visible widgets list: {self.getVisibleList(None)}") if isinstance(widget, CagouWidget): widget.onNotVisible() if isinstance(widget, quick_widgets.QuickWidget):