From 68b0dcf0ca498a874fb49ab0c318b90dc8e8b95f Mon Sep 17 00:00:00 2001 From: Richard Waite Date: Mon, 27 Sep 2021 17:08:35 +0100 Subject: [PATCH 1/4] store ws name in sliceviewer model --- qt/python/mantidqt/widgets/sliceviewer/model.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/qt/python/mantidqt/widgets/sliceviewer/model.py b/qt/python/mantidqt/widgets/sliceviewer/model.py index 7d80504c215a..a2cfb2a0d58e 100644 --- a/qt/python/mantidqt/widgets/sliceviewer/model.py +++ b/qt/python/mantidqt/widgets/sliceviewer/model.py @@ -38,6 +38,7 @@ class SliceViewerModel: def __init__(self, ws): # reference to the workspace requested to be viewed self._ws = ws + self._ws_name = ws.name() if isinstance(ws, MatrixWorkspace): if ws.getNumberHistograms() < 2: raise ValueError("workspace must contain at least 2 spectrum") @@ -53,10 +54,9 @@ def __init__(self, ws): else: raise ValueError("only works for MatrixWorkspace and MDWorkspace") - wsname = self.get_ws_name() - self._rebinned_name = wsname + '_svrebinned' - self._xcut_name, self._ycut_name = wsname + '_cut_x', wsname + '_cut_y' - self._roi_name = wsname + '_roi' + self._rebinned_name = self._ws_name + '_svrebinned' + self._xcut_name, self._ycut_name = self._ws_name + '_cut_x', self._ws_name + '_cut_y' + self._roi_name = self._ws_name + '_roi' ws_type = self.get_ws_type() if ws_type == WS_TYPE.MDE: @@ -128,7 +128,7 @@ def can_support_dynamic_rebinning(self) -> bool: def get_ws_name(self) -> str: """Return the name of the workspace being viewed""" - return self._ws.name() + return self._ws_name def get_frame(self) -> SpecialCoordinateSystem: """Return the coordinate system of the workspace""" @@ -139,7 +139,7 @@ def get_title(self, ws_name=None) -> str: of the model's workspace if none supplied. """ if not ws_name: - ws_name = self.get_ws_name() + ws_name = self.ws_name return f'Sliceviewer - {ws_name}' def get_ws_MDE(self, @@ -497,7 +497,7 @@ def export_pixel_cut_to_workspace_matrix(self, slicepoint, bin_params, pos: tupl return help_msg def workspace_equals(self, ws_name): - return str(self._get_ws()) == ws_name + return self._ws_name == ws_name # private api def _get_ws(self): From ecd883c5f18fe1d97ec84583b4f7386b13793e3d Mon Sep 17 00:00:00 2001 From: Tom Hampson Date: Tue, 28 Sep 2021 15:12:27 +0100 Subject: [PATCH 2/4] fix typo in _ws_name member --- qt/python/mantidqt/widgets/sliceviewer/model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qt/python/mantidqt/widgets/sliceviewer/model.py b/qt/python/mantidqt/widgets/sliceviewer/model.py index a2cfb2a0d58e..d1ed51902061 100644 --- a/qt/python/mantidqt/widgets/sliceviewer/model.py +++ b/qt/python/mantidqt/widgets/sliceviewer/model.py @@ -139,7 +139,7 @@ def get_title(self, ws_name=None) -> str: of the model's workspace if none supplied. """ if not ws_name: - ws_name = self.ws_name + ws_name = self._ws_name return f'Sliceviewer - {ws_name}' def get_ws_MDE(self, From 053b7b5d9fd6033f4b1e8d7596afe5353d41ce5a Mon Sep 17 00:00:00 2001 From: Tom Hampson Date: Tue, 28 Sep 2021 15:48:34 +0100 Subject: [PATCH 3/4] check model._ws_name when deleting workspace --- qt/python/mantidqt/widgets/sliceviewer/presenter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qt/python/mantidqt/widgets/sliceviewer/presenter.py b/qt/python/mantidqt/widgets/sliceviewer/presenter.py index 4abee0abe6ec..e586dd32f294 100644 --- a/qt/python/mantidqt/widgets/sliceviewer/presenter.py +++ b/qt/python/mantidqt/widgets/sliceviewer/presenter.py @@ -443,7 +443,7 @@ def rename_workspace(self, old_name, new_name): self.view.emit_rename(self.model.get_title(new_name)) def delete_workspace(self, ws_name): - if ws_name == str(self.model._ws): + if ws_name == self.model.get_ws_name(): self.view.emit_close() def ADS_cleared(self): From 062b065aa3093e408ed664257bb5c51b8229d901 Mon Sep 17 00:00:00 2001 From: Tom Hampson Date: Tue, 28 Sep 2021 16:28:17 +0100 Subject: [PATCH 4/4] update sliceviewer model ws name on ws rename --- qt/python/mantidqt/widgets/sliceviewer/model.py | 3 +++ qt/python/mantidqt/widgets/sliceviewer/presenter.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/qt/python/mantidqt/widgets/sliceviewer/model.py b/qt/python/mantidqt/widgets/sliceviewer/model.py index d1ed51902061..096723475099 100644 --- a/qt/python/mantidqt/widgets/sliceviewer/model.py +++ b/qt/python/mantidqt/widgets/sliceviewer/model.py @@ -126,6 +126,9 @@ def can_support_dynamic_rebinning(self) -> bool: return ws_type == WS_TYPE.MDE or (ws_type == WS_TYPE.MDH and self._get_ws().hasOriginalWorkspace( 0) and self._get_ws().getOriginalWorkspace(0).getNumDims() == self._get_ws().getNumDims()) + def set_ws_name(self, new_name): + self._ws_name = new_name + def get_ws_name(self) -> str: """Return the name of the workspace being viewed""" return self._ws_name diff --git a/qt/python/mantidqt/widgets/sliceviewer/presenter.py b/qt/python/mantidqt/widgets/sliceviewer/presenter.py index e586dd32f294..11bacfa4d892 100644 --- a/qt/python/mantidqt/widgets/sliceviewer/presenter.py +++ b/qt/python/mantidqt/widgets/sliceviewer/presenter.py @@ -439,7 +439,8 @@ def refresh_view(self): ws.unlock() def rename_workspace(self, old_name, new_name): - if str(self.model._get_ws()) == old_name: + if self.model.get_ws_name() == old_name: + self.model.set_ws_name(new_name) self.view.emit_rename(self.model.get_title(new_name)) def delete_workspace(self, ws_name):