fix: no auto-switch to beamline view during Sample alignment
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / test (3.11) (pull_request) Successful in 1m3s
CI / test (3.13) (pull_request) Successful in 1m9s
CI / test (3.12) (pull_request) Successful in 1m16s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m13s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m17s
CI / lint (pull_request) Successful in 1m33s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m32s
CI / test-with-coverage (pull_request) Successful in 1m42s
CI / coverage-analysis (pull_request) Successful in 3s

Busy in Sample alignment IS the alignment (centring moves) - yanking
the view away to the combined beamline tab hid exactly what the user
was doing. The motion-watch switch now skips that state; robot
exchange and other busy transitions still switch as before.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 16:50:49 +02:00
co-authored by Claude Fable 5
parent b58c23d0f6
commit cb5837d90f
+6 -2
View File
@@ -2773,8 +2773,12 @@ class MainWindow(QMainWindow):
# Busy (or the robot station) means something is physically moving:
# show the Beamline combined view so the motion can be watched, and
# return to the sample camera once it is done. Edge-triggered so a
# manual tab choice survives between transitions.
moving = bool(s.busy) or s.state == BeamlineStateEnum.RobotSampleExchange
# manual tab choice survives between transitions. Sample alignment is
# the exception: its busy moves ARE the alignment, and the user needs
# to keep watching the sample camera, not the beamline view.
moving = (
bool(s.busy) or s.state == BeamlineStateEnum.RobotSampleExchange
) and s.state != BeamlineStateEnum.SampleAlignment
if moving and not self._watching_motion:
self._watching_motion = True
self.video_tab.setCurrentWidget(self.beamline_combined_panel)