GUI: Fix logic to update grid scan size

This commit is contained in:
2025-06-30 14:41:35 +02:00
parent 9f29f3036f
commit a3d937fb07
2 changed files with 23 additions and 9 deletions
@@ -125,13 +125,17 @@ class RasterDataCollectionPanel(ScanSettingsPanel):
def exp_time_s(self, inp: float):
self.exp_time_updated.emit(inp)
@Slot(int, int)
def grid_scan_size_change(self, n_x: int, n_y: int):
@Slot(int, int, float, float)
def grid_scan_size_change(self, n_x: int, n_y: int, size_x_mm: float, size_y_mm: float):
self.__size_x = size_x_mm * 1000.0
self.__size_y = size_y_mm * 1000.0
self.__n_x = n_x
self.__n_y = n_y
self.update_grid_scan_size()
def update_grid_scan_size(self):
self.width_enter.update_value(self.__size_x)
self.height_enter.update_value(self.__size_y)
self.n_x_label.setText(str(self.__n_x))
self.size_x_label.setText(f"{self.__size_x * self.__n_x:.1f}")
self.n_y_label.setText(str(self.__n_y))
@@ -71,7 +71,7 @@ def normalize_angle(angle_deg: float) -> float:
class RasterGridManager(QObject):
grid_updated = Signal()
grid_scan = Signal(RasterGridRequest)
grid_scan_size_changed = Signal(int, int)
grid_scan_size_changed = Signal(int, int, float, float)
completed_grid_updated = Signal()
file_ready = Signal(str)
@@ -131,8 +131,7 @@ class RasterGridManager(QObject):
self.clear_active_grid()
if self.__beam_size_mm != s.geom.beam_size_mm:
self.__beam_size_mm = s.geom.beam_size_mm
self.__active_grid.grid_size_mm = Coordinate(x= 0.8 * self.__beam_size_mm.x,
y= 0.8 * self.__beam_size_mm.y)
self.update_grid_size(0.8 * self.__beam_size_mm.x, 0.8 * self.__beam_size_mm.y)
self.__geom = s.geom
def resize_active_grid(self, end_point: QPointF):
@@ -165,7 +164,10 @@ class RasterGridManager(QObject):
)
self.__active_grid.omega_deg = self.__geom.omega_deg
self.grid_scan_size_changed.emit(self.__active_grid.n_x, self.__active_grid.n_y)
self.grid_scan_size_changed.emit(self.__active_grid.n_x,
self.__active_grid.n_y,
self.__active_grid.grid_size_mm.x,
self.__active_grid.grid_size_mm.y)
def move_active_grid(self, delta: QPointF):
if not self._is_grid_visible(self.__active_grid):
@@ -185,7 +187,9 @@ class RasterGridManager(QObject):
def clear_active_grid(self):
self.__active_grid.n_x = 0
self.__active_grid.n_y = 0
self.grid_scan_size_changed.emit(self.__active_grid.n_x, self.__active_grid.n_y)
self.grid_scan_size_changed.emit(0,0,
self.__active_grid.grid_size_mm.x,
self.__active_grid.grid_size_mm.y)
def get_grid_coord(self, grid: RasterGridRequest, point: QPointF) -> Tuple[int, int]:
point_bl = self.__geom.picture_to_sample(Coordinate(x=point.x(), y=point.y()))
@@ -273,7 +277,10 @@ class RasterGridManager(QObject):
self.__active_grid.grid_size_mm = Coordinate(x=grid_size_mm_x, y=grid_size_mm_y)
self.grid_scan_size_changed.emit(self.__active_grid.n_x, self.__active_grid.n_y)
self.grid_scan_size_changed.emit(self.__active_grid.n_x,
self.__active_grid.n_y,
self.__active_grid.grid_size_mm.x,
self.__active_grid.grid_size_mm.y)
@Slot()
def run_grid_scan(self):
@@ -398,7 +405,10 @@ class RasterGridManager(QObject):
self.__active_grid.visible = True
self.__completed_grids[row].request.visible = False
self.grid_scan_size_changed.emit(self.__active_grid.n_x, self.__active_grid.n_y)
self.grid_scan_size_changed.emit(self.__active_grid.n_x,
self.__active_grid.n_y,
self.__active_grid.grid_size_mm.x,
self.__active_grid.grid_size_mm.y)
self.completed_grid_updated.emit()
def get_completed_grids(self) -> List[CompletedRasterGrid]: