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 8073cf5..eaa17f8 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 @@ -172,6 +172,7 @@ class XRayEye(BECWidget, QWidget): self.connect_motors() self.resize(800, 600) + QTimer.singleShot(0, self._init_queue_status) QTimer.singleShot(0, self._init_gui_trigger) def _init_ui(self): @@ -428,6 +429,17 @@ class XRayEye(BECWidget, QWidget): def _release_queue_toggles(self): self._set_queue_toggles_blocked(False) + def _init_queue_status(self): + try: + msg = self.client.connector.get(MessageEndpoints.scan_queue_status()) + except Exception as exc: + logger.warning(f"Failed to fetch initial scan queue status for XRayEye: {exc}") + return + + if msg is None: + return + self._update_queue_toggles_from_busy_state(self._is_queue_busy(msg.content)) + @staticmethod def _is_queue_busy(msg_content: dict) -> bool: queues = msg_content.get("queue", {}) if isinstance(msg_content, dict) else {} @@ -536,6 +548,7 @@ class XRayEye(BECWidget, QWidget): @SafeSlot(dict, dict) def on_queue_status_update(self, data, meta): + _ = meta self._update_queue_toggles_from_busy_state(self._is_queue_busy(data)) @SafeSlot(bool, bool)