From 00df37d15e9adbbb87830d9819374dbccfb67e7e Mon Sep 17 00:00:00 2001 From: Conor Finn <conor.finn@stfc.ac.uk> Date: Thu, 20 Feb 2020 14:52:14 +0000 Subject: [PATCH] RE #27965 Add warning if focusing > 10 workspaces --- .../tabs/focus/presenter.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py b/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py index a33e9b1d533..37e3f94b1c6 100644 --- a/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py +++ b/scripts/Engineering/gui/engineering_diffraction/tabs/focus/presenter.py @@ -14,6 +14,8 @@ from Engineering.gui.engineering_diffraction.tabs.common.cropping.cropping_widge from mantidqt.utils.asynchronous import AsyncTask from mantidqt.utils.observer_pattern import Observer +from qtpy.QtWidgets import QMessageBox + class FocusPresenter(object): def __init__(self, model, view): @@ -41,7 +43,8 @@ class FocusPresenter(object): return banks, spectrum_numbers = self._get_banks() focus_paths = self.view.get_focus_filenames() - self.start_focus_worker(focus_paths, banks, self.view.get_plot_output(), self.rb_num, spectrum_numbers) + if self._number_of_files_warning(focus_paths): + self.start_focus_worker(focus_paths, banks, self.view.get_plot_output(), self.rb_num, spectrum_numbers) def start_focus_worker(self, focus_paths, banks, plot_output, rb_num, spectrum_numbers=None): """ @@ -94,6 +97,16 @@ class FocusPresenter(object): return False return True + def _number_of_files_warning(self, paths): + if len(paths) > 10: # Just a guess on the warning for now. May change in future. + response = QMessageBox.warning( + self.view, 'Engineering Diffraction - Warning', + 'You are attempting to focus {} workspaces. This may take some time.\n\n Would you like to continue?' + .format(len(paths)), QMessageBox.Ok | QMessageBox.Cancel) + return response == QMessageBox.Ok + else: + return True + def _on_worker_error(self, _): self.emit_enable_button_signal() -- GitLab