diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h index 1f5acd1e88feb5bffdef97d65c3f166b7e9e008e..7f1b49a8beb632a59f6b0bdb896f17403a5a8df1 100644 --- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h +++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h @@ -35,6 +35,12 @@ namespace MantidWidgets { class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS IMuonFitFunctionControl { public: virtual ~IMuonFitFunctionControl() {} + virtual void setFunction(const QString &funcString) = 0; + virtual void runFit() = 0; + virtual void runSequentialFit() = 0; + +signals: + void functionUpdateRequested(bool sequential); }; } // namespace MantidWidgets diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h index 6bdcbc12b2b80967e7d0e2163f59f5e4a838d976..ea10ead4530e69517d5309aa7cd9c5bd54e42be5 100644 --- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h +++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h @@ -49,6 +49,12 @@ public: void finishHandle(const Mantid::API::IAlgorithm *alg) override; /// Add an extra widget into the browser void addExtraWidget(QWidget *widget); + /// Set function externally + void setFunction(const QString &funcString) override; + /// Run a non-sequential fit + void runFit() override; + /// Run a sequential fit + void runSequentialFit() override; public slots: /// Perform the fit algorithm diff --git a/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp b/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp index f66958033451cba75fc8d5ed52bfaf7af4a8ebbe..3de426563148961e74133afa726236d2e717081a 100644 --- a/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp +++ b/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp @@ -241,10 +241,15 @@ void MuonFitPropertyBrowser::populateFunctionNames() { } } +/** + * Updates function prior to running a fit + */ +void MuonFitPropertyBrowser::fit() { emit functionUpdateRequested(false); } + /** * Creates an instance of Fit algorithm, sets its properties and launches it. */ -void MuonFitPropertyBrowser::fit() { +void MuonFitPropertyBrowser::runFit() { std::string wsName = workspaceName(); if (wsName.empty()) { @@ -303,7 +308,16 @@ void MuonFitPropertyBrowser::fit() { /** * Show sequential fit dialog. */ -void MuonFitPropertyBrowser::sequentialFit() { emit sequentialFitRequested(); } +void MuonFitPropertyBrowser::runSequentialFit() { + emit sequentialFitRequested(); +} + +/** + * Update function prior to running a sequential fit + */ +void MuonFitPropertyBrowser::sequentialFit() { + emit functionUpdateRequested(true); +} /** * Connect to the AnalysisDataService when shown @@ -356,5 +370,13 @@ void MuonFitPropertyBrowser::addExtraWidget(QWidget *widget) { } } +/** + * Called externally to set the function via a string + * @param funcString :: [input] Fit function as a string + */ +void MuonFitPropertyBrowser::setFunction(const QString &funcString) { + throw std::runtime_error("Not implemented yet!"); +} + } // MantidQt } // API