Skip to content

Commit 1780065

Browse files
committed
Restart active previews; ignore bad trigger
Allow pending preview restarts to proceed when the preview is ACTIVE (previously only IDLE) and return early to avoid double UI sync in camera_config_dialog.py. Also wrap CameraTriggerSettings loading in a try/except and fall back to a default instance when parsing fails, making trigger_config_dialog.py tolerant of malformed or missing trigger data.
1 parent 0edfbbf commit 1780065

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

dlclivegui/gui/camera_config/camera_config_dialog.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1832,9 +1832,10 @@ def _on_loader_finished(self, e: int) -> None:
18321832
self._preview.restart_scheduled = False
18331833
self._preview.loader = None
18341834

1835-
if pending and self._preview.state == PreviewState.IDLE:
1835+
if pending and self._preview.state in (PreviewState.IDLE, PreviewState.ACTIVE):
18361836
LOGGER.debug("[Loader] finished with pending restart for backend=%s idx=%s", pending.backend, pending.index)
18371837
self._begin_preview_load(pending, reason="pending-restart-after-finish")
1838+
return # UI sync is already handled in _begin_preview_load
18381839

18391840
self._sync_preview_ui()
18401841

dlclivegui/gui/camera_config/trigger_config_dialog.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ def __init__(self, cam: CameraSettings, parent: QWidget | None = None):
4040
self._cam = cam.model_copy(deep=True)
4141

4242
ns = _backend_namespace(self._cam)
43-
self._trigger = CameraTriggerSettings.from_any(ns.get("trigger"))
43+
try:
44+
self._trigger = CameraTriggerSettings.from_any(ns.get("trigger"))
45+
except Exception:
46+
self._trigger = CameraTriggerSettings()
4447

4548
self._setup_ui()
4649
self._load_from_trigger(self._trigger)

0 commit comments

Comments
 (0)