GUI: remove deep copy of raster grid due to recursive copy error

This commit is contained in:
2025-11-25 09:06:05 +01:00
parent 63a0c519e3
commit 73c8f1e3be
@@ -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