From 0329bab8da5629b64de2870762052db03acea4f6 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Tue, 16 Aug 2022 13:58:21 +0200 Subject: [PATCH] Datafield: fix constructors --- Device/Data/Datafield.cpp | 15 ++++++++++----- Device/Data/Datafield.h | 6 ++++-- GUI/View/Loaders/QREDataLoader.cpp | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Device/Data/Datafield.cpp b/Device/Data/Datafield.cpp index e69a3fc42bc..40570824ac9 100644 --- a/Device/Data/Datafield.cpp +++ b/Device/Data/Datafield.cpp @@ -40,16 +40,21 @@ Datafield::Datafield(Frame* frame, const std::vector<double>& values, const std: , m_errSigmas(errSigmas) { ASSERT(m_values.size() == m_frame->size()); - ASSERT(m_values.size() == m_errSigmas.size()); + ASSERT(m_errSigmas.size()==0 || m_errSigmas.size() == m_values.size()); } -Datafield::Datafield(const std::vector<IAxis*>& axes, const std::vector<double>& vector) - : Datafield(new Frame(axes), vector) +Datafield::Datafield(const std::vector<IAxis*>& axes) + : Datafield(new Frame(axes)) { } -Datafield::Datafield(const std::vector<IAxis*>& axes) - : Datafield(new Frame(axes)) +Datafield::Datafield(const std::vector<IAxis*>& axes, const std::vector<double>& values) + : Datafield(new Frame(axes), values) +{ +} + +Datafield::Datafield(const std::vector<IAxis*>& axes, const std::vector<double>& values, const std::vector<double> &errSigmas) + : Datafield(new Frame(axes), values, errSigmas) { } diff --git a/Device/Data/Datafield.h b/Device/Data/Datafield.h index 3b6be4d7586..e89f7098438 100644 --- a/Device/Data/Datafield.h +++ b/Device/Data/Datafield.h @@ -38,8 +38,10 @@ public: //! Constructor that takes ownership of supplied axes. Datafield(const std::vector<IAxis*>& axes); - //! Constructor that takes ownership of supplied axes. - Datafield(const std::vector<IAxis*>& axes, const std::vector<double>& vector); + //! Constructor that takes ownership of supplied axes and initializes values. + Datafield(const std::vector<IAxis*>& axes, const std::vector<double>& values); + //! Constructor that takes ownership of supplied axes and initializes values and errorbars + Datafield(const std::vector<IAxis*>& axes, const std::vector<double>& values, const std::vector<double>& errSigmas); Datafield(const Datafield&) = delete; Datafield(Datafield&&) = default; diff --git a/GUI/View/Loaders/QREDataLoader.cpp b/GUI/View/Loaders/QREDataLoader.cpp index df796b827aa..974eecb0164 100644 --- a/GUI/View/Loaders/QREDataLoader.cpp +++ b/GUI/View/Loaders/QREDataLoader.cpp @@ -551,7 +551,7 @@ void QREDataLoader::datafieldFromParsingResult(RealItem* item) const for (auto lineNr : lineNumbers) eVec.push_back(m_importResult.eValues[lineNr]); - auto* oData = new Datafield({new PointwiseAxis("qVector", qVec)}, rVec); + auto* oData = new Datafield({new PointwiseAxis("qVector", qVec)}, rVec, eVec); // eVec can be empty // -- Replacement of item->setImportData(std::move(data)); item->initNativeData(); -- GitLab