diff --git a/gui/src/aaregui/scan_logic/raster_grid_manager.py b/gui/src/aaregui/scan_logic/raster_grid_manager.py index cf5026c2..d0cf7aeb 100644 --- a/gui/src/aaregui/scan_logic/raster_grid_manager.py +++ b/gui/src/aaregui/scan_logic/raster_grid_manager.py @@ -310,13 +310,45 @@ class RasterGridManager(QObject): @Slot() def run_grid_scan(self): - grid = copy.deepcopy(self.__active_grid) + ag = self.__active_grid + grid = RasterGridRequest( + dtz=ag.dtz, + transmission=ag.transmission, + file_prefix=ag.file_prefix, + exp_time_s=ag.exp_time_s, + n_x=ag.n_x, + n_y=ag.n_y, + grid_size_mm=Coordinate(x=ag.grid_size_mm.x, y=ag.grid_size_mm.y), + smargon=SmargonCoordinate( + sh_mm=Coordinate(x=ag.smargon.sh_mm.x, y=ag.smargon.sh_mm.y, z=ag.smargon.sh_mm.z), + phi_deg=ag.smargon.phi_deg, + chi_deg=ag.smargon.chi_deg, + ), + omega_deg=ag.omega_deg, + visible=ag.visible, + ) self.grid_scan.emit(grid) self.viewer_track_online.emit() @Slot() def run_grid_scan_auto(self): - grid = copy.deepcopy(self.__active_grid) + ag = self.__active_grid + grid = RasterGridRequest( + dtz=ag.dtz, + transmission=ag.transmission, + file_prefix=ag.file_prefix, + exp_time_s=ag.exp_time_s, + n_x=ag.n_x, + n_y=ag.n_y, + grid_size_mm=Coordinate(x=ag.grid_size_mm.x, y=ag.grid_size_mm.y), + smargon=SmargonCoordinate( + sh_mm=Coordinate(x=ag.smargon.sh_mm.x, y=ag.smargon.sh_mm.y, z=ag.smargon.sh_mm.z), + phi_deg=ag.smargon.phi_deg, + chi_deg=ag.smargon.chi_deg, + ), + omega_deg=ag.omega_deg, + visible=ag.visible, + ) self.grid_scan_auto.emit(grid) self.viewer_track_online.emit() @@ -449,12 +481,16 @@ class RasterGridManager(QObject): @Slot(int) def completed_grid_redo(self, row: int): if 0 <= row < len(self.__completed_grids): - copy_of_active_grid = copy.deepcopy(self.__completed_grids[row].request) - self.__active_grid.n_x = copy_of_active_grid.n_x - self.__active_grid.n_y = copy_of_active_grid.n_y - self.__active_grid.grid_size_mm = copy_of_active_grid.grid_size_mm - self.__active_grid.smargon = copy_of_active_grid.smargon - self.__active_grid.omega_deg = copy_of_active_grid.omega_deg + src = self.__completed_grids[row].request + self.__active_grid.n_x = src.n_x + self.__active_grid.n_y = src.n_y + self.__active_grid.grid_size_mm = Coordinate(x=src.grid_size_mm.x, y=src.grid_size_mm.y) + self.__active_grid.smargon = SmargonCoordinate( + sh_mm=Coordinate(x=src.smargon.sh_mm.x, y=src.smargon.sh_mm.y, z=src.smargon.sh_mm.z), + phi_deg=src.smargon.phi_deg, + chi_deg=src.smargon.chi_deg, + ) + self.__active_grid.omega_deg = src.omega_deg self.__active_grid.visible = True self.__completed_grids[row].request.visible = False