diff --git a/gui/src/aaregui/main_window.py b/gui/src/aaregui/main_window.py
index 7313a472..ba8ba34f 100644
--- a/gui/src/aaregui/main_window.py
+++ b/gui/src/aaregui/main_window.py
@@ -68,11 +68,22 @@ class MainWindow(QMainWindow):
)
self.raster = RasterGridManager(geom=geom)
+
+ collection_controls_scroll = NoWheelScrollArea(top_widget)
+
self.data_collection = DataCollectionSettings(s=geom,
parent=top_widget,
raster_mgr=self.raster,
diffraction=diffraction)
- top_widget_layout.addWidget(self.data_collection)
+
+
+ top_widget_layout.addWidget(collection_controls_scroll)
+ collection_controls_scroll.setWidget(self.data_collection)
+ collection_controls_scroll.setHorizontalScrollBarPolicy(
+ Qt.ScrollBarPolicy.ScrollBarAlwaysOff
+ )
+ collection_controls_scroll.setFixedWidth(self.data_collection.set_width + 10)
+
self.camera_image = SampleCameraImageLabel(geom=geom, raster=self.raster, parent=top_widget, default_image=default_image)
diff --git a/gui/src/aaregui/panels/data_collection_settings.py b/gui/src/aaregui/panels/data_collection_settings.py
index d88acb70..56e8e1a4 100644
--- a/gui/src/aaregui/panels/data_collection_settings.py
+++ b/gui/src/aaregui/panels/data_collection_settings.py
@@ -24,6 +24,7 @@ from aaregui.widgets.title_label import TitleLabel
class DataCollectionSettings(QFrame):
standard_data_collection = Signal(RotationScanRequest)
+ set_width = 400
def __init__(self,
s: SampleGeometryModel,
@@ -31,7 +32,7 @@ class DataCollectionSettings(QFrame):
diffraction: DiffractionGeometry,
parent=None):
super().__init__(parent)
- self.setFixedWidth(400)
+ self.setFixedWidth(self.set_width)
self.setFrameShape(QFrame.Shape.StyledPanel)
self.setFrameShadow(QFrame.Shadow.Raised)
@@ -51,7 +52,8 @@ class DataCollectionSettings(QFrame):
diffraction=diffraction)
self.tab_widget.addTab(self.raster, "Raster")
- self.screening = ScreeningDataCollectionPanel(parent=self.tab_widget)
+ self.screening = ScreeningDataCollectionPanel(parent=self.tab_widget,
+ diffraction=diffraction,)
self.tab_widget.addTab(self.screening, "Screening")
self.standard = StandardDataCollectionPanel(parent=self.tab_widget)
diff --git a/gui/src/aaregui/panels/screening_data_collection.py b/gui/src/aaregui/panels/screening_data_collection.py
index a0a02fb1..d33a8dd9 100644
--- a/gui/src/aaregui/panels/screening_data_collection.py
+++ b/gui/src/aaregui/panels/screening_data_collection.py
@@ -7,42 +7,34 @@ from PySide6.QtWidgets import (
QSpacerItem,
)
+from aaredaqlib.diffraction_geometry import DiffractionGeometry
+from aaregui.panels.scan_settings_panel import ScanSettingsPanel
from aaregui.widgets.number_line_edit import NumberLineEdit
-class ScreeningDataCollectionPanel(QWidget):
- def __init__(self, parent=None):
- super().__init__(parent)
- grid_layout = QGridLayout(self)
-
- grid_layout.addWidget(QLabel("High resolution", parent=self), 0, 0)
- self.high_res_enter = NumberLineEdit(
- 0.5, 10, decimals=2, default=2.0, parent=self
- )
- grid_layout.addWidget(self.high_res_enter, 0, 1)
- grid_layout.addWidget(QLabel("Å", parent=self), 0, 2)
- grid_layout.addWidget(QLabel("Detector distance", parent=self), 1, 0)
- self.dtz_enter = NumberLineEdit(60, 1000, decimals=2, default=120, parent=self)
- grid_layout.addWidget(self.dtz_enter, 1, 1)
- grid_layout.addWidget(QLabel("mm", parent=self), 1, 2)
-
- grid_layout.addWidget(QLabel("Beam transmission", parent=self), 2, 0)
- self.transmission_enter = NumberLineEdit(
- 0, 1.0, decimals=4, default=1.0, parent=self
- )
- grid_layout.addWidget(self.transmission_enter, 2, 1)
-
- grid_layout.addWidget(QLabel("Start angle", parent=self), 3, 0)
+class ScreeningDataCollectionPanel(ScanSettingsPanel):
+ def __init__(self, diffraction: DiffractionGeometry,
+ default_dtz: float = 200.0,
+ default_transmission: float = 1.0,
+ parent=None):
+ super().__init__(parent=parent,
+ diffraction=diffraction,
+ default_dtz=default_dtz,
+ default_transmission=default_transmission)
+
+ self._layout.addWidget(QLabel("Start angle", parent=self), 3, 0)
self.start_angle = NumberLineEdit(-720, 720.0, 0.0, decimals=3, parent=self)
- grid_layout.addWidget(self.start_angle, 3, 1)
- grid_layout.addWidget(QLabel("°", parent=self), 3, 2)
+ self._layout.addWidget(self.start_angle, 3, 1, 1, 3)
+ self._layout.addWidget(QLabel("°", parent=self), 3, 4)
- grid_layout.addWidget(QLabel("Image time", parent=self), 4, 0)
- self.image_time_enter = NumberLineEdit(
+ self._layout.addWidget(QLabel("Screening", parent=self), 4, 0, 1,5)
+
+ self._layout.addWidget(QLabel("Image time", parent=self), 5, 0)
+ self.screening_image_time_enter = NumberLineEdit(
0.0005, 10.0, 0.005, decimals=4, parent=self
)
- grid_layout.addWidget(self.image_time_enter, 4, 1)
- grid_layout.addWidget(QLabel("s", parent=self), 4, 2)
+ self._layout.addWidget(self.screening_image_time_enter, 5, 1, 1, 3)
+ self._layout.addWidget(QLabel("s", parent=self), 5, 4)
self.screening_type = QComboBox(parent=self)
self.screening_type.addItem("1 image", {"steps": 1, "omega_step_deg": 0})
@@ -52,9 +44,12 @@ class ScreeningDataCollectionPanel(QWidget):
self.screening_type.addItem("2 images every 45°", {"steps": 2, "omega_step_deg": 45})
self.screening_type.addItem("4 images every 45°", {"steps": 4, "omega_step_deg": 45})
- grid_layout.addWidget(self.screening_type, 5, 0, 1, 3)
+ self._layout.addWidget(self.screening_type, 6, 0, 1, 5)
+
+ self._layout.addWidget(QLabel("Measurement", parent=self), 8, 0, 1, 5)
+
horizontal_spacer = QSpacerItem(
40, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding
)
- grid_layout.addItem(horizontal_spacer, 6, 0, 1, 3)
+ self._layout.addItem(horizontal_spacer, 9, 0, 1, 5)