Mercurial > libervia-backend
comparison sat_frontends/quick_frontend/quick_widgets.py @ 3168:1cb232c9e845
quick frontends (widgets): added widgetNew and widgetDelete listeners:
- `widgetNew` is called when a brand new widget is created (not when a new instance is
created if there is already an existing one)
- `widgetDelete` is called when all instances of a widget (with a given widget_hash) have
been deleted.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 12 Feb 2020 19:46:14 +0100 |
parents | 7699a08ba8fb |
children | be6d91572633 |
comparison
equal
deleted
inserted
replaced
3167:d0fb79f97466 | 3168:1cb232c9e845 |
---|---|
229 else: | 229 else: |
230 widget.addTarget(target) | 230 widget.addTarget(target) |
231 | 231 |
232 if widget is None: | 232 if widget is None: |
233 # we need to create a new widget | 233 # we need to create a new widget |
234 log.debug("Creating new widget for target {} {}".format(target, cls)) | 234 log.debug(f"Creating new widget for target {target} {cls}") |
235 widget = cls(*_args, **_kwargs) | 235 widget = cls(*_args, **_kwargs) |
236 widgets_map.setdefault(hash_, []).append(widget) | 236 widgets_map.setdefault(hash_, []).append(widget) |
237 self.host.callListeners("widgetNew", widget) | |
237 | 238 |
238 if on_new_widget == C.WIDGET_NEW: | 239 if on_new_widget == C.WIDGET_NEW: |
239 self.host.newWidget(widget) | 240 self.host.newWidget(widget) |
240 elif callable(on_new_widget): | 241 elif callable(on_new_widget): |
241 on_new_widget(widget) | 242 on_new_widget(widget) |
339 # all instances with this hash have been deleted | 340 # all instances with this hash have been deleted |
340 # we remove the hash itself | 341 # we remove the hash itself |
341 del widgets_map[widget_hash] | 342 del widgets_map[widget_hash] |
342 log.debug("All instances of {cls} with hash {widget_hash!r} have been deleted" | 343 log.debug("All instances of {cls} with hash {widget_hash!r} have been deleted" |
343 .format(cls=class_, widget_hash=widget_hash)) | 344 .format(cls=class_, widget_hash=widget_hash)) |
345 self.host.callListeners("widgetDeleted", widget_to_delete) | |
344 | 346 |
345 | 347 |
346 class QuickWidget(object): | 348 class QuickWidget(object): |
347 """generic widget base""" | 349 """generic widget base""" |
348 # FIXME: sometime a single target is used, sometimes several ones | 350 # FIXME: sometime a single target is used, sometimes several ones |