From 0d81bdd4ddb4ec474a414b107cbc7fc865253934 Mon Sep 17 00:00:00 2001 From: David Perl Date: Wed, 23 Jul 2025 09:02:25 +0200 Subject: [PATCH] fix: cleanup subscriptions in device browser --- .../widgets/services/device_browser/device_browser.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bec_widgets/widgets/services/device_browser/device_browser.py b/bec_widgets/widgets/services/device_browser/device_browser.py index d03ee93d..55a06668 100644 --- a/bec_widgets/widgets/services/device_browser/device_browser.py +++ b/bec_widgets/widgets/services/device_browser/device_browser.py @@ -64,10 +64,10 @@ class DeviceBrowser(BECWidget, QWidget): self.proxy_device_update = SignalProxy( self.ui.filter_input.textChanged, rateLimit=500, slot=self.update_device_list ) - self.bec_dispatcher.client.callbacks.register( + self._device_update_callback_id = self.bec_dispatcher.client.callbacks.register( EventType.DEVICE_UPDATE, self.on_device_update ) - self.bec_dispatcher.client.callbacks.register( + self._scan_status_callback_id = self.bec_dispatcher.client.callbacks.register( EventType.SCAN_STATUS, self.scan_status_changed ) self._default_config_dir = os.path.abspath( @@ -229,6 +229,11 @@ class DeviceBrowser(BECWidget, QWidget): if file_path: self._config_helper.save_current_session(file_path) + def cleanup(self): + super().cleanup() + self.bec_dispatcher.client.callbacks.remove(self._scan_status_callback_id) + self.bec_dispatcher.client.callbacks.remove(self._device_update_callback_id) + if __name__ == "__main__": # pragma: no cover import sys