Skip to content

Commit cb84f71

Browse files
committed
Use _is_preview_live and clear trigger timeout
Replace direct checks of self._preview.state == PreviewState.ACTIVE with self._is_preview_live() in camera_config_dialog to centralize preview-active logic and ensure consistent behavior when restarting the preview after trigger or camera setting changes. In trigger_config_dialog, only set payload["timeout"] for external/follower roles when timeout > 0, and explicitly set payload["timeout"] = None when role == "off" to clear any stale timeout when disabling the trigger.
1 parent cc35d85 commit cb84f71

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

dlclivegui/gui/camera_config/camera_config_dialog.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ def _open_trigger_settings_dialog(self) -> None:
10901090
self._load_camera_to_form(updated)
10911091

10921092
# Trigger changes require reopening the camera preview/backend.
1093-
if self._preview.state == PreviewState.ACTIVE:
1093+
if self._is_preview_live():
10941094
self._append_status("[Trigger] Restarting preview to apply trigger settings.")
10951095
self._request_preview_restart(updated, reason="trigger-settings")
10961096

@@ -1153,9 +1153,7 @@ def _apply_camera_settings(self) -> bool:
11531153
old_settings = current_model
11541154

11551155
restart = False
1156-
should_consider_restart = self._preview.state == PreviewState.ACTIVE and isinstance(
1157-
old_settings, CameraSettings
1158-
)
1156+
should_consider_restart = self._is_preview_live() and isinstance(old_settings, CameraSettings)
11591157
if should_consider_restart:
11601158
restart = self._should_restart_preview(old_settings, new_model)
11611159

@@ -1167,7 +1165,7 @@ def _apply_camera_settings(self) -> bool:
11671165
new_model.index,
11681166
)
11691167

1170-
if self._preview.state == PreviewState.ACTIVE and restart:
1168+
if self._is_preview_live() and restart:
11711169
self._append_status("[Apply] Restarting preview to apply camera settings changes.")
11721170
self._request_preview_restart(new_model, reason="apply-settings")
11731171

dlclivegui/gui/camera_config/trigger_config_dialog.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,10 @@ def _accept(self) -> None:
164164
}
165165

166166
timeout = float(self.timeout_spin.value())
167-
if timeout > 0:
167+
if role in {"external", "follower"} and timeout > 0:
168168
payload["timeout"] = timeout
169+
elif role == "off":
170+
payload["timeout"] = None # ensure timeout is cleared when disabling trigger
169171

170172
trigger = CameraTriggerSettings.from_any(payload)
171173

0 commit comments

Comments
 (0)