Skip to content
Snippets Groups Projects
Commit 2a2365d3 authored by Robert Applin's avatar Robert Applin
Browse files

Refs #25074. Move std::find to model

parent dbcec645
No related branches found
No related tags found
No related merge requests found
......@@ -44,7 +44,9 @@ public:
virtual void setResolutionWSSuffices(QStringList const &suffices) = 0;
virtual void setResolutionFBSuffices(QStringList const &suffices) = 0;
virtual void setWorkspaceSelectorIndex(QString const &workspaceName) = 0;
virtual bool isSampleWorkspaceSelectorVisible() const = 0;
virtual void
setSampleWorkspaceSelectorIndex(QString const &workspaceName) = 0;
virtual void readSettings(QSettings const &settings) = 0;
virtual UserInputValidator &validate(UserInputValidator &validator) = 0;
......
......@@ -65,6 +65,8 @@ IndirectFitDataPresenter::IndirectFitDataPresenter(
std::size_t)));
}
IndirectFitDataPresenter::~IndirectFitDataPresenter() { observeReplace(false); }
IIndirectFitDataView const *IndirectFitDataPresenter::getView() const {
return m_view;
}
......@@ -144,10 +146,18 @@ void IndirectFitDataPresenter::loadSettings(const QSettings &settings) {
void IndirectFitDataPresenter::replaceHandle(const std::string &workspaceName,
const Workspace_sptr &workspace) {
UNUSED_ARG(workspace)
const auto names = m_model->getWorkspaceNames();
const auto iter = std::find(names.begin(), names.end(), workspaceName);
if (iter != names.end() && !m_view->isMultipleDataTabSelected())
m_view->setWorkspaceSelectorIndex(QString::fromStdString(workspaceName));
if (m_model->hasWorkspace(workspaceName) &&
!m_view->isMultipleDataTabSelected())
selectReplacedWorkspace(QString::fromStdString(workspaceName));
}
void IndirectFitDataPresenter::selectReplacedWorkspace(
const QString &workspaceName) {
if (m_view->isSampleWorkspaceSelectorVisible()) {
setModelWorkspace(workspaceName);
emit dataChanged();
} else
m_view->setSampleWorkspaceSelectorIndex(workspaceName);
}
UserInputValidator &
......
......@@ -32,7 +32,7 @@ public:
IndirectFitDataPresenter(
IndirectFittingModel *model, IIndirectFitDataView *view,
std::unique_ptr<IndirectDataTablePresenter> tablePresenter);
~IndirectFitDataPresenter() { observeReplace(false); }
~IndirectFitDataPresenter();
void setSampleWSSuffices(const QStringList &suffices);
void setSampleFBSuffices(const QStringList &suffices);
......@@ -92,6 +92,8 @@ private:
getAddWorkspaceDialog(QWidget *parent) const;
void updateDataInTable(std::size_t dataIndex);
void selectReplacedWorkspace(const QString &workspaceName);
std::unique_ptr<IAddWorkspaceDialog> m_addWorkspaceDialog;
IndirectFittingModel *m_model;
PrivateFittingData m_singleData;
......
......@@ -97,7 +97,11 @@ void IndirectFitDataView::setResolutionFBSuffices(const QStringList &suffices) {
m_dataForm->dsResolution->setFBSuffixes(suffices);
}
void IndirectFitDataView::setWorkspaceSelectorIndex(
bool IndirectFitDataView::isSampleWorkspaceSelectorVisible() const {
return m_dataForm->dsSample->isWorkspaceSelectorVisible();
}
void IndirectFitDataView::setSampleWorkspaceSelectorIndex(
const QString &workspaceName) {
m_dataForm->dsSample->setWorkspaceSelectorIndex(workspaceName);
m_dataForm->dsSample->setSelectorIndex(1);
......
......@@ -45,7 +45,8 @@ public:
virtual void setResolutionWSSuffices(const QStringList &suffices) override;
virtual void setResolutionFBSuffices(const QStringList &suffices) override;
void setWorkspaceSelectorIndex(const QString &workspaceName);
bool isSampleWorkspaceSelectorVisible() const override;
void setSampleWorkspaceSelectorIndex(const QString &workspaceName) override;
void readSettings(const QSettings &settings) override;
UserInputValidator &validate(UserInputValidator &validator) override;
......
......@@ -339,6 +339,13 @@ PrivateFittingData::operator=(PrivateFittingData &&fittingData) {
IndirectFittingModel::IndirectFittingModel()
: m_previousModelSelected(false), m_fittingMode(FittingMode::SEQUENTIAL) {}
bool IndirectFittingModel::hasWorkspace(
std::string const &workspaceName) const {
auto const names = getWorkspaceNames();
auto const iter = std::find(names.begin(), names.end(), workspaceName);
return iter != names.end();
}
MatrixWorkspace_sptr
IndirectFittingModel::getWorkspace(std::size_t index) const {
if (index < m_fittingData.size())
......
......@@ -47,6 +47,7 @@ public:
IndirectFittingModel();
virtual ~IndirectFittingModel() = default;
bool hasWorkspace(std::string const &workspaceName) const;
virtual Mantid::API::MatrixWorkspace_sptr
getWorkspace(std::size_t index) const;
Spectra getSpectra(std::size_t index) const;
......@@ -117,8 +118,6 @@ public:
std::size_t spectrum) const;
std::string getOutputBasename() const;
std::vector<std::string> getWorkspaceNames() const;
void cleanFailedRun(Mantid::API::IAlgorithm_sptr fittingAlgorithm);
void cleanFailedSingleRun(Mantid::API::IAlgorithm_sptr fittingAlgorithm,
std::size_t index);
......@@ -142,6 +141,8 @@ protected:
void removeFittingData(std::size_t index);
private:
std::vector<std::string> getWorkspaceNames() const;
void removeWorkspaceFromFittingData(std::size_t const &index);
Mantid::API::IAlgorithm_sptr
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment