From 61fba73c435e935276d2a3b5a37924d6ca975640 Mon Sep 17 00:00:00 2001 From: Anthony Lim Date: Tue, 28 Sep 2021 11:59:15 +0100 Subject: [PATCH] refs #32645 fix muon gUI crash withnew instrument and phasequad --- docs/source/release/v6.2.0/muon.rst | 1 + .../Muon/GUI/Common/contexts/muon_group_pair_context.py | 4 ++++ .../FrequencyDomainAnalysis/frequency_domain_analysis.py | 8 ++++++++ scripts/Muon/GUI/MuonAnalysis/muon_analysis_2.py | 8 ++++++++ 4 files changed, 21 insertions(+) diff --git a/docs/source/release/v6.2.0/muon.rst b/docs/source/release/v6.2.0/muon.rst index 3e39cfdd9457..87fbb0a3dfe5 100644 --- a/docs/source/release/v6.2.0/muon.rst +++ b/docs/source/release/v6.2.0/muon.rst @@ -85,6 +85,7 @@ Bugfixes - The attribute values in a :ref:`Chebyshev ` fitting function will no longer reset after performing a simultaneous fit. - Fixed a crash caused by fitting to rebinned :ref:`PhaseQuad ` data. - When :ref:`PhaseQuad ` data is rebinned it now divides by the fractional change in the bin size (to keep the asymmetry to about 0.3). +- Fixed a bug that is caused by changing instrument and loading a run, after creating a phasequad. ALC --- diff --git a/scripts/Muon/GUI/Common/contexts/muon_group_pair_context.py b/scripts/Muon/GUI/Common/contexts/muon_group_pair_context.py index faf0f3ca917a..3bb613fd9adc 100644 --- a/scripts/Muon/GUI/Common/contexts/muon_group_pair_context.py +++ b/scripts/Muon/GUI/Common/contexts/muon_group_pair_context.py @@ -176,6 +176,10 @@ def selected_groups_and_pairs(self): def clear(self): self.clear_groups() self.clear_pairs() + self.clear_phasequads() + + def clear_phasequads(self): + self._phasequad = [] def clear_groups(self): self._groups = [] diff --git a/scripts/Muon/GUI/FrequencyDomainAnalysis/frequency_domain_analysis.py b/scripts/Muon/GUI/FrequencyDomainAnalysis/frequency_domain_analysis.py index 627e3c126248..e2f28d0134ce 100644 --- a/scripts/Muon/GUI/FrequencyDomainAnalysis/frequency_domain_analysis.py +++ b/scripts/Muon/GUI/FrequencyDomainAnalysis/frequency_domain_analysis.py @@ -368,6 +368,11 @@ def setup_instrument_changed_notifier(self): self.context.data_context.instrumentNotifier.add_subscriber( self.home_tab.home_tab_widget.instrumentObserver) + self.clear_observer = GenericObserver(self.clear) + + self.context.data_context.instrumentNotifier.add_subscriber( + self.clear_observer) + self.context.data_context.instrumentNotifier.add_subscriber( self.load_widget.load_widget.instrumentObserver) @@ -389,6 +394,9 @@ def setup_instrument_changed_notifier(self): for observer in self.plot_widget.clear_plot_observers: self.context.data_context.instrumentNotifier.add_subscriber(observer) + def clear(self): + self.context.clear_context() + def setup_group_calculation_enable_notifier(self): self.grouping_tab_widget.group_tab_presenter.enable_editing_notifier.add_subscriber( self.enable_observer) diff --git a/scripts/Muon/GUI/MuonAnalysis/muon_analysis_2.py b/scripts/Muon/GUI/MuonAnalysis/muon_analysis_2.py index 306aa14a7e03..17872d2b5145 100644 --- a/scripts/Muon/GUI/MuonAnalysis/muon_analysis_2.py +++ b/scripts/Muon/GUI/MuonAnalysis/muon_analysis_2.py @@ -378,6 +378,11 @@ def setup_instrument_changed_notifier(self): self.context.data_context.instrumentNotifier.add_subscriber( self.home_tab.home_tab_widget.instrumentObserver) + self.clear_observer = GenericObserver(self.clear) + + self.context.data_context.instrumentNotifier.add_subscriber( + self.clear_observer) + self.context.data_context.instrumentNotifier.add_subscriber( self.load_widget.load_widget.instrumentObserver) @@ -396,6 +401,9 @@ def setup_instrument_changed_notifier(self): for observer in self.plot_widget.clear_plot_observers: self.context.data_context.instrumentNotifier.add_subscriber(observer) + def clear(self): + self.context.clear_context() + def setup_group_calculation_enable_notifier(self): self.grouping_tab_widget.group_tab_presenter.enable_editing_notifier.add_subscriber(