From 5cd764e81516368b35b941104227fdb619782fd3 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Thu, 12 Mar 2026 23:05:27 +0100 Subject: [PATCH] fix(gui): cleanup adjusted --- .../bec_widgets/widgets/xray_eye/x_ray_eye.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py b/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py index 30fcb95..d3f27a6 100644 --- a/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py +++ b/csaxs_bec/bec_widgets/widgets/xray_eye/x_ray_eye.py @@ -145,6 +145,7 @@ class XRayEye(BECWidget, QWidget): def __init__(self, parent=None, **kwargs): super().__init__(parent=parent, **kwargs) + self._connected_motor = None self.get_bec_shortcuts() self._init_ui() @@ -356,6 +357,7 @@ class XRayEye(BECWidget, QWidget): self.on_tomo_angle_readback, MessageEndpoints.device_readback(motor) ) logger.info(f"Successfully connected to {motor}") + self._connected_motor = motor ################################################################################ # Properties ported from the original OmnyAlignment, can be adjusted as needed @@ -554,6 +556,18 @@ class XRayEye(BECWidget, QWidget): def cleanup(self): """Cleanup connections on widget close -> disconnect slots and stop live mode of camera.""" + if self._connected_motor is not None: + self.bec_dispatcher.disconnect_slot( + self.on_tomo_angle_readback, MessageEndpoints.device_readback(self._connected_motor) + ) + + self.bec_dispatcher.disconnect_slot( + self.getting_shutter_status, MessageEndpoints.device_readback("omnyfsh") + ) + self.bec_dispatcher.disconnect_slot( + self.getting_camera_status, MessageEndpoints.device_read_configuration(CAMERA[0]) + ) + getattr(self.dev, CAMERA[0]).stop_live_mode() super().cleanup()