diff --git a/core/include/Data/DataSeries.h b/core/include/Data/DataSeries.h index f4315f0..19df6c8 100644 --- a/core/include/Data/DataSeries.h +++ b/core/include/Data/DataSeries.h @@ -21,30 +21,30 @@ public: std::shared_ptr > xAxisData() override { return m_XAxisData; } /// @sa IDataSeries::xAxisUnit() - QString xAxisUnit() const override { return m_XAxisUnit; } + Unit xAxisUnit() const override { return m_XAxisUnit; } /// @return the values dataset std::shared_ptr > valuesData() const { return m_ValuesData; } /// @sa IDataSeries::valuesUnit() - QString valuesUnit() const override { return m_ValuesUnit; } + Unit valuesUnit() const override { return m_ValuesUnit; } protected: /// Protected ctor (DataSeries is abstract) - explicit DataSeries(std::shared_ptr > xAxisData, const QString &xAxisUnit, - std::shared_ptr > valuesData, const QString &valuesUnit) + explicit DataSeries(std::shared_ptr > xAxisData, Unit xAxisUnit, + std::shared_ptr > valuesData, Unit valuesUnit) : m_XAxisData{xAxisData}, - m_XAxisUnit{xAxisUnit}, + m_XAxisUnit{std::move(xAxisUnit)}, m_ValuesData{valuesData}, - m_ValuesUnit{valuesUnit} + m_ValuesUnit{std::move(valuesUnit)} { } private: std::shared_ptr > m_XAxisData; - QString m_XAxisUnit; + Unit m_XAxisUnit; std::shared_ptr > m_ValuesData; - QString m_ValuesUnit; + Unit m_ValuesUnit; }; #endif // SCIQLOP_DATASERIES_H diff --git a/core/include/Data/IDataSeries.h b/core/include/Data/IDataSeries.h index 0278a8e..26a80a1 100644 --- a/core/include/Data/IDataSeries.h +++ b/core/include/Data/IDataSeries.h @@ -8,6 +8,16 @@ template class ArrayData; +struct Unit { + explicit Unit(const QString &name = {}, bool timeUnit = false) + : m_Name{name}, m_TimeUnit{timeUnit} + { + } + + QString m_Name; ///< Unit name + bool m_TimeUnit; ///< The unit is a unit of time +}; + /** * @brief The IDataSeries aims to declare a data series. * @@ -29,9 +39,9 @@ public: /// Returns the x-axis dataset virtual std::shared_ptr > xAxisData() = 0; - virtual QString xAxisUnit() const = 0; + virtual Unit xAxisUnit() const = 0; - virtual QString valuesUnit() const = 0; + virtual Unit valuesUnit() const = 0; }; #endif // SCIQLOP_IDATASERIES_H diff --git a/core/include/Data/ScalarSeries.h b/core/include/Data/ScalarSeries.h index 5dd39b0..e740bec 100644 --- a/core/include/Data/ScalarSeries.h +++ b/core/include/Data/ScalarSeries.h @@ -14,7 +14,7 @@ public: * @param xAxisUnit x-axis unit * @param valuesUnit values unit */ - explicit ScalarSeries(int size, const QString &xAxisUnit, const QString &valuesUnit); + explicit ScalarSeries(int size, Unit xAxisUnit, Unit valuesUnit); /** * Sets data for a specific index. The index has to be valid to be effective diff --git a/core/src/Data/ScalarSeries.cpp b/core/src/Data/ScalarSeries.cpp index f3f4fc2..bd07739 100644 --- a/core/src/Data/ScalarSeries.cpp +++ b/core/src/Data/ScalarSeries.cpp @@ -1,8 +1,8 @@ #include -ScalarSeries::ScalarSeries(int size, const QString &xAxisUnit, const QString &valuesUnit) - : DataSeries{std::make_shared >(size), xAxisUnit, - std::make_shared >(size), valuesUnit} +ScalarSeries::ScalarSeries(int size, Unit xAxisUnit, Unit valuesUnit) + : DataSeries{std::make_shared >(size), std::move(xAxisUnit), + std::make_shared >(size), std::move(valuesUnit)} { } diff --git a/plugins/mockplugin/src/CosinusProvider.cpp b/plugins/mockplugin/src/CosinusProvider.cpp index 8240f30..24cc69a 100644 --- a/plugins/mockplugin/src/CosinusProvider.cpp +++ b/plugins/mockplugin/src/CosinusProvider.cpp @@ -19,7 +19,7 @@ CosinusProvider::retrieveData(const DataProviderParameters ¶meters) const // Generates scalar series containing cosinus values (one value per second) auto scalarSeries - = std::make_unique(end - start, QStringLiteral("t"), QStringLiteral("")); + = std::make_unique(end - start, Unit{QStringLiteral("t"), true}, Unit{}); auto dataIndex = 0; for (auto time = start; time < end; ++time, ++dataIndex) {