From 2e6e4ea525ec39f23a37f85ff953880e9ff37dcb Mon Sep 17 00:00:00 2001 From: Silke Schomann Date: Tue, 20 May 2025 08:59:35 +0100 Subject: [PATCH 1/3] Fix for crash when changing GDOS --- .../plot_window/plot_figure_manager.py | 2 +- src/mslice/plotting/plot_window/slice_plot.py | 2 +- .../presenters/cut_plotter_presenter.py | 35 +++++++++++++------ 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/mslice/plotting/plot_window/plot_figure_manager.py b/src/mslice/plotting/plot_window/plot_figure_manager.py index f0e11e56..073637c4 100644 --- a/src/mslice/plotting/plot_window/plot_figure_manager.py +++ b/src/mslice/plotting/plot_window/plot_figure_manager.py @@ -25,7 +25,7 @@ def release_active_interactive_cuts_on_slice_plots() -> None: action_icuts = plot_handler.plot_window.action_interactive_cuts if not action_icuts.isChecked(): continue - plot_handler.toggle_interactive_cuts() + plot_handler.toggle_interactive_cuts(True) action_icuts.setChecked(False) diff --git a/src/mslice/plotting/plot_window/slice_plot.py b/src/mslice/plotting/plot_window/slice_plot.py index aa1073ea..4e97f172 100644 --- a/src/mslice/plotting/plot_window/slice_plot.py +++ b/src/mslice/plotting/plot_window/slice_plot.py @@ -521,7 +521,7 @@ def _update_lines(self): self._canvas.draw() def toggle_interactive_cuts(self, store=True): - self.toggle_icut_button(store) + self.toggle_icut_button(True) self.toggle_icut() def toggle_icut_button(self, store=True): diff --git a/src/mslice/presenters/cut_plotter_presenter.py b/src/mslice/presenters/cut_plotter_presenter.py index 2b3f876a..c8795de6 100644 --- a/src/mslice/presenters/cut_plotter_presenter.py +++ b/src/mslice/presenters/cut_plotter_presenter.py @@ -9,7 +9,7 @@ from mslice.models.cut.cut_functions import compute_cut from mslice.models.labels import generate_legend from mslice.models.workspacemanager.workspace_algorithms import export_workspace_to_ads -from mslice.models.workspacemanager.workspace_provider import get_workspace_handle +from mslice.models.workspacemanager.workspace_provider import add_workspace, get_workspace_handle import mslice.plotting.pyplot as plt from mslice.presenters.presenter_utility import PresenterUtility from mslice.plotting.plot_window.overplot_interface import ( @@ -18,7 +18,6 @@ ) from mslice.models.powder.powder_functions import compute_powder_line from mslice.models.intensity_correction_algs import sample_temperature -from mslice.models.workspacemanager.workspace_provider import add_workspace from mslice.models.axis import Axis from mslice.util.intensity_correction import IntensityType, IntensityCache import warnings @@ -350,24 +349,40 @@ def _show_intensity(self, cut_cache, intensity_correction): self._temp_cut_cache = [] def show_scattering_function(self, axes): - self._show_intensity( - self._cut_cache_dict[axes], IntensityType.SCATTERING_FUNCTION - ) + for key, value in self._cut_cache_dict.items(): + if key == axes: + self._show_intensity(value, IntensityType.SCATTERING_FUNCTION) + break def show_dynamical_susceptibility(self, axes): - self._show_intensity(self._cut_cache_dict[axes], IntensityType.CHI) + for key, value in self._cut_cache_dict.items(): + if key == axes: + self._show_intensity(value, IntensityType.CHI) + break def show_dynamical_susceptibility_magnetic(self, axes): - self._show_intensity(self._cut_cache_dict[axes], IntensityType.CHI_MAGNETIC) + for key, value in self._cut_cache_dict.items(): + if key == axes: + self._show_intensity(value, IntensityType.CHI_MAGNETIC) + break def show_d2sigma(self, axes): - self._show_intensity(self._cut_cache_dict[axes], IntensityType.D2SIGMA) + for key, value in self._cut_cache_dict.items(): + if key == axes: + self._show_intensity(value, IntensityType.D2SIGMA) + break def show_symmetrised(self, axes): - self._show_intensity(self._cut_cache_dict[axes], IntensityType.SYMMETRISED) + for key, value in self._cut_cache_dict.items(): + if key == axes: + self._show_intensity(value, IntensityType.SYMMETRISED) + break def show_gdos(self, axes): - self._show_intensity(self._cut_cache_dict[axes], IntensityType.GDOS) + for key, value in self._cut_cache_dict.items(): + if key == axes: + self._show_intensity(value, IntensityType.GDOS) + break def set_sample_temperature(self, axes, ws_name, temp): cut_dict = {} From 42275e00d535b691f2795da4104d3297b5744b10 Mon Sep 17 00:00:00 2001 From: Silke Schomann Date: Fri, 23 May 2025 09:25:02 +0100 Subject: [PATCH 2/3] Remove obsolete store parameter --- src/mslice/plotting/plot_window/interactive_cut.py | 2 +- src/mslice/plotting/plot_window/plot_figure_manager.py | 2 +- src/mslice/plotting/plot_window/slice_plot.py | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mslice/plotting/plot_window/interactive_cut.py b/src/mslice/plotting/plot_window/interactive_cut.py index bed39920..4acc6e2f 100644 --- a/src/mslice/plotting/plot_window/interactive_cut.py +++ b/src/mslice/plotting/plot_window/interactive_cut.py @@ -160,7 +160,7 @@ def flip_axis(self): self.plot_cut(*self.rect.extents) def window_closing(self): - self.slice_plot.toggle_interactive_cuts(False) + self.slice_plot.toggle_interactive_cuts() self.slice_plot.plot_window.action_interactive_cuts.setChecked(False) def refresh_rect_selector(self, ax): diff --git a/src/mslice/plotting/plot_window/plot_figure_manager.py b/src/mslice/plotting/plot_window/plot_figure_manager.py index 073637c4..f0e11e56 100644 --- a/src/mslice/plotting/plot_window/plot_figure_manager.py +++ b/src/mslice/plotting/plot_window/plot_figure_manager.py @@ -25,7 +25,7 @@ def release_active_interactive_cuts_on_slice_plots() -> None: action_icuts = plot_handler.plot_window.action_interactive_cuts if not action_icuts.isChecked(): continue - plot_handler.toggle_interactive_cuts(True) + plot_handler.toggle_interactive_cuts() action_icuts.setChecked(False) diff --git a/src/mslice/plotting/plot_window/slice_plot.py b/src/mslice/plotting/plot_window/slice_plot.py index 4e97f172..55a8ee35 100644 --- a/src/mslice/plotting/plot_window/slice_plot.py +++ b/src/mslice/plotting/plot_window/slice_plot.py @@ -520,11 +520,11 @@ def _update_lines(self): self.update_legend() self._canvas.draw() - def toggle_interactive_cuts(self, store=True): - self.toggle_icut_button(True) + def toggle_interactive_cuts(self): + self.toggle_icut_button() self.toggle_icut() - def toggle_icut_button(self, store=True): + def toggle_icut_button(self): if not self.icut: self.manager.picking_connected(False) if self.plot_window.action_zoom_in.isChecked(): @@ -545,7 +545,7 @@ def toggle_icut_button(self, store=True): self.plot_window.action_flip_axis.setVisible(False) self._canvas.setCursor(Qt.ArrowCursor) self.icut.set_icut_intensity_category(self.intensity_type) - self.icut.store_icut_cut_upon_toggle_and_reset(store) + self.icut.store_icut_cut_upon_toggle_and_reset(True) self.plot_window.menu_intensity.setDisabled(False) def toggle_icut(self): From a211b3edbe0d39087bd52d9765bf05578a874f19 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 08:27:40 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/mslice/presenters/cut_plotter_presenter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mslice/presenters/cut_plotter_presenter.py b/src/mslice/presenters/cut_plotter_presenter.py index c8795de6..c8eb0d8d 100644 --- a/src/mslice/presenters/cut_plotter_presenter.py +++ b/src/mslice/presenters/cut_plotter_presenter.py @@ -9,7 +9,10 @@ from mslice.models.cut.cut_functions import compute_cut from mslice.models.labels import generate_legend from mslice.models.workspacemanager.workspace_algorithms import export_workspace_to_ads -from mslice.models.workspacemanager.workspace_provider import add_workspace, get_workspace_handle +from mslice.models.workspacemanager.workspace_provider import ( + add_workspace, + get_workspace_handle, +) import mslice.plotting.pyplot as plt from mslice.presenters.presenter_utility import PresenterUtility from mslice.plotting.plot_window.overplot_interface import (