diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h index c89adb98b1243722541ae8ed799ce3fd6172c165..23000c0dd31bf35bc8393cc5b082e6fc69b288a4 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h +++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h @@ -56,7 +56,7 @@ public: /// Destructor ~MultiDatasetFit(); /// Get the name of the output workspace - QString getOutputWorkspaceName() const {return QString::fromStdString(m_outputWorkspaceName);} + QString getOutputWorkspaceName() const; /// Workspace name for the i-th spectrum std::string getWorkspaceName(int i) const; /// Workspace index of the i-th spectrum @@ -90,6 +90,7 @@ private slots: void enableRange(); void checkFittingType(); void setLogNames(); + void invalidateOutput(); protected: virtual void initLayout(); diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp index a8d5f4f86c76c36ba01a247d352fab6555c62b72..f01eef28c0a5896285e356750df574f41f4f5db4 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp +++ b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp @@ -76,6 +76,7 @@ void MultiDatasetFit::initLayout() connect(m_dataController,SIGNAL(dataTableUpdated()),m_plotController,SLOT(tableUpdated())); connect(m_dataController,SIGNAL(dataSetUpdated(int)),m_plotController,SLOT(updateRange(int))); connect(m_dataController,SIGNAL(dataTableUpdated()),this,SLOT(setLogNames())); + connect(m_dataController,SIGNAL(dataTableUpdated()),this,SLOT(invalidateOutput())); connect(m_plotController,SIGNAL(fittingRangeChanged(int, double, double)),m_dataController,SLOT(setFittingRange(int, double, double))); connect(m_uiForm.cbShowDataErrors,SIGNAL(toggled(bool)),m_plotController,SLOT(showDataErrors(bool))); connect(m_uiForm.btnToVisibleRange,SIGNAL(clicked()),m_plotController,SLOT(resetRange())); @@ -150,6 +151,12 @@ void MultiDatasetFit::createPlotToolbar() } +/// Get the name of the output workspace +QString MultiDatasetFit::getOutputWorkspaceName() const +{ + return QString::fromStdString(m_outputWorkspaceName); +} + /// Create a multi-domain function to fit all the spectra in the data table. boost::shared_ptr<Mantid::API::IFunction> MultiDatasetFit::createFunction() const { @@ -236,7 +243,14 @@ void MultiDatasetFit::fitSimultaneous() fit->setPropertyValue("Output",m_outputWorkspaceName); m_fitOptionsBrowser->setProperty("Output","out"); } - m_outputWorkspaceName += "_Workspaces"; + if (n == 1) + { + m_outputWorkspaceName += "_Workspace"; + } + else + { + m_outputWorkspaceName += "_Workspaces"; + } m_fitRunner.reset( new API::AlgorithmRunner() ); connect( m_fitRunner.get(),SIGNAL(algorithmComplete(bool)), this, SLOT(finishFit(bool)), Qt::QueuedConnection ); @@ -599,5 +613,13 @@ void MultiDatasetFit::setLogNames() } } +/// Invalidate the previous fit output +void MultiDatasetFit::invalidateOutput() +{ + m_outputWorkspaceName = ""; + m_plotController->clear(); + m_plotController->update(); +} + } // CustomInterfaces } // MantidQt