From 69b0ca07458e6ae0c02b9553881e39368d60de73 Mon Sep 17 00:00:00 2001 From: Applin Date: Mon, 29 Apr 2024 12:26:11 +0100 Subject: [PATCH] Use std::vector instead of QStringList for datasets --- qt/python/mantidqt/mantidqt/_common.sip | 6 ++--- .../Inelastic/QENSFitting/FitDataModel.cpp | 2 +- .../FunctionTemplatePresenter.cpp | 6 +++-- .../FunctionTemplatePresenter.h | 4 +-- .../FunctionBrowser/FunctionTemplateView.cpp | 3 ++- .../FunctionBrowser/FunctionTemplateView.h | 7 +++-- .../MultiFunctionTemplateModel.cpp | 6 +++-- .../MultiFunctionTemplateModel.h | 4 +-- .../Common/EditLocalParameterDialog.h | 11 +++++--- .../MantidQtWidgets/Common/FunctionBrowser.h | 8 +++--- .../MantidQtWidgets/Common/FunctionModel.h | 8 +++--- .../Common/FunctionModelDataset.h | 13 +++++----- .../Common/FunctionMultiDomainPresenter.h | 8 +++--- .../MantidQtWidgets/Common/IFunctionBrowser.h | 10 ++++--- .../MantidQtWidgets/Common/IFunctionModel.h | 4 +-- .../common/src/EditLocalParameterDialog.cpp | 17 ++++++------ .../common/src/FitScriptGeneratorView.cpp | 4 +-- qt/widgets/common/src/FunctionBrowser.cpp | 10 ++++--- qt/widgets/common/src/FunctionModel.cpp | 26 ++++++++++--------- .../common/src/FunctionModelDataset.cpp | 10 +++---- .../src/FunctionMultiDomainPresenter.cpp | 17 +++++++----- 21 files changed, 103 insertions(+), 81 deletions(-) diff --git a/qt/python/mantidqt/mantidqt/_common.sip b/qt/python/mantidqt/mantidqt/_common.sip index 24583c80184b..669f9fcaf37e 100644 --- a/qt/python/mantidqt/mantidqt/_common.sip +++ b/qt/python/mantidqt/mantidqt/_common.sip @@ -911,10 +911,10 @@ public: void setNumberOfDatasets(int n); void setCurrentDataset(int i) throw(std::exception); int getCurrentDataset() const; - void setDatasets(const QStringList &datasetNames); - void addDatasets(const QStringList &names); + void setDatasets(const std::vector &datasetNames); + void addDatasets(const std::vector &names); void removeDatasets(QList indices); - QStringList getDatasetNames() const; + std::vector getDatasetNames() const; void setErrorsEnabled(bool enabled); void hideGlobalCheckbox(); void showGlobalCheckbox(); diff --git a/qt/scientific_interfaces/Inelastic/QENSFitting/FitDataModel.cpp b/qt/scientific_interfaces/Inelastic/QENSFitting/FitDataModel.cpp index 9ec9c19c6546..cff40b236884 100644 --- a/qt/scientific_interfaces/Inelastic/QENSFitting/FitDataModel.cpp +++ b/qt/scientific_interfaces/Inelastic/QENSFitting/FitDataModel.cpp @@ -63,7 +63,7 @@ FunctionModelSpectra FitDataModel::getSpectra(WorkspaceID workspaceID) const { FunctionModelDataset FitDataModel::getDataset(WorkspaceID workspaceID) const { auto const name = getWorkspace(workspaceID)->getName(); - return FunctionModelDataset(QString::fromStdString(name), getSpectra(workspaceID)); + return FunctionModelDataset(name, getSpectra(workspaceID)); } std::string FitDataModel::createDisplayName(WorkspaceID workspaceID) const { diff --git a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.cpp b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.cpp index a28301bbeef2..8a6a6134de52 100644 --- a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.cpp +++ b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.cpp @@ -72,9 +72,11 @@ void FunctionTemplatePresenter::setDatasets(const QListsetDatasets(datasets); } -QStringList FunctionTemplatePresenter::getDatasetNames() const { return m_model->getDatasetNames(); } +std::vector FunctionTemplatePresenter::getDatasetNames() const { return m_model->getDatasetNames(); } -QStringList FunctionTemplatePresenter::getDatasetDomainNames() const { return m_model->getDatasetDomainNames(); } +std::vector FunctionTemplatePresenter::getDatasetDomainNames() const { + return m_model->getDatasetDomainNames(); +} void FunctionTemplatePresenter::setErrorsEnabled(bool enabled) { m_view->setErrorsEnabled(enabled); } diff --git a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.h b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.h index 8a2d248c59f3..d3662e91aaae 100644 --- a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.h +++ b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplatePresenter.h @@ -81,8 +81,8 @@ class MANTIDQT_INELASTIC_DLL FunctionTemplatePresenter : public ITemplatePresent protected: virtual void updateView() = 0; - QStringList getDatasetNames() const; - QStringList getDatasetDomainNames() const; + std::vector getDatasetNames() const; + std::vector getDatasetDomainNames() const; void setLocalParameterValue(std::string const ¶meterName, int i, double value); void setLocalParameterTie(std::string const ¶meterName, int i, std::string const &tie); diff --git a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.cpp b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.cpp index 02bace145a54..26a99c1e39f5 100644 --- a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.cpp +++ b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.cpp @@ -165,7 +165,8 @@ void FunctionTemplateView::updateMultiDatasetParameters(const ITableWorkspace &t void FunctionTemplateView::updateParameters(const IFunction &fun) { m_presenter->updateParameters(fun); } void FunctionTemplateView::openEditLocalParameterDialog(std::string const ¶meterName, - QStringList const &datasetNames, QStringList const &domainNames, + std::vector const &datasetNames, + std::vector const &domainNames, QList const &values, QList const &fixes, QStringList const &ties, QStringList const &constraints) { auto dialog = diff --git a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.h b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.h index e47d14a35b5e..312e122e48a1 100644 --- a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.h +++ b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/FunctionTemplateView.h @@ -15,6 +15,9 @@ #include "MantidQtWidgets/Common/FunctionModelDataset.h" #include "MantidQtWidgets/Common/IndexTypes.h" +#include +#include + #include #include #include @@ -84,8 +87,8 @@ class MANTIDQT_INELASTIC_DLL FunctionTemplateView : public QWidget { void emitFunctionStructureChanged() { emit functionStructureChanged(); } - void openEditLocalParameterDialog(std::string const ¶meterName, QStringList const &datasetNames, - QStringList const &domainNames, QList const &values, + void openEditLocalParameterDialog(std::string const ¶meterName, std::vector const &datasetNames, + std::vector const &domainNames, QList const &values, QList const &fixes, QStringList const &ties, QStringList const &constraints); signals: diff --git a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.cpp b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.cpp index 5d985ccffaed..3bb9551ced26 100644 --- a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.cpp +++ b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.cpp @@ -59,9 +59,11 @@ void MultiFunctionTemplateModel::setDatasets(const QList & m_model->setDatasets(datasets); } -QStringList MultiFunctionTemplateModel::getDatasetNames() const { return m_model->getDatasetNames(); } +std::vector MultiFunctionTemplateModel::getDatasetNames() const { return m_model->getDatasetNames(); } -QStringList MultiFunctionTemplateModel::getDatasetDomainNames() const { return m_model->getDatasetDomainNames(); } +std::vector MultiFunctionTemplateModel::getDatasetDomainNames() const { + return m_model->getDatasetDomainNames(); +} void MultiFunctionTemplateModel::setCurrentDomainIndex(int i) { m_model->setCurrentDomainIndex(i); } diff --git a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.h b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.h index 80f9f7e3de72..f70f132b2b7a 100644 --- a/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.h +++ b/qt/scientific_interfaces/Inelastic/QENSFitting/FunctionBrowser/MultiFunctionTemplateModel.h @@ -47,8 +47,8 @@ class MANTIDQT_INELASTIC_DLL MultiFunctionTemplateModel : public IFunctionModel void setNumberDomains(int) override; int getNumberDomains() const override; void setDatasets(const QList &datasets) override; - QStringList getDatasetNames() const override; - QStringList getDatasetDomainNames() const override; + std::vector getDatasetNames() const override; + std::vector getDatasetDomainNames() const override; void setCurrentDomainIndex(int i) override; int currentDomainIndex() const override; diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/EditLocalParameterDialog.h b/qt/widgets/common/inc/MantidQtWidgets/Common/EditLocalParameterDialog.h index 96a960c74173..0224dc3fcfad 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/EditLocalParameterDialog.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/EditLocalParameterDialog.h @@ -12,6 +12,8 @@ #include "ui_EditLocalParameterDialog.h" #include +#include +#include #include @@ -28,9 +30,9 @@ class FunctionMultiDomainPresenter; class EXPORT_OPT_MANTIDQT_COMMON EditLocalParameterDialog : public MantidQt::API::MantidDialog { Q_OBJECT public: - EditLocalParameterDialog(QWidget *parent, const std::string &parName, const QStringList &datasetNames, - const QStringList &datasetDomainNames, const QList &values, const QList &fixes, - const QStringList &ties, const QStringList &constraints); + EditLocalParameterDialog(QWidget *parent, const std::string &parName, const std::vector &datasetNames, + const std::vector &datasetDomainNames, const QList &values, + const QList &fixes, const QStringList &ties, const QStringList &constraints); std::string getParameterName() const { return m_parName; } QList getValues() const; @@ -66,7 +68,8 @@ private slots: void setAllValuesToLog(); private: - void doSetup(const std::string &parName, const QStringList &datasetDomains, const QStringList &datasetDomainNames); + void doSetup(const std::string &parName, const std::vector &datasetDomains, + const std::vector &datasetDomainNames); bool eventFilter(QObject *obj, QEvent *ev) override; void showContextMenu(); void redrawCells(); diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionBrowser.h b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionBrowser.h index 00180d8393cd..db560df2e18e 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionBrowser.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionBrowser.h @@ -77,9 +77,9 @@ class EXPORT_OPT_MANTIDQT_COMMON FunctionBrowser : public QWidget, public IFunct /// Get the number of datasets int getNumberOfDatasets() const override; /// Get the names of datasets - QStringList getDatasetNames() const override; + std::vector getDatasetNames() const override; /// Get the names of the dataset domains - QStringList getDatasetDomainNames() const override; + std::vector getDatasetDomainNames() const override; /// Get value of a local parameter double getLocalParameterValue(std::string const ¶meterName, int i) const override; /// Set value of a local parameter @@ -137,12 +137,12 @@ public slots: // Handling of multiple datasets void setNumberOfDatasets(int n) override; - void setDatasets(const QStringList &datasetNames) override; + void setDatasets(const std::vector &datasetNames) override; void setDatasets(const QList &datasets) override; void resetLocalParameters(); void setCurrentDataset(int i) override; void removeDatasets(const QList &indices); - void addDatasets(const QStringList &names); + void addDatasets(const std::vector &names); protected: std::unique_ptr m_presenter; diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModel.h b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModel.h index 07cfde6fbd14..5d08f3296993 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModel.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModel.h @@ -44,12 +44,12 @@ class EXPORT_OPT_MANTIDQT_COMMON FunctionModel : public IFunctionModel { IFunction_sptr getSingleFunction(int index) const override; IFunction_sptr getCurrentFunction() const override; void setNumberDomains(int) override; - void setDatasets(const QStringList &datasetNames); + void setDatasets(const std::vector &datasetNames); void setDatasets(const QList &datasets) override; - void addDatasets(const QStringList &datasetNames); + void addDatasets(const std::vector &datasetNames); void removeDatasets(QList &indices); - QStringList getDatasetNames() const override; - QStringList getDatasetDomainNames() const override; + std::vector getDatasetNames() const override; + std::vector getDatasetDomainNames() const override; int getNumberDomains() const override; int currentDomainIndex() const override; void setCurrentDomainIndex(int) override; diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModelDataset.h b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModelDataset.h index c64dfa72a907..9b1eb705a60e 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModelDataset.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionModelDataset.h @@ -9,9 +9,8 @@ #include "DllOption.h" #include "MantidQtWidgets/Common/FunctionModelSpectra.h" -#include -#include -#include +#include +#include namespace MantidQt { namespace MantidWidgets { @@ -24,15 +23,15 @@ namespace MantidWidgets { */ struct EXPORT_OPT_MANTIDQT_COMMON FunctionModelDataset { public: - FunctionModelDataset(QString workspaceName, FunctionModelSpectra spectra); + FunctionModelDataset(std::string workspaceName, FunctionModelSpectra spectra); - inline QString datasetName() const noexcept { return m_workspaceName; } - QStringList domainNames() const; + inline std::string datasetName() const noexcept { return m_workspaceName; } + std::vector domainNames() const; inline std::size_t numberOfSpectra() const noexcept { return m_spectra.size().value; } private: - QString m_workspaceName; + std::string m_workspaceName; FunctionModelSpectra m_spectra; }; diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionMultiDomainPresenter.h b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionMultiDomainPresenter.h index 240f3a6bf150..fac1b21c7a86 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionMultiDomainPresenter.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/FunctionMultiDomainPresenter.h @@ -49,11 +49,11 @@ class EXPORT_OPT_MANTIDQT_COMMON FunctionMultiDomainPresenter : public QObject { void clearErrors(); boost::optional currentFunctionIndex() const; void setNumberOfDatasets(int); - void setDatasets(const QStringList &datasetNames); + void setDatasets(const std::vector &datasetNames); void setDatasets(const QList &datasets); - void addDatasets(const QStringList &datasetNames); - QStringList getDatasetNames() const; - QStringList getDatasetDomainNames() const; + void addDatasets(const std::vector &datasetNames); + std::vector getDatasetNames() const; + std::vector getDatasetDomainNames() const; int getNumberOfDatasets() const; int getCurrentDataset() const; void setCurrentDataset(int); diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionBrowser.h b/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionBrowser.h index 52231494c855..71da09d2d9bb 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionBrowser.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionBrowser.h @@ -12,10 +12,12 @@ #include "MantidAPI/IFunction_fwd.h" #include "MantidAPI/ITableWorkspace_fwd.h" +#include +#include + #include #include #include -#include namespace MantidQt { namespace MantidWidgets { @@ -34,7 +36,7 @@ class EXPORT_OPT_MANTIDQT_COMMON IFunctionBrowser { virtual void clearErrors() = 0; virtual void setFunction(std::string const &funStr) = 0; virtual void setNumberOfDatasets(int n) = 0; - virtual void setDatasets(const QStringList &datasetNames) = 0; + virtual void setDatasets(const std::vector &datasetNames) = 0; virtual void setDatasets(const QList &datasets) = 0; virtual Mantid::API::IFunction_sptr getGlobalFunction() = 0; virtual void updateMultiDatasetParameters(const Mantid::API::IFunction &fun) = 0; @@ -43,8 +45,8 @@ class EXPORT_OPT_MANTIDQT_COMMON IFunctionBrowser { virtual double getLocalParameterValue(std::string const ¶meterName, int i) const = 0; virtual std::string getLocalParameterTie(std::string const ¶meterName, int i) const = 0; virtual int getNumberOfDatasets() const = 0; - virtual QStringList getDatasetNames() const = 0; - virtual QStringList getDatasetDomainNames() const = 0; + virtual std::vector getDatasetNames() const = 0; + virtual std::vector getDatasetDomainNames() const = 0; virtual void setLocalParameterValue(std::string const ¶meterName, int i, double value) = 0; virtual void setLocalParameterFixed(std::string const ¶meterName, int i, bool fixed) = 0; virtual void setLocalParameterTie(std::string const ¶meterName, int i, std::string const &tie) = 0; diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionModel.h b/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionModel.h index 9d61514fcbeb..e987ac328c2b 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionModel.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/IFunctionModel.h @@ -46,8 +46,8 @@ class EXPORT_OPT_MANTIDQT_COMMON IFunctionModel { virtual IFunction_sptr getCurrentFunction() const = 0; virtual void setNumberDomains(int) = 0; virtual void setDatasets(const QList &datasets) = 0; - virtual QStringList getDatasetNames() const = 0; - virtual QStringList getDatasetDomainNames() const = 0; + virtual std::vector getDatasetNames() const = 0; + virtual std::vector getDatasetDomainNames() const = 0; virtual int getNumberDomains() const = 0; virtual int currentDomainIndex() const = 0; virtual void setCurrentDomainIndex(int) = 0; diff --git a/qt/widgets/common/src/EditLocalParameterDialog.cpp b/qt/widgets/common/src/EditLocalParameterDialog.cpp index e99f263f5ce6..d986dc6ce6d6 100644 --- a/qt/widgets/common/src/EditLocalParameterDialog.cpp +++ b/qt/widgets/common/src/EditLocalParameterDialog.cpp @@ -8,6 +8,7 @@ #include "MantidQtWidgets/Common/FunctionMultiDomainPresenter.h" #include "MantidQtWidgets/Common/LocalParameterItemDelegate.h" +#include "MantidQtWidgets/Common/ParseKeyValueString.h" #include #include @@ -35,10 +36,10 @@ namespace MantidQt::MantidWidgets { * @param constraints :: [input] Parameter constraints. */ EditLocalParameterDialog::EditLocalParameterDialog(QWidget *parent, const std::string &parName, - const QStringList &datasetNames, - const QStringList &datasetDomainNames, const QList &values, - const QList &fixes, const QStringList &ties, - const QStringList &constraints) + const std::vector &datasetNames, + const std::vector &datasetDomainNames, + const QList &values, const QList &fixes, + const QStringList &ties, const QStringList &constraints) : MantidDialog(parent), m_parName(parName), m_values(values), m_fixes(fixes), m_ties(std::move(ties)), m_constraints(std::move(constraints)) { assert(values.size() == datasetDomainNames.size()); @@ -58,9 +59,9 @@ EditLocalParameterDialog::EditLocalParameterDialog(QWidget *parent, const std::s * @param datasetNames :: [input] Names of workspaces being fitted. * @param datasetDomainNames :: [input] Names given to the domains being fitted. */ -void EditLocalParameterDialog::doSetup(const std::string &parName, const QStringList &datasetNames, - const QStringList &datasetDomainNames) { - m_logFinder = std::make_unique(datasetNames); +void EditLocalParameterDialog::doSetup(const std::string &parName, const std::vector &datasetNames, + const std::vector &datasetDomainNames) { + m_logFinder = std::make_unique(stdVectorToQStringList(datasetNames)); // Populate list of logs auto *logCombo = m_uiForm.logValueSelector->getLogComboBox(); for (const auto &logName : m_logFinder->getLogNames()) { @@ -78,7 +79,7 @@ void EditLocalParameterDialog::doSetup(const std::string &parName, const QString m_uiForm.tableWidget->insertRow(i); auto cell = new QTableWidgetItem(makeNumber(m_values[i])); m_uiForm.tableWidget->setItem(i, valueColumn, cell); - auto headerItem = new QTableWidgetItem(datasetDomainNames[i]); + auto headerItem = new QTableWidgetItem(QString::fromStdString(datasetDomainNames[i])); m_uiForm.tableWidget->setVerticalHeaderItem(i, headerItem); cell = new QTableWidgetItem(""); auto flags = cell->flags(); diff --git a/qt/widgets/common/src/FitScriptGeneratorView.cpp b/qt/widgets/common/src/FitScriptGeneratorView.cpp index 4058a1bd435b..9e7ca183733b 100644 --- a/qt/widgets/common/src/FitScriptGeneratorView.cpp +++ b/qt/widgets/common/src/FitScriptGeneratorView.cpp @@ -358,8 +358,8 @@ void FitScriptGeneratorView::openEditLocalParameterDialog( std::vector const &domainNames, std::vector const &values, std::vector const &fixes, std::vector const &ties, std::vector const &constraints) { m_editLocalParameterDialog = new EditLocalParameterDialog( - this, parameter, stdVectorToQStringList(workspaceNames), stdVectorToQStringList(domainNames), - convertToQList(values), convertToQList(fixes), stdVectorToQStringList(ties), stdVectorToQStringList(constraints)); + this, parameter, workspaceNames, domainNames, convertToQList(values), convertToQList(fixes), + stdVectorToQStringList(ties), stdVectorToQStringList(constraints)); connect(m_editLocalParameterDialog, SIGNAL(finished(int)), this, SLOT(onEditLocalParameterFinished(int))); diff --git a/qt/widgets/common/src/FunctionBrowser.cpp b/qt/widgets/common/src/FunctionBrowser.cpp index 0c3841544122..39b306e1f390 100644 --- a/qt/widgets/common/src/FunctionBrowser.cpp +++ b/qt/widgets/common/src/FunctionBrowser.cpp @@ -133,10 +133,10 @@ bool FunctionBrowser::hasFunction() const { return m_presenter->hasFunction(); } int FunctionBrowser::getNumberOfDatasets() const { return m_presenter->getNumberOfDatasets(); } /// Get the names of datasets -QStringList FunctionBrowser::getDatasetNames() const { return m_presenter->getDatasetNames(); } +std::vector FunctionBrowser::getDatasetNames() const { return m_presenter->getDatasetNames(); } /// Get the names of the dataset domains -QStringList FunctionBrowser::getDatasetDomainNames() const { return m_presenter->getDatasetDomainNames(); } +std::vector FunctionBrowser::getDatasetDomainNames() const { return m_presenter->getDatasetDomainNames(); } /// Set new number of the datasets /// @param n :: New value for the number of datasets. @@ -145,7 +145,9 @@ void FunctionBrowser::setNumberOfDatasets(int n) { m_presenter->setNumberOfDatas /// Sets the datasets being fitted. They will be displayed by the /// local parameter editing dialog. /// @param datasetNames :: Names of the datasets -void FunctionBrowser::setDatasets(const QStringList &datasetNames) { m_presenter->setDatasets(datasetNames); } +void FunctionBrowser::setDatasets(const std::vector &datasetNames) { + m_presenter->setDatasets(datasetNames); +} /// Sets the datasets being fitted. They will be displayed by the /// local parameter editing dialog. @@ -185,7 +187,7 @@ void FunctionBrowser::removeDatasets(const QList &indices) { m_presenter->r /// Add some datasets to those already set. /// @param names :: A list of names for the new datasets. -void FunctionBrowser::addDatasets(const QStringList &names) { m_presenter->addDatasets(names); } +void FunctionBrowser::addDatasets(const std::vector &names) { m_presenter->addDatasets(names); } /// Return the multidomain function for multi-dataset fitting IFunction_sptr FunctionBrowser::getGlobalFunction() { return m_presenter->getFitFunction(); } diff --git a/qt/widgets/common/src/FunctionModel.cpp b/qt/widgets/common/src/FunctionModel.cpp index f6e2fd703959..a4e472189221 100644 --- a/qt/widgets/common/src/FunctionModel.cpp +++ b/qt/widgets/common/src/FunctionModel.cpp @@ -273,7 +273,7 @@ void FunctionModel::setNumberDomains(int nDomains) { /// Sets the datasets based on their workspace names. This assumes there is only /// a single spectrum in the workspaces being fitted. /// @param datasetNames :: Names of the workspaces to be fitted. -void FunctionModel::setDatasets(const QStringList &datasetNames) { +void FunctionModel::setDatasets(const std::vector &datasetNames) { QList datasets; for (const auto &datasetName : datasetNames) datasets.append(FunctionModelDataset(datasetName, FunctionModelSpectra("0"))); @@ -293,7 +293,7 @@ void FunctionModel::setDatasets(const QList &datasets) { /// Adds datasets based on their workspace names. This assumes there is only /// a single spectrum in the added workspaces. /// @param datasetNames :: Names of the workspaces to be added. -void FunctionModel::addDatasets(const QStringList &datasetNames) { +void FunctionModel::addDatasets(const std::vector &datasetNames) { for (const auto &datasetName : datasetNames) m_datasets.append(FunctionModelDataset(datasetName, FunctionModelSpectra("0"))); @@ -324,24 +324,26 @@ void FunctionModel::removeDatasets(QList &indices) { /// Returns the workspace names of the datasets. If a dataset has N spectra, /// then the workspace name is multiplied by N. This is required for /// EditLocalParameterDialog. -QStringList FunctionModel::getDatasetNames() const { - QStringList datasetNames; +std::vector FunctionModel::getDatasetNames() const { + std::vector allDatasetNames; for (const auto &dataset : m_datasets) for (auto i = 0u; i < dataset.numberOfSpectra(); ++i) { UNUSED_ARG(i); - datasetNames << dataset.datasetName(); + allDatasetNames.emplace_back(dataset.datasetName()); } - return datasetNames; + return allDatasetNames; } /// Returns names for the domains of each dataset. If a dataset has multiple /// spectra, then a domain name will include the spectrum number of a domain in /// a workspace. This is required for EditLocalParameterDialog. -QStringList FunctionModel::getDatasetDomainNames() const { - QStringList domainNames; - for (const auto &dataset : m_datasets) - domainNames << dataset.domainNames(); - return domainNames; +std::vector FunctionModel::getDatasetDomainNames() const { + std::vector allDomainNames; + for (const auto &dataset : m_datasets) { + auto const domainNames = dataset.domainNames(); + allDomainNames.insert(allDomainNames.end(), domainNames.cbegin(), domainNames.cend()); + } + return allDomainNames; } int FunctionModel::getNumberDomains() const { return static_cast(m_numberDomains); } @@ -499,7 +501,7 @@ void FunctionModel::checkDatasets() { if (numberOfDomains(m_datasets) != static_cast(m_numberDomains)) { m_datasets.clear(); for (auto i = 0u; i < m_numberDomains; ++i) - m_datasets.append(FunctionModelDataset(QString::number(i), FunctionModelSpectra("0"))); + m_datasets.append(FunctionModelDataset(std::to_string(i), FunctionModelSpectra("0"))); } } diff --git a/qt/widgets/common/src/FunctionModelDataset.cpp b/qt/widgets/common/src/FunctionModelDataset.cpp index e3f7ba2dcebd..ef1b233c5ac1 100644 --- a/qt/widgets/common/src/FunctionModelDataset.cpp +++ b/qt/widgets/common/src/FunctionModelDataset.cpp @@ -11,7 +11,7 @@ namespace MantidQt::MantidWidgets { -FunctionModelDataset::FunctionModelDataset(QString workspaceName, FunctionModelSpectra spectra) +FunctionModelDataset::FunctionModelDataset(std::string workspaceName, FunctionModelSpectra spectra) : m_workspaceName(std::move(workspaceName)), m_spectra(std::move(spectra)) {} /** @@ -20,16 +20,16 @@ FunctionModelDataset::FunctionModelDataset(QString workspaceName, FunctionModelS * * @returns the names given to each domain (i.e. spectrum) in this dataset. */ -QStringList FunctionModelDataset::domainNames() const { +std::vector FunctionModelDataset::domainNames() const { const auto numOfSpectra = m_spectra.size().value; if (numOfSpectra == 0u) throw std::runtime_error("There are no spectra in this Dataset."); if (numOfSpectra == 1u) - return QStringList(m_workspaceName); + return std::vector{m_workspaceName}; else { - QStringList domains; + std::vector domains; for (const auto &spectrum : m_spectra) - domains << m_workspaceName + " (" + QString::number(spectrum.value) + ")"; + domains.emplace_back(m_workspaceName + " (" + std::to_string(spectrum.value) + ")"); return domains; } } diff --git a/qt/widgets/common/src/FunctionMultiDomainPresenter.cpp b/qt/widgets/common/src/FunctionMultiDomainPresenter.cpp index 777be7527c3e..21d5bd6b298e 100644 --- a/qt/widgets/common/src/FunctionMultiDomainPresenter.cpp +++ b/qt/widgets/common/src/FunctionMultiDomainPresenter.cpp @@ -117,17 +117,23 @@ boost::optional FunctionMultiDomainPresenter::currentFunctionIndex( void FunctionMultiDomainPresenter::setNumberOfDatasets(int n) { m_model->setNumberDomains(n); } -void FunctionMultiDomainPresenter::setDatasets(const QStringList &datasetNames) { m_model->setDatasets(datasetNames); } +void FunctionMultiDomainPresenter::setDatasets(const std::vector &datasetNames) { + m_model->setDatasets(datasetNames); +} void FunctionMultiDomainPresenter::setDatasets(const QList &datasets) { m_model->setDatasets(datasets); } -void FunctionMultiDomainPresenter::addDatasets(const QStringList &datasetNames) { m_model->addDatasets(datasetNames); } +void FunctionMultiDomainPresenter::addDatasets(const std::vector &datasetNames) { + m_model->addDatasets(datasetNames); +} -QStringList FunctionMultiDomainPresenter::getDatasetNames() const { return m_model->getDatasetNames(); } +std::vector FunctionMultiDomainPresenter::getDatasetNames() const { return m_model->getDatasetNames(); } -QStringList FunctionMultiDomainPresenter::getDatasetDomainNames() const { return m_model->getDatasetDomainNames(); } +std::vector FunctionMultiDomainPresenter::getDatasetDomainNames() const { + return m_model->getDatasetDomainNames(); +} int FunctionMultiDomainPresenter::getNumberOfDatasets() const { return m_model->getNumberDomains(); } @@ -326,8 +332,7 @@ void FunctionMultiDomainPresenter::editLocalParameter(std::string const ¶met QList fixes; QStringList ties; QStringList constraints; - const int n = domainNames.size(); - for (int i = 0; i < n; ++i) { + for (int i = 0; i < static_cast(domainNames.size()); ++i) { const double value = getLocalParameterValue(parameterName, i); values.push_back(value); const bool fixed = isLocalParameterFixed(parameterName, i);