From 675dd2c1c33b116c18125e7c7f5413bd12fcbe77 Mon Sep 17 00:00:00 2001 From: Dawn Date: Tue, 1 Sep 2026 14:24:37 +0200 Subject: [PATCH 1/4] feat: make the raster grid stronger and more visible --- src/aare/gui/scan_logic/raster_grid_manager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/aare/gui/scan_logic/raster_grid_manager.py b/src/aare/gui/scan_logic/raster_grid_manager.py index 0457ee81..3d5ba110 100644 --- a/src/aare/gui/scan_logic/raster_grid_manager.py +++ b/src/aare/gui/scan_logic/raster_grid_manager.py @@ -645,7 +645,7 @@ class RasterGridManager(QObject): painter.setOpacity(1.0) painter.setPen( - QPen(qcolor(RASTER_GRID_LINE, min(255, alpha + 40)), 1, Qt.PenStyle.SolidLine) + QPen(qcolor(RASTER_GRID_LINE, min(255, alpha + 88)), 2, Qt.PenStyle.SolidLine) ) painter.setBrush(Qt.BrushStyle.NoBrush) painter.drawRect(bounds) @@ -700,7 +700,7 @@ class RasterGridManager(QObject): max_value = max((x for x in values if x is not None and not math.isnan(x)), default=1) diff = 1 if min_value == max_value else (max_value - min_value) else: - painter.setPen(QPen(qcolor(RASTER_GRID_LINE), 1, Qt.PenStyle.SolidLine)) + painter.setPen(QPen(qcolor(RASTER_GRID_LINE), 2, Qt.PenStyle.SolidLine)) min_value = 0 diff = 1 @@ -735,7 +735,7 @@ class RasterGridManager(QObject): painter.setBrush(Qt.BrushStyle.NoBrush) else: painter.setPen( - QPen(qcolor(RASTER_GRID_LINE, min(255, alpha + 40)), 1, Qt.PenStyle.SolidLine) + QPen(qcolor(RASTER_GRID_LINE, min(255, alpha + 88)), 2, Qt.PenStyle.SolidLine) ) painter.setBrush(Qt.BrushStyle.NoBrush) painter.drawRect(bounds) @@ -763,7 +763,7 @@ class RasterGridManager(QObject): painter.save() painter.setRenderHint(QPainter.RenderHint.Antialiasing, False) - painter.setPen(QPen(qcolor(RASTER_GRID_LINE), 1, Qt.PenStyle.SolidLine)) + painter.setPen(QPen(qcolor(RASTER_GRID_LINE), 2, Qt.PenStyle.SolidLine)) painter.setBrush(Qt.BrushStyle.NoBrush) painter.drawRect(bounds) @@ -858,7 +858,7 @@ class RasterGridManager(QObject): painter.fillRect(QRectF(px, py, draw_w, draw_h), brush) painter.setPen( - QPen(qcolor(RASTER_GRID_LINE, min(255, alpha + 40)), 1, Qt.PenStyle.SolidLine) + QPen(qcolor(RASTER_GRID_LINE, min(255, alpha + 88)), 2, Qt.PenStyle.SolidLine) ) painter.setBrush(Qt.BrushStyle.NoBrush) painter.drawRect(bounds) -- 2.54.0 From 3e5f5fb7a4029b944061a1a0e14e3fd9eb54cbf5 Mon Sep 17 00:00:00 2001 From: Dawn Date: Tue, 1 Sep 2026 14:50:17 +0200 Subject: [PATCH 2/4] style: rearrange order and give more space to omega symbol --- .../gui/panels/rotation_data_collection.py | 39 ++++++++++--------- src/aare/gui/panels/smart_rotation_panel.py | 2 +- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/aare/gui/panels/rotation_data_collection.py b/src/aare/gui/panels/rotation_data_collection.py index 9abd35ec..31e23f2b 100644 --- a/src/aare/gui/panels/rotation_data_collection.py +++ b/src/aare/gui/panels/rotation_data_collection.py @@ -65,7 +65,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel): self._layout.addWidget(QLabel("°", parent=self), 3, 3) self.omega_button = QPushButton("Ω") - self.omega_button.setFixedWidth(20) + self.omega_button.setFixedWidth(30) self.omega_button.clicked.connect(self.update_omega_start) self._layout.addWidget(self.omega_button, 3, 4) @@ -73,23 +73,6 @@ class RotationDataCollectionPanel(ScanSettingsPanel): QLabel("
Screening
", parent=self), 4, 0, 1, 6 ) - self._layout.addWidget(QLabel("Image angle", parent=self), 5, 0) - self.screening_image_angle = NumberLineEdit( - 0, 90.0, 0.5, decimals=3, parent=self, track_pending=True - ) - self._layout.addWidget(self.screening_image_angle, 5, 1, 1, 3) - self._layout.addWidget(QLabel("°", parent=self), 5, 4) - - self._layout.addWidget(QLabel("Image time", parent=self), 6, 0) - default_screening_exp_time = cfg_get( - "daq.data_collection_settings.default_screening_settings.exp_time_s", 0.1 - ) - self.screening_image_time_enter = NumberLineEdit( - 0.0005, 10.0, default_screening_exp_time, decimals=4, parent=self, track_pending=True - ) - self._layout.addWidget(self.screening_image_time_enter, 6, 1, 1, 3) - self._layout.addWidget(QLabel("s", parent=self), 6, 4) - self.screening_type = QComboBox(parent=self) self.screening_type.addItem("1 image", {"steps": 1, "omega_step_deg": 0}) self.screening_type.addItem("2 images every 90°", {"steps": 2, "omega_step_deg": 90}) @@ -100,7 +83,24 @@ class RotationDataCollectionPanel(ScanSettingsPanel): self.screening_type.addItem("4 images every 45°", {"steps": 4, "omega_step_deg": 45}) self.screening_type.addItem("5 images every 45°", {"steps": 5, "omega_step_deg": 45}) - self._layout.addWidget(self.screening_type, 7, 0, 1, 6) + self._layout.addWidget(self.screening_type, 5, 0, 1, 6) + + self._layout.addWidget(QLabel("Image angle", parent=self), 6, 0) + self.screening_image_angle = NumberLineEdit( + 0, 90.0, 0.5, decimals=3, parent=self, track_pending=True + ) + self._layout.addWidget(self.screening_image_angle, 6, 1, 1, 3) + self._layout.addWidget(QLabel("°", parent=self), 6, 4) + + self._layout.addWidget(QLabel("Image time", parent=self), 7, 0) + default_screening_exp_time = cfg_get( + "daq.data_collection_settings.default_screening_settings.exp_time_s", 0.1 + ) + self.screening_image_time_enter = NumberLineEdit( + 0.0005, 10.0, default_screening_exp_time, decimals=4, parent=self, track_pending=True + ) + self._layout.addWidget(self.screening_image_time_enter, 7, 1, 1, 3) + self._layout.addWidget(QLabel("s", parent=self), 7, 4) self._layout.addWidget(QLabel("Screening transmission", parent=self), 8, 0) self.screening_transmission_enter = DbOverrideLineEdit( @@ -108,6 +108,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel): ) self._layout.addWidget(self.screening_transmission_enter, 8, 1, 1, 3) self.screening_transmission_enter.valueChanged.connect(self.set_screening_transmission) + self.screening_button = QPushButton("Run screening") self.screening_button.setStyleSheet(f"color: {GO_TEXT};") self.screening_button.clicked.connect(self.run_screening) diff --git a/src/aare/gui/panels/smart_rotation_panel.py b/src/aare/gui/panels/smart_rotation_panel.py index 6d6ccd9c..ff3cfae9 100644 --- a/src/aare/gui/panels/smart_rotation_panel.py +++ b/src/aare/gui/panels/smart_rotation_panel.py @@ -66,7 +66,7 @@ class SimpleRotationSettingsPanel(QWidget): self._layout.addWidget(QLabel("°", parent=self), 1, 4) self.omega_button = QPushButton("Ω") - self.omega_button.setFixedWidth(20) + self.omega_button.setFixedWidth(30) self.omega_button.clicked.connect(self.update_omega_start) self._layout.addWidget(self.omega_button, 1, 5) -- 2.54.0 From 47c4e3ab04c555d87ac5133daae97a99c91a8cc5 Mon Sep 17 00:00:00 2001 From: Dawn Date: Tue, 1 Sep 2026 16:40:50 +0200 Subject: [PATCH 3/4] style: update wording to put action first, for clarity --- src/aare/gui/widgets/busy_overlay.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/aare/gui/widgets/busy_overlay.py b/src/aare/gui/widgets/busy_overlay.py index 8bb9b905..3a0d11e7 100644 --- a/src/aare/gui/widgets/busy_overlay.py +++ b/src/aare/gui/widgets/busy_overlay.py @@ -181,14 +181,14 @@ def build_busy_overlay_style( SessionsStateEnum.Vacant, }: return BusyOverlayStyle( - text="In viewing mode", + text="Viewing mode, Click here to grab the baton", badge_bg=BUSY_YELLOW, badge_fg=WHITE, overlay_fill=qcolor(BUSY_YELLOW, 195), overlay_border=qcolor(BUSY_YELLOW_BORDER, 235), overlay_text=qcolor(WHITE), accent_dot=BUSY_YELLOW_DOT, - subtext="Click here to grab the baton if you need to interact with GUI", + subtext="Grab the baton if you need to interact with GUI", ) if not is_busy: return None -- 2.54.0 From 0696b583b03fb0d8de8c3647196348ab21a149c6 Mon Sep 17 00:00:00 2001 From: Dawn Date: Wed, 2 Sep 2026 09:08:04 +0200 Subject: [PATCH 4/4] test: no need to compare wording --- tests/unit/gui/test_axis_video_panel.py | 1 - tests/unit/gui/test_camera_image.py | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/unit/gui/test_axis_video_panel.py b/tests/unit/gui/test_axis_video_panel.py index c73b8146..d70992c2 100644 --- a/tests/unit/gui/test_axis_video_panel.py +++ b/tests/unit/gui/test_axis_video_panel.py @@ -29,7 +29,6 @@ def test_badge_drawn_once_and_hint_stripped(qtbot): panel.set_busy_style(style) applied = first._busy_overlay_style assert applied is not None - assert applied.text == "In viewing mode" assert applied.subtext == "" # not clickable here, hint stripped assert second._busy_overlay_style is None # one badge, not one per view diff --git a/tests/unit/gui/test_camera_image.py b/tests/unit/gui/test_camera_image.py index 68045ff5..ac9c866e 100644 --- a/tests/unit/gui/test_camera_image.py +++ b/tests/unit/gui/test_camera_image.py @@ -175,7 +175,6 @@ def test_vacant_badge_hover_click_and_theme(camera, qtbot): camera.update_daq_status(_status(busy=False, session=SessionsStateEnum.Vacant)) style = camera._busy_overlay_style assert style is not None - assert style.text == "In viewing mode" assert style.subtext # the grab-baton hint line camera.grab() # paint records the badge rect -- 2.54.0