From eaa5bf0c5dfe31790418ff4e430ecd193d54ad9d Mon Sep 17 00:00:00 2001 From: Danbr4d Date: Thu, 18 Apr 2024 16:28:45 +0100 Subject: [PATCH 1/4] addition of dataType selection --- src/modules/compare/compare.cpp | 4 ++++ src/modules/compare/compare.h | 1 + 2 files changed, 5 insertions(+) diff --git a/src/modules/compare/compare.cpp b/src/modules/compare/compare.cpp index cf214d5769..f0a5a9175e 100644 --- a/src/modules/compare/compare.cpp +++ b/src/modules/compare/compare.cpp @@ -2,12 +2,16 @@ // Copyright (c) 2024 Team Dissolve and contributors #include "modules/compare/compare.h" +#include "classes/dataSource.h" #include "keywords/dataSource.h" #include "keywords/rangeVector.h" CompareModule::CompareModule() : Module(ModuleTypes::Compare) { keywords_.setOrganisation("Options"); + keywords_.add::DataSourceType>>( + "DataType", "Specify whether the data is in Dissolve (Internal) or in the file system (External)", dataType_, + DataSource::dataSourceTypes()); keywords_.add>("Data1D", "Specify one-dimensional test reference data", data1dSources_, "EndData1D"); keywords_.add>("ErrorType", "Type of error calculation to use", errorType_, diff --git a/src/modules/compare/compare.h b/src/modules/compare/compare.h index fbbc96ad92..321eb5fd5d 100644 --- a/src/modules/compare/compare.h +++ b/src/modules/compare/compare.h @@ -31,6 +31,7 @@ class CompareModule : public Module * Definition */ private: + DataSource::DataSourceType dataType_{}; // Data stored in the keyword std::vector::DataPair> data1dSources_; // Method of error calculation to use From e47409a2a2fb468e103a8a01f1c05d0cb5b03351 Mon Sep 17 00:00:00 2001 From: Danbr4d Date: Thu, 18 Apr 2024 17:14:30 +0100 Subject: [PATCH 2/4] add in initial keywords --- src/modules/compare/compare.cpp | 6 +++++- src/modules/compare/compare.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/compare/compare.cpp b/src/modules/compare/compare.cpp index f0a5a9175e..038e81aafd 100644 --- a/src/modules/compare/compare.cpp +++ b/src/modules/compare/compare.cpp @@ -4,14 +4,18 @@ #include "modules/compare/compare.h" #include "classes/dataSource.h" #include "keywords/dataSource.h" +#include "keywords/fileAndFormat.h" #include "keywords/rangeVector.h" CompareModule::CompareModule() : Module(ModuleTypes::Compare) { - keywords_.setOrganisation("Options"); + keywords_.setOrganisation("Options", "Data Sources"); keywords_.add::DataSourceType>>( "DataType", "Specify whether the data is in Dissolve (Internal) or in the file system (External)", dataType_, DataSource::dataSourceTypes()); + keywords_.add("Reference", "F(Q) reference data", referenceData_, "EndReference") + ->setEditSignals({KeywordBase::ReloadExternalData, KeywordBase::RecreateRenderables}); + keywords_.setOrganisation("Options", "Errors"); keywords_.add>("Data1D", "Specify one-dimensional test reference data", data1dSources_, "EndData1D"); keywords_.add>("ErrorType", "Type of error calculation to use", errorType_, diff --git a/src/modules/compare/compare.h b/src/modules/compare/compare.h index 321eb5fd5d..dc94c8b1a4 100644 --- a/src/modules/compare/compare.h +++ b/src/modules/compare/compare.h @@ -32,6 +32,8 @@ class CompareModule : public Module */ private: DataSource::DataSourceType dataType_{}; + // Reference for comparison file and format + Data1DImportFileFormat referenceData_; // Data stored in the keyword std::vector::DataPair> data1dSources_; // Method of error calculation to use From b8b5fc41790cb01e7f7b005fe8d584be6900f48e Mon Sep 17 00:00:00 2001 From: Danbr4d Date: Fri, 19 Apr 2024 15:05:18 +0100 Subject: [PATCH 3/4] setup of dataSourceWidget --- src/classes/dataSource.h | 3 ++ src/gui/keywordWidgets/CMakeLists.txt | 2 + src/gui/keywordWidgets/dataSource.cpp | 22 +++++++++ src/gui/keywordWidgets/dataSource.h | 65 +++++++++++++++++++++++++++ src/gui/keywordWidgets/dataSource.ui | 49 ++++++++++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 src/gui/keywordWidgets/dataSource.cpp create mode 100644 src/gui/keywordWidgets/dataSource.h create mode 100644 src/gui/keywordWidgets/dataSource.ui diff --git a/src/classes/dataSource.h b/src/classes/dataSource.h index 22a04a788f..c3117f5e25 100644 --- a/src/classes/dataSource.h +++ b/src/classes/dataSource.h @@ -59,6 +59,9 @@ template class DataSource : public Serialisable +#include +#include +#include + +DataSourceKeywordWidget::DataSourceKeywordWidget(QWidget *parent, DataSourceKeyword *keyword, CoreData &coreData) + : QWidget(parent), KeywordWidgetBase(coreData), keyword_(keyword), coreData_(coreData) +{ + // Add QWidget with Box Layout + //FileAndFormatKeyword *k = new FileAndFormatKeyword(std::forward(&dataSource_.externalDataSource()), "EndExternal"); + FileAndFormatKeyword k(dataSource_.externalDataSource(), "end"); + FileAndFormatKeywordWidget fileAndFormat(&ui_, &k, coreData); + internalLayout_.addWidget(&fileAndFormat); + ui_.setLayout(&internalLayout_); +} \ No newline at end of file diff --git a/src/gui/keywordWidgets/dataSource.h b/src/gui/keywordWidgets/dataSource.h new file mode 100644 index 0000000000..25e2569243 --- /dev/null +++ b/src/gui/keywordWidgets/dataSource.h @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (c) 2024 Team Dissolve and contributors + +#pragma once + +#include "gui/keywordWidgets/base.h" +#include "gui/keywordWidgets/fileAndFormat.h" +#include "gui/models/enumOptionsModel.h" +#include "keywords/fileAndFormat.h" +#include "io/import/data1D.h" +#include "math/data1D.h" +#include "keywords/dataSource.h" +#include +#include + +class DataSourceKeywordWidget : public QWidget, public KeywordWidgetBase +{ + // All Qt declarations must include this macro + Q_OBJECT + + public: + DataSourceKeywordWidget(QWidget *parent, DataSourceKeyword *keyword, CoreData &coreData); + + /* + * Keyword + */ + private: + // Associated keyword + DataSourceKeyword *keyword_; + + protected: + // mutable coredata source + CoreData &coreData_; + + /* + * Widgets + */ + private: + // Main form declaration + QWidget ui_; + QVBoxLayout internalLayout_; + QVBoxLayout externalLayout_; + DataSource dataSource_; + + // Model for enum options + EnumOptionsModel enumOptionsModel_; + + private Q_SLOTS: + + Q_SIGNALS: + // Keyword data changed + //void keywordDataChanged(int flags); + + /* + * Update + */ + + public: + // Update value displayed in widget + //void updateValue(const Flags &mutationFlags) override; + // Update widget values data based on keyword data + //void updateWidgetValues(const CoreData &coreData); + // Update keyword data based on widget values + //void updateKeywordData(); +}; diff --git a/src/gui/keywordWidgets/dataSource.ui b/src/gui/keywordWidgets/dataSource.ui new file mode 100644 index 0000000000..c306ded454 --- /dev/null +++ b/src/gui/keywordWidgets/dataSource.ui @@ -0,0 +1,49 @@ + + + DataSourceWidget + + + + 0 + 0 + 413 + 328 + + + + + 3 + 0 + + + + + 10 + + + + Form + + + + 2 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + From cacc6d66f8ab8fbda9c086d0a4f4d6d388435258 Mon Sep 17 00:00:00 2001 From: Danbr4d Date: Mon, 22 Apr 2024 15:18:51 +0100 Subject: [PATCH 4/4] enum added to dataSource --- src/gui/keywordWidgets/dataSource.cpp | 13 ++++++++++--- src/gui/keywordWidgets/dataSource.h | 1 + src/gui/keywordWidgets/producers.cpp | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/gui/keywordWidgets/dataSource.cpp b/src/gui/keywordWidgets/dataSource.cpp index 17ebc90715..612ca98af2 100644 --- a/src/gui/keywordWidgets/dataSource.cpp +++ b/src/gui/keywordWidgets/dataSource.cpp @@ -14,9 +14,16 @@ DataSourceKeywordWidget::DataSourceKeywordWidget(QWidget *parent, DataSourceKeyw : QWidget(parent), KeywordWidgetBase(coreData), keyword_(keyword), coreData_(coreData) { // Add QWidget with Box Layout - //FileAndFormatKeyword *k = new FileAndFormatKeyword(std::forward(&dataSource_.externalDataSource()), "EndExternal"); + enumOptionsModel_.setData(dataSource_.dataSourceTypes()); FileAndFormatKeyword k(dataSource_.externalDataSource(), "end"); FileAndFormatKeywordWidget fileAndFormat(&ui_, &k, coreData); - internalLayout_.addWidget(&fileAndFormat); - ui_.setLayout(&internalLayout_); + + if (dataSource_.dataName() == "External") + { + externalLayout_.addWidget(&fileAndFormat); + ui_.setLayout(&externalLayout_); + } + else if (dataSource_.dataName() == "Internal") + { + } } \ No newline at end of file diff --git a/src/gui/keywordWidgets/dataSource.h b/src/gui/keywordWidgets/dataSource.h index 25e2569243..6ae6d53ea6 100644 --- a/src/gui/keywordWidgets/dataSource.h +++ b/src/gui/keywordWidgets/dataSource.h @@ -5,6 +5,7 @@ #include "gui/keywordWidgets/base.h" #include "gui/keywordWidgets/fileAndFormat.h" +#include "gui/keywordWidgets/enumOptions.h" #include "gui/models/enumOptionsModel.h" #include "keywords/fileAndFormat.h" #include "io/import/data1D.h" diff --git a/src/gui/keywordWidgets/producers.cpp b/src/gui/keywordWidgets/producers.cpp index ca0879d644..c6dac8f36c 100644 --- a/src/gui/keywordWidgets/producers.cpp +++ b/src/gui/keywordWidgets/producers.cpp @@ -7,6 +7,7 @@ #include "gui/keywordWidgets/bool.h" #include "gui/keywordWidgets/configuration.h" #include "gui/keywordWidgets/configurationVector.h" +#include "gui/keywordWidgets/dataSource.h" #include "gui/keywordWidgets/double.h" #include "gui/keywordWidgets/dropWidget.h" #include "gui/keywordWidgets/enumOptions.h"