diff --git a/qt/widgets/common/CMakeLists.txt b/qt/widgets/common/CMakeLists.txt index 3b348f4aefb18904a8bd19092a46d92da294532e..ef7b75468f808d51c83d277a492a2e554b066311 100644 --- a/qt/widgets/common/CMakeLists.txt +++ b/qt/widgets/common/CMakeLists.txt @@ -75,6 +75,8 @@ src/DataProcessorUI/WhiteList.cpp src/DataProcessorUI/PostprocessingStep.cpp src/DataProcessorUI/GenericDataProcessorPresenter.cpp + src/DataProcessorUI/Column.cpp + src/DataProcessorUI/ConstColumnIterator.cpp src/ParseKeyValueString.cpp src/ParseNumerics.cpp src/DataProcessorUI/QOneLevelTreeModel.cpp diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/Column.h b/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/Column.h new file mode 100644 index 0000000000000000000000000000000000000000..2f676dd8ea86546bcb0cfeea7940e951d4c1f1ff --- /dev/null +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/Column.h @@ -0,0 +1,27 @@ +#ifndef MANTIDQTMANTIDWIDGETS_DATAPROCESSORCOLUMN_H +#define MANTIDQTMANTIDWIDGETS_DATAPROCESSORCOLUMN_H +#include <QString> +namespace MantidQt { +namespace MantidWidgets { +namespace DataProcessor { +class Column { +public: + Column(QString const &name, QString const &algorithmProperty, bool isShown, + QString const &prefix, QString const &description); + QString const &name() const; + QString const &algorithmProperty() const; + bool isShown() const; + QString const &prefix() const; + QString const &description() const; + +private: + QString const &m_name; + QString const &m_algorithmProperty; + bool m_isShown; + QString const &m_prefix; + QString const &m_description; +}; +} +} +} +#endif // MANTIDQTMANTIDWIDGETS_DATAPROCESSORCOLUMN_H diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/ConstColumnIterator.h b/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/ConstColumnIterator.h new file mode 100644 index 0000000000000000000000000000000000000000..b33e9b004ebae4aa7f679e19ea9afec395c23094 --- /dev/null +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/ConstColumnIterator.h @@ -0,0 +1,51 @@ +#ifndef MANTIDQTMANTIDWIDGETS_DATAPROCESSORCONSTCOLUMNITERATOR_H +#define MANTIDQTMANTIDWIDGETS_DATAPROCESSORCONSTCOLUMNITERATOR_H +#include "MantidQtWidgets/Common/DllOption.h" +#include "MantidQtWidgets/Common/DataProcessorUI/Column.h" +#include <QString> +#include <vector> +namespace MantidQt { +namespace MantidWidgets { +namespace DataProcessor { +class EXPORT_OPT_MANTIDQT_COMMON ConstColumnIterator { + using QStringIterator = std::vector<QString>::const_iterator; + using BoolIterator = std::vector<bool>::const_iterator; + +public: + using iterator_category = std::forward_iterator_tag; + using reference = const Column; + using pointer = const Column *; + using value_type = const Column; + using difference_type = typename QStringIterator::difference_type; + ConstColumnIterator(QStringIterator names, QStringIterator descriptions, + QStringIterator algorithmProperties, BoolIterator isShown, + QStringIterator prefixes); + + ConstColumnIterator &operator++(); + ConstColumnIterator operator++(int); + reference operator*() const; + bool operator==(const ConstColumnIterator &other) const; + bool operator!=(const ConstColumnIterator &other) const; + ConstColumnIterator &operator+=(difference_type n); + ConstColumnIterator &operator-=(difference_type n); + +private: + QStringIterator m_names; + QStringIterator m_descriptions; + QStringIterator m_algorithmProperties; + BoolIterator m_isShown; + QStringIterator m_prefixes; +}; + +ConstColumnIterator EXPORT_OPT_MANTIDQT_COMMON operator+( + const ConstColumnIterator &lhs, ConstColumnIterator::difference_type n); +ConstColumnIterator EXPORT_OPT_MANTIDQT_COMMON operator+( + ConstColumnIterator::difference_type n, const ConstColumnIterator &rhs); +ConstColumnIterator EXPORT_OPT_MANTIDQT_COMMON operator-( + const ConstColumnIterator &lhs, ConstColumnIterator::difference_type n); +ConstColumnIterator EXPORT_OPT_MANTIDQT_COMMON operator-( + ConstColumnIterator::difference_type n, const ConstColumnIterator &rhs); +} +} +} +#endif // MANTIDQTMANTIDWIDGETS_DATAPROCESSORCONSTCOLUMNITERATOR_H diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/WhiteList.h b/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/WhiteList.h index b0c5025c28fa6130a80d15bdaf674e0e11b0f402..e0ac6b9f49b81853b2fb3d9a232c02fff6a38fe8 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/WhiteList.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/DataProcessorUI/WhiteList.h @@ -1,6 +1,8 @@ #ifndef MANTIDQTMANTIDWIDGETS_DATAPROCESSORWHITELIST_H #define MANTIDQTMANTIDWIDGETS_DATAPROCESSORWHITELIST_H +#include "MantidQtWidgets/Common/DataProcessorUI/Column.h" +#include "MantidQtWidgets/Common/DataProcessorUI/ConstColumnIterator.h" #include "MantidQtWidgets/Common/DllOption.h" #include <map> @@ -37,62 +39,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. File change history is stored at: <https://github.com/mantidproject/mantid>. Code Documentation is available at: <http://doxygen.mantidproject.org> */ -class Column { -public: - Column(QString const &name, QString const &algorithmProperty, bool isShown, - QString const &prefix, QString const &description); - QString const &name() const; - QString const &algorithmProperty() const; - bool isShown() const; - QString const &prefix() const; - QString const &description() const; - -private: - QString const &m_name; - QString const &m_algorithmProperty; - bool m_isShown; - QString const &m_prefix; - QString const &m_description; -}; - -class ConstColumnIterator { - using QStringIterator = std::vector<QString>::const_iterator; - using BoolIterator = std::vector<bool>::const_iterator; - -public: - using iterator_category = std::forward_iterator_tag; - using reference = const Column; - using pointer = const Column *; - using value_type = const Column; - using difference_type = typename QStringIterator::difference_type; - ConstColumnIterator(QStringIterator names, QStringIterator descriptions, - QStringIterator algorithmProperties, BoolIterator isShown, - QStringIterator prefixes); - - ConstColumnIterator &operator++(); - ConstColumnIterator operator++(int); - reference operator*() const; - bool operator==(const ConstColumnIterator &other) const; - bool operator!=(const ConstColumnIterator &other) const; - ConstColumnIterator &operator+=(difference_type n); - ConstColumnIterator &operator-=(difference_type n); - -private: - QStringIterator m_names; - QStringIterator m_descriptions; - QStringIterator m_algorithmProperties; - BoolIterator m_isShown; - QStringIterator m_prefixes; -}; - -ConstColumnIterator operator+(const ConstColumnIterator &lhs, - ConstColumnIterator::difference_type n); -ConstColumnIterator operator+(ConstColumnIterator::difference_type n, - const ConstColumnIterator &rhs); -ConstColumnIterator operator-(const ConstColumnIterator &lhs, - ConstColumnIterator::difference_type n); -ConstColumnIterator operator-(ConstColumnIterator::difference_type n, - const ConstColumnIterator &rhs); class EXPORT_OPT_MANTIDQT_COMMON WhiteList { public: diff --git a/qt/widgets/common/src/DataProcessorUI/Column.cpp b/qt/widgets/common/src/DataProcessorUI/Column.cpp new file mode 100644 index 0000000000000000000000000000000000000000..539efd8ba27d91b21667043ab13c6da6c7ed3b53 --- /dev/null +++ b/qt/widgets/common/src/DataProcessorUI/Column.cpp @@ -0,0 +1,22 @@ +#include "MantidQtWidgets/Common/DataProcessorUI/Column.h" +namespace MantidQt { +namespace MantidWidgets { +namespace DataProcessor { + +Column::Column(QString const &name, QString const &algorithmProperty, + bool isShown, QString const &prefix, QString const &description) + : m_name(name), m_algorithmProperty(algorithmProperty), m_isShown(isShown), + m_prefix(prefix), m_description(description) {} + +QString const &Column::algorithmProperty() const { return m_algorithmProperty; } + +bool Column::isShown() const { return m_isShown; } + +QString const &Column::prefix() const { return m_prefix; } + +QString const &Column::description() const { return m_description; } + +QString const &Column::name() const { return m_name; } +} +} +} diff --git a/qt/widgets/common/src/DataProcessorUI/ConstColumnIterator.cpp b/qt/widgets/common/src/DataProcessorUI/ConstColumnIterator.cpp new file mode 100644 index 0000000000000000000000000000000000000000..435b1edf1b12676cb0dd87596246c8635db179c4 --- /dev/null +++ b/qt/widgets/common/src/DataProcessorUI/ConstColumnIterator.cpp @@ -0,0 +1,61 @@ +#include "MantidQtWidgets/Common/DataProcessorUI/ConstColumnIterator.h" +namespace MantidQt { +namespace MantidWidgets { +namespace DataProcessor { +ConstColumnIterator::ConstColumnIterator(QStringIterator names, + QStringIterator descriptions, + QStringIterator algorithmProperties, + BoolIterator isShown, + QStringIterator prefixes) + : m_names(names), m_descriptions(descriptions), + m_algorithmProperties(algorithmProperties), m_isShown(isShown), + m_prefixes(prefixes) {} + +ConstColumnIterator &ConstColumnIterator::operator++() { + ++m_names; + ++m_descriptions; + ++m_algorithmProperties; + ++m_isShown; + ++m_prefixes; + return (*this); +} + +ConstColumnIterator ConstColumnIterator::operator++(int) { + auto result = (*this); + ++result; + return result; +} + +bool ConstColumnIterator::operator==(const ConstColumnIterator &other) const { + return m_names == other.m_names; +} + +bool ConstColumnIterator::operator!=(const ConstColumnIterator &other) const { + return !((*this) == other); +} + +auto ConstColumnIterator::operator*() const -> reference { + return reference(*m_names, *m_algorithmProperties, *m_isShown, *m_prefixes, + *m_descriptions); +} + +ConstColumnIterator &ConstColumnIterator::operator+=(difference_type n) { + m_names += n; + m_algorithmProperties += n; + m_isShown += n; + m_prefixes += n; + m_descriptions += n; + return (*this); +} + +ConstColumnIterator &ConstColumnIterator::operator-=(difference_type n) { + m_names -= n; + m_algorithmProperties -= n; + m_isShown -= n; + m_prefixes -= n; + m_descriptions -= n; + return (*this); +} +} +} +} diff --git a/qt/widgets/common/src/DataProcessorUI/GenericDataProcessorPresenter.cpp b/qt/widgets/common/src/DataProcessorUI/GenericDataProcessorPresenter.cpp index 22d5ff7fe34ebf0ea2debda8c9efda55bc7a9a5e..7c82fae70f061fcf0317a2a1b61ab2cd1d26d4ae 100644 --- a/qt/widgets/common/src/DataProcessorUI/GenericDataProcessorPresenter.cpp +++ b/qt/widgets/common/src/DataProcessorUI/GenericDataProcessorPresenter.cpp @@ -122,15 +122,15 @@ GenericDataProcessorPresenter::GenericDataProcessorPresenter( const PostprocessingAlgorithm &postprocessor, const std::map<QString, QString> &postprocessMap, const QString &loader) : WorkspaceObserver(), m_view(nullptr), m_progressView(nullptr), - m_mainPresenter(), m_loader(loader), m_whitelist(whitelist), - m_processor(processor), + m_mainPresenter(), m_loader(loader), m_postprocessing( postprocessor.name().isEmpty() ? boost::optional<PostprocessingStep>() : PostprocessingStep(QString(), postprocessor, postprocessMap)), - m_progressReporter(nullptr), m_preprocessing(QString(), preprocessMap), - m_promptUser(true), m_tableDirty(false), m_pauseReduction(false), - m_reductionPaused(true), m_nextActionFlag(ReductionFlag::StopReduceFlag) { + m_preprocessing(QString(), preprocessMap), m_whitelist(whitelist), + m_processor(processor), m_progressReporter(nullptr), m_promptUser(true), + m_tableDirty(false), m_pauseReduction(false), m_reductionPaused(true), + m_nextActionFlag(ReductionFlag::StopReduceFlag) { // Column Options must be added to the whitelist m_whitelist.addElement("Options", "Options", @@ -556,8 +556,8 @@ void GenericDataProcessorPresenter::saveNotebook(const TreeData &data) { auto notebook = Mantid::Kernel::make_unique<GenerateNotebook>( m_wsName, m_view->getProcessInstrument(), m_whitelist, - m_preprocessing.m_map, m_processor, *m_postprocessing, preprocessingOptionsMap, - m_processingOptions); + m_preprocessing.m_map, m_processor, *m_postprocessing, + preprocessingOptionsMap, m_processingOptions); auto generatedNotebook = std::string(notebook->generateNotebook(data).toStdString()); diff --git a/qt/widgets/common/src/DataProcessorUI/WhiteList.cpp b/qt/widgets/common/src/DataProcessorUI/WhiteList.cpp index 80661083c49f66ede9adc7c7bd1f72b5de8b3068..77e7bd2fe4a93bdedb8795806b335c90aac32688 100644 --- a/qt/widgets/common/src/DataProcessorUI/WhiteList.cpp +++ b/qt/widgets/common/src/DataProcessorUI/WhiteList.cpp @@ -1,81 +1,9 @@ #include "MantidQtWidgets/Common/DataProcessorUI/WhiteList.h" - #include <QString> namespace MantidQt { namespace MantidWidgets { namespace DataProcessor { - -Column::Column(QString const &name, QString const &algorithmProperty, - bool isShown, QString const &prefix, QString const &description) - : m_name(name), m_algorithmProperty(algorithmProperty), m_isShown(isShown), - m_prefix(prefix), m_description(description) {} - -QString const &Column::algorithmProperty() const { return m_algorithmProperty; } - -bool Column::isShown() const { return m_isShown; } - -QString const &Column::prefix() const { return m_prefix; } - -QString const &Column::description() const { return m_description; } - -QString const &Column::name() const { return m_name; } - -ConstColumnIterator::ConstColumnIterator(QStringIterator names, - QStringIterator descriptions, - QStringIterator algorithmProperties, - BoolIterator isShown, - QStringIterator prefixes) - : m_names(names), m_descriptions(descriptions), - m_algorithmProperties(algorithmProperties), m_isShown(isShown), - m_prefixes(prefixes) {} - -ConstColumnIterator &ConstColumnIterator::operator++() { - ++m_names; - ++m_descriptions; - ++m_algorithmProperties; - ++m_isShown; - ++m_prefixes; - return (*this); -} - -ConstColumnIterator ConstColumnIterator::operator++(int) { - auto result = (*this); - ++result; - return result; -} - -bool ConstColumnIterator::operator==(const ConstColumnIterator &other) const { - return m_names == other.m_names; -} - -bool ConstColumnIterator::operator!=(const ConstColumnIterator &other) const { - return !((*this) == other); -} - -auto ConstColumnIterator::operator*() const -> reference { - return reference(*m_names, *m_algorithmProperties, *m_isShown, *m_prefixes, - *m_descriptions); -} - -ConstColumnIterator &ConstColumnIterator::operator+=(difference_type n) { - m_names += n; - m_algorithmProperties += n; - m_isShown += n; - m_prefixes += n; - m_descriptions += n; - return (*this); -} - -ConstColumnIterator &ConstColumnIterator::operator-=(difference_type n) { - m_names -= n; - m_algorithmProperties -= n; - m_isShown -= n; - m_prefixes -= n; - m_descriptions -= n; - return (*this); -} - /** Adds an element to the whitelist * @param colName : the name of the column to be added * @param algProperty : the name of the property linked to this column