diff --git a/core/include/Time/TimeController.h b/core/include/Time/TimeController.h index 7c38e2c..b83739d 100644 --- a/core/include/Time/TimeController.h +++ b/core/include/Time/TimeController.h @@ -35,7 +35,7 @@ signals: public slots: /// Slot called when a new dateTime has been defined. - void onTimeToUpdate(SqpRange dateTime); + void setDateTimeRange(SqpRange dateTime); /// Slot called when the dateTime has to be notified. Call timeUpdated signal void onTimeNotify(); diff --git a/core/include/Variable/VariableController.h b/core/include/Variable/VariableController.h index c98eedf..863b047 100644 --- a/core/include/Variable/VariableController.h +++ b/core/include/Variable/VariableController.h @@ -39,7 +39,6 @@ public: VariableModel *variableModel() noexcept; QItemSelectionModel *variableSelectionModel() noexcept; - void setTimeController(TimeController *timeController) noexcept; /** * Clones the variable passed in parameter and adds the duplicate to the controller @@ -106,7 +105,7 @@ public slots: * @return the pointer to the new variable or nullptr if the creation failed */ std::shared_ptr createVariable(const QString &name, const QVariantHash &metadata, - std::shared_ptr provider) noexcept; + std::shared_ptr provider, const SqpRange &range) noexcept; /// Update the temporal parameters of every selected variable to dateTime void onDateTimeOnSelection(const SqpRange &dateTime); diff --git a/core/src/Time/TimeController.cpp b/core/src/Time/TimeController.cpp index 66b9591..22b60ec 100644 --- a/core/src/Time/TimeController.cpp +++ b/core/src/Time/TimeController.cpp @@ -40,7 +40,7 @@ SqpRange TimeController::timeRangeForMimeData(const QByteArray &mimeData) return timeRange; } -void TimeController::onTimeToUpdate(SqpRange dateTime) +void TimeController::setDateTimeRange(SqpRange dateTime) { impl->m_DateTime = dateTime; } diff --git a/core/src/Variable/VariableController.cpp b/core/src/Variable/VariableController.cpp index 4661869..541e50d 100644 --- a/core/src/Variable/VariableController.cpp +++ b/core/src/Variable/VariableController.cpp @@ -145,7 +145,6 @@ struct VariableController::VariableControllerPrivate { QItemSelectionModel *m_VariableSelectionModel; - TimeController *m_TimeController{nullptr}; std::unique_ptr m_VariableCacheStrategy; std::unique_ptr m_VariableAcquisitionWorker; QThread m_VariableAcquisitionWorkerThread; @@ -213,11 +212,6 @@ QItemSelectionModel *VariableController::variableSelectionModel() noexcept return impl->m_VariableSelectionModel; } -void VariableController::setTimeController(TimeController *timeController) noexcept -{ - impl->m_TimeController = timeController; -} - std::shared_ptr VariableController::cloneVariable(std::shared_ptr variable) noexcept { @@ -339,15 +333,15 @@ VariableController::variablesForMimeData(const QByteArray &mimeData) const std::shared_ptr VariableController::createVariable(const QString &name, const QVariantHash &metadata, - std::shared_ptr provider) noexcept + std::shared_ptr provider, const SqpRange& range) noexcept { - if (!impl->m_TimeController) { - qCCritical(LOG_VariableController()) - << tr("Impossible to create variable: The time controller is null"); - return nullptr; - } +// if (!impl->m_TimeController) { +// qCCritical(LOG_VariableController()) +// << tr("Impossible to create variable: The time controller is null"); +// return nullptr; +// } - auto range = impl->m_TimeController->dateTime(); +// auto range = impl->m_TimeController->dateTime(); if (auto newVariable = impl->m_VariableModel->createVariable(name, metadata)) { auto varId = QUuid::createUuid(); diff --git a/core/tests/Variable/TestVariableController.cpp b/core/tests/Variable/TestVariableController.cpp index ec1093e..b495c20 100644 --- a/core/tests/Variable/TestVariableController.cpp +++ b/core/tests/Variable/TestVariableController.cpp @@ -32,7 +32,7 @@ std::unique_ptr defaultTimeController() QDateTime start{QDate{2017, 01, 01}, QTime{0, 0, 0, 0}}; QDateTime end{QDate{2017, 01, 02}, QTime{0, 0, 0, 0}}; - timeController->onTimeToUpdate( + timeController->setDateTimeRange( SqpRange{DateUtils::secondsSinceEpoch(start), DateUtils::secondsSinceEpoch(end)}); return timeController; @@ -53,11 +53,11 @@ void TestVariableController::testDeleteVariable() // Creates variable controller auto timeController = defaultTimeController(); VariableController variableController{}; - variableController.setTimeController(timeController.get()); + //variableController.setTimeController(timeController.get()); // Creates a variable from the controller auto variable - = variableController.createVariable("variable", {}, std::make_shared()); + = variableController.createVariable("variable", {}, std::make_shared(), timeController->dateTime()); qDebug() << QString::number(variable.use_count()); diff --git a/core/tests/Variable/TestVariableSync.cpp b/core/tests/Variable/TestVariableSync.cpp index 9a0e0de..b09eace 100644 --- a/core/tests/Variable/TestVariableSync.cpp +++ b/core/tests/Variable/TestVariableSync.cpp @@ -112,15 +112,15 @@ struct IOperation { *Variable creation operation in the controller */ struct Create : public IOperation { - explicit Create(int index) : m_Index{index} {} + explicit Create(int index, const SqpRange &range) : m_Index{index},m_range(range) {} void exec(VariableController &variableController) const override { auto variable = variableController.createVariable(QString::number(m_Index), {}, - std::make_unique()); + std::make_unique(), m_range); } - int m_Index; ///< The index of the variable to create in the controller + SqpRange m_range; }; /** @@ -227,10 +227,10 @@ void testSyncCase1() Iterations iterations{}; // Creates variables var0, var1 and var2 - iterations.push_back({std::make_shared(0), {{0, initialRange}}}); - iterations.push_back({std::make_shared(1), {{0, initialRange}, {1, initialRange}}}); + iterations.push_back({std::make_shared(0, initialRange), {{0, initialRange}}}); + iterations.push_back({std::make_shared(1, initialRange), {{0, initialRange}, {1, initialRange}}}); iterations.push_back( - {std::make_shared(2), {{0, initialRange}, {1, initialRange}, {2, initialRange}}}); + {std::make_shared(2, initialRange), {{0, initialRange}, {1, initialRange}, {2, initialRange}}}); // Adds variables into the sync group (ranges don't need to be tested here) iterations.push_back({std::make_shared(0, syncId)}); @@ -302,8 +302,8 @@ void testSyncCase2() Iterations iterations{}; // Creates variables var0 and var1 - iterations.push_back({std::make_shared(0), {{0, initialRange}}}); - iterations.push_back({std::make_shared(1), {{0, initialRange}, {1, initialRange}}}); + iterations.push_back({std::make_shared(0, initialRange), {{0, initialRange}}}); + iterations.push_back({std::make_shared(1, initialRange), {{0, initialRange}, {1, initialRange}}}); // Adds variables into the sync group (ranges don't need to be tested here) iterations.push_back({std::make_shared(0, syncId)}); @@ -361,7 +361,7 @@ void testSyncOnVarCase1() Iterations creations{}; // Creates variables var0, var1 and var2 - creations.push_back({std::make_shared(0), {{0, initialRange}}}); + creations.push_back({std::make_shared(0, initialRange), {{0, initialRange}}}); Iterations synchronization{}; // Adds variables into the sync group (ranges don't need to be tested here) @@ -447,11 +447,11 @@ void TestVariableSync::testSync() // Inits controllers TimeController timeController{}; VariableController variableController{}; - variableController.setTimeController(&timeController); + //variableController.setTimeController(&timeController); QFETCH(QUuid, syncId); QFETCH(SqpRange, initialRange); - timeController.onTimeToUpdate(initialRange); + timeController.setDateTimeRange(initialRange); // Synchronization group used variableController.onAddSynchronizationGroupId(syncId); @@ -474,11 +474,11 @@ void TestVariableSync::testSyncOneVar() // Inits controllers TimeController timeController{}; VariableController variableController{}; - variableController.setTimeController(&timeController); + //variableController.setTimeController(&timeController); QFETCH(QUuid, syncId); QFETCH(SqpRange, initialRange); - timeController.onTimeToUpdate(initialRange); + timeController.setDateTimeRange(initialRange); // Synchronization group used variableController.onAddSynchronizationGroupId(syncId); diff --git a/gui/src/SqpApplication.cpp b/gui/src/SqpApplication.cpp index 6ebcbe9..27389ee 100644 --- a/gui/src/SqpApplication.cpp +++ b/gui/src/SqpApplication.cpp @@ -66,7 +66,7 @@ public: m_VisualizationControllerThread.setObjectName("VsualizationControllerThread"); // Additionnal init - m_VariableController->setTimeController(m_TimeController.get()); + //m_VariableController->setTimeController(m_TimeController.get()); } virtual ~SqpApplicationPrivate() diff --git a/gui/src/TimeWidget/TimeWidget.cpp b/gui/src/TimeWidget/TimeWidget.cpp index 06a19b9..14033b0 100644 --- a/gui/src/TimeWidget/TimeWidget.cpp +++ b/gui/src/TimeWidget/TimeWidget.cpp @@ -51,7 +51,7 @@ TimeWidget::TimeWidget(QWidget *parent) auto dateTime = SqpRange{DateUtils::secondsSinceEpoch(startDateTime), DateUtils::secondsSinceEpoch(endDateTime)}; - sqpApp->timeController().onTimeToUpdate(dateTime); + sqpApp->timeController().setDateTimeRange(dateTime); } diff --git a/plugins/amda/tests/FuzzingOperations.cpp b/plugins/amda/tests/FuzzingOperations.cpp index 059c233..e9e9928 100644 --- a/plugins/amda/tests/FuzzingOperations.cpp +++ b/plugins/amda/tests/FuzzingOperations.cpp @@ -39,7 +39,7 @@ struct CreateOperation : public IFuzzingOperation { << "(metadata:" << variableMetadata << ")..."; auto newVariable - = variableController.createVariable(variableName, variableMetadata, variableProvider); + = variableController.createVariable(variableName, variableMetadata, variableProvider, properties.value(INITIAL_RANGE_PROPERTY).value()); // Updates variable's state auto &variableState = fuzzingState.variableState(variableId); diff --git a/plugins/amda/tests/PyTestAmdaWrapper.cpp b/plugins/amda/tests/PyTestAmdaWrapper.cpp index 8ccce66..e536e88 100644 --- a/plugins/amda/tests/PyTestAmdaWrapper.cpp +++ b/plugins/amda/tests/PyTestAmdaWrapper.cpp @@ -74,8 +74,8 @@ PYBIND11_MODULE(pytestamda, m){ py::class_(m, "VariableController") .def_static("createVariable",[](const QString &name, - std::shared_ptr provider){ - return sqpApp->variableController().createVariable(name, {{"dataType", "vector"}, {"xml:id", "c1_b"}}, provider); + std::shared_ptr provider, const SqpRange& range){ + return sqpApp->variableController().createVariable(name, {{"dataType", "vector"}, {"xml:id", "c1_b"}}, provider, range); }) .def_static("hasPendingDownloads", [](){return sqpApp->variableController().hasPendingDownloads();} @@ -106,7 +106,7 @@ PYBIND11_MODULE(pytestamda, m){ }); py::class_(m,"TimeController") - .def_static("setTime", [](SqpRange range){sqpApp->timeController().onTimeToUpdate(range);}); + .def_static("setTime", [](SqpRange range){sqpApp->timeController().setDateTimeRange(range);}); auto amda_provider = std::make_shared(); diff --git a/plugins/amda/tests/TestAmdaAcquisition.cpp b/plugins/amda/tests/TestAmdaAcquisition.cpp index 218b31f..95d285f 100644 --- a/plugins/amda/tests/TestAmdaAcquisition.cpp +++ b/plugins/amda/tests/TestAmdaAcquisition.cpp @@ -131,10 +131,10 @@ void TestAmdaAcquisition::testAcquisition() // Creates variable QFETCH(SqpRange, initialRange); - sqpApp->timeController().onTimeToUpdate(initialRange); + sqpApp->timeController().setDateTimeRange(initialRange); auto provider = std::make_shared(); auto variable = sqpApp->variableController().createVariable( - "bx_gse", {{"dataType", "scalar"}, {"xml:id", "imf(0)"}}, provider); + "bx_gse", {{"dataType", "scalar"}, {"xml:id", "imf(0)"}}, provider, initialRange); QTest::qWait(OPERATION_DELAY); validateVariable(variable, initialRange); diff --git a/plugins/amda/tests/TestAmdaFuzzing.cpp b/plugins/amda/tests/TestAmdaFuzzing.cpp index b2d299c..b1615c5 100644 --- a/plugins/amda/tests/TestAmdaFuzzing.cpp +++ b/plugins/amda/tests/TestAmdaFuzzing.cpp @@ -361,7 +361,7 @@ void TestAmdaFuzzing::testFuzzing() // Sets initial range on time controller SqpRange initialRange{initialRangeStart, initialRangeEnd}; qCInfo(LOG_TestAmdaFuzzing()).noquote() << "Setting initial range to" << initialRange << "..."; - timeController.onTimeToUpdate(initialRange); + timeController.setDateTimeRange(initialRange); properties.insert(INITIAL_RANGE_PROPERTY, QVariant::fromValue(initialRange)); FuzzingTest test{variableController, properties}; diff --git a/plugins/mockplugin/src/MockPlugin.cpp b/plugins/mockplugin/src/MockPlugin.cpp index a3813c8..90e5326 100644 --- a/plugins/mockplugin/src/MockPlugin.cpp +++ b/plugins/mockplugin/src/MockPlugin.cpp @@ -21,16 +21,16 @@ std::unique_ptr createDataProvider() noexcept return std::make_unique(); } -std::unique_ptr createProductItem(const QVariantHash &data, +std::unique_ptr createProductItem(const QVariantHash &metaData, const QUuid &dataSourceUid) { - auto result = std::make_unique(DataSourceItemType::PRODUCT, data); + auto result = std::make_unique(DataSourceItemType::PRODUCT, metaData); // Adds plugin name to product metadata result->setData(DataSourceItem::PLUGIN_DATA_KEY, DATA_SOURCE_NAME); - result->setData(DataSourceItem::ID_DATA_KEY, data.value(DataSourceItem::NAME_DATA_KEY)); + result->setData(DataSourceItem::ID_DATA_KEY, metaData.value(DataSourceItem::NAME_DATA_KEY)); - auto productName = data.value(DataSourceItem::NAME_DATA_KEY).toString(); + auto productName = metaData.value(DataSourceItem::NAME_DATA_KEY).toString(); // Add action to load product from DataSourceController result->addAction(std::make_unique( diff --git a/plugins/mockplugin/tests/TestCosinusAcquisition.cpp b/plugins/mockplugin/tests/TestCosinusAcquisition.cpp index 8395fdb..bcb06b7 100644 --- a/plugins/mockplugin/tests/TestCosinusAcquisition.cpp +++ b/plugins/mockplugin/tests/TestCosinusAcquisition.cpp @@ -153,10 +153,10 @@ void TestCosinusAcquisition::testAcquisition() // Creates variable QFETCH(SqpRange, initialRange); - sqpApp->timeController().onTimeToUpdate(initialRange); + sqpApp->timeController().setDateTimeRange(initialRange); auto provider = std::make_shared(); auto variable = sqpApp->variableController().createVariable( - "MMS", {{COSINUS_TYPE_KEY, "scalar"}, {COSINUS_FREQUENCY_KEY, 10.}}, provider); + "MMS", {{COSINUS_TYPE_KEY, "scalar"}, {COSINUS_FREQUENCY_KEY, 10.}}, provider, initialRange); QFETCH(int, operationDelay);