diff --git a/qt/python/mantidqtinterfaces/mantidqtinterfaces/Engineering/gui/engineering_diffraction/tabs/fitting/plotting/EngDiff_fitpropertybrowser.py b/qt/python/mantidqtinterfaces/mantidqtinterfaces/Engineering/gui/engineering_diffraction/tabs/fitting/plotting/EngDiff_fitpropertybrowser.py index 8f2e750eb4c5..379495977b49 100644 --- a/qt/python/mantidqtinterfaces/mantidqtinterfaces/Engineering/gui/engineering_diffraction/tabs/fitting/plotting/EngDiff_fitpropertybrowser.py +++ b/qt/python/mantidqtinterfaces/mantidqtinterfaces/Engineering/gui/engineering_diffraction/tabs/fitting/plotting/EngDiff_fitpropertybrowser.py @@ -35,6 +35,7 @@ def __init__(self, canvas, toolbar_manager, parent=None): self.fit_enabled_notifier = GenericObservable() self.fit_started_notifier = GenericObservable() self.algorithmStarted.connect(self.fitting_started_slot) + self.algorithmFailed.connect(self.fitting_failed_slot) def set_output_window_names(self): """ @@ -158,6 +159,13 @@ def fitting_done_slot(self, name): self.save_current_setup(self.workspaceName()) self.fit_notifier.notify_subscribers([self.get_fitprop()]) + @Slot() + def fitting_failed_slot(self): + """ + This is called after Fit fails due to an acception thrown. + """ + self.fit_notifier.notify_subscribers([]) + @Slot() def function_changed_slot(self): """ diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/FitPropertyBrowser.h b/qt/widgets/common/inc/MantidQtWidgets/Common/FitPropertyBrowser.h index c0e6ecb34065..5365acd2e249 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/FitPropertyBrowser.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/FitPropertyBrowser.h @@ -333,6 +333,7 @@ public slots: void currentChanged() const; void functionRemoved(); void algorithmFinished(const QString & /*_t1*/); + void algorithmFailed(); void algorithmStarted(const QString & /*_t1*/); void workspaceIndexChanged(int index); void updatePlotSpectrum(int index); diff --git a/qt/widgets/common/src/FitPropertyBrowser.cpp b/qt/widgets/common/src/FitPropertyBrowser.cpp index 65ea65c5bb76..ab43114d62ae 100644 --- a/qt/widgets/common/src/FitPropertyBrowser.cpp +++ b/qt/widgets/common/src/FitPropertyBrowser.cpp @@ -1641,7 +1641,7 @@ void FitPropertyBrowser::doFit(int maxIterations) { QCoreApplication::processEvents(); } if (!result.error().empty()) { - emit algorithmFinished(QString()); + emit algorithmFailed(); } } catch (const std::exception &e) { QString msg = "Fit algorithm failed.\n\n" + QString(e.what()) + "\n";