wip device section logging and no deleteLater

This commit is contained in:
2026-05-20 20:47:45 +02:00
parent 2117fc1b8c
commit 4a815e9af7
2 changed files with 15 additions and 7 deletions
@@ -5,6 +5,9 @@ from bec_widgets.utils.toolbars.bundles import ToolbarBundle, ToolbarComponents
from bec_widgets.utils.toolbars.connections import BundleConnection
from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox
from bec_widgets.widgets.control.device_input.signal_combobox.signal_combobox import SignalComboBox
from bec_lib.logger import bec_logger
logger = bec_logger.logger
class DeviceSelection(QWidget):
@@ -139,18 +142,12 @@ class DeviceSelection(QWidget):
def cleanup(self):
"""Clean up the widget resources."""
logger.error("Cleaning up DeviceSelection")
if self._cleanup_done:
return
self._cleanup_done = True
self.device_combo_box.close()
self.device_combo_box.deleteLater()
self.signal_combo_box.close()
self.signal_combo_box.deleteLater()
def closeEvent(self, event):
"""Ensure embedded BEC widgets clean up when the toolbar widget closes."""
self.cleanup()
super().closeEvent(event)
def device_selection_bundle(components: ToolbarComponents, client=None) -> ToolbarBundle:
@@ -35,6 +35,17 @@ def test_initialization_defaults(qtbot, mocked_client):
assert bec_image_view._color_bar is None
def test_image_cleanup_cleans_toolbar_device_selection_callbacks(qtbot, mocked_client):
bec_image_view = create_widget(qtbot, Image, client=mocked_client)
device_selection = bec_image_view.toolbar.components.get_action("device_selection").widget
bec_image_view.cleanup()
assert device_selection._cleanup_done is True
assert device_selection.device_combo_box._callback_id is None
assert device_selection.signal_combo_box._device_update_register is None
def test_setting_color_map(qtbot, mocked_client):
bec_image_view = create_widget(qtbot, Image, client=mocked_client)
bec_image_view.color_map = "viridis"