From 6ddd67b68fd4840a435e1d3f8649b6fbadf7417e Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Thu, 19 May 2022 10:00:14 +0200
Subject: [PATCH] replace addAxis

---
 GUI/Model/Device/PointwiseAxisItem.cpp |  3 +--
 GUI/Support/IO/IOUtils.cpp             | 19 ++++++++++++++-----
 GUI/View/Loaders/QREDataLoader.cpp     |  5 ++---
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/GUI/Model/Device/PointwiseAxisItem.cpp b/GUI/Model/Device/PointwiseAxisItem.cpp
index c03568880c8..74911ab0b33 100644
--- a/GUI/Model/Device/PointwiseAxisItem.cpp
+++ b/GUI/Model/Device/PointwiseAxisItem.cpp
@@ -90,8 +90,7 @@ QByteArray PointwiseAxisItem::serializeBinaryData() const
     if (!m_axis)
         return {};
 
-    Powerfield<double> axisData;
-    axisData.addAxis(*m_axis);
+    Powerfield<double> axisData(*m_axis);
 
     std::stringstream ss;
     ReadWriteINT().writePowerfield(axisData, ss);
diff --git a/GUI/Support/IO/IOUtils.cpp b/GUI/Support/IO/IOUtils.cpp
index 96290bd1b7c..219796dbd15 100644
--- a/GUI/Support/IO/IOUtils.cpp
+++ b/GUI/Support/IO/IOUtils.cpp
@@ -14,14 +14,23 @@
 
 #include "GUI/Support/IO/IOUtils.h"
 #include "Device/Data/Powerfield.h"
+#include "Base/Util/Assert.h"
 
 std::unique_ptr<Powerfield<double>> GUI::Util::IO::binifyAxes(const Powerfield<double>& data)
 {
-    std::unique_ptr<Powerfield<double>> result(new Powerfield<double>);
-    for (size_t i = 0; i < data.rank(); ++i) {
-        const IAxis& axis = data.axis(i);
-        result->addAxis(FixedBinAxis(axis.axisName(), axis.size(), 0., axis.size()));
-    }
+    std::unique_ptr<Powerfield<double>> result;
+    if (data.rank()==1) {
+        const IAxis& X = data.axis(0);
+        result.reset(new Powerfield<double>(
+                         FixedBinAxis(X.axisName(), X.size(), 0., X.size())));
+    } else if (data.rank()==2) {
+        const IAxis& X = data.axis(0);
+        const IAxis& Y = data.axis(1);
+        result.reset(new Powerfield<double>(
+                         FixedBinAxis(X.axisName(), X.size(), 0., X.size()),
+                         FixedBinAxis(Y.axisName(), Y.size(), 0., Y.size())));
+    } else
+        ASSERT(0);
     result->setRawDataVector(data.getRawDataVector());
 
     return result;
diff --git a/GUI/View/Loaders/QREDataLoader.cpp b/GUI/View/Loaders/QREDataLoader.cpp
index 30d9928a3a8..0310bc9a1b0 100644
--- a/GUI/View/Loaders/QREDataLoader.cpp
+++ b/GUI/View/Loaders/QREDataLoader.cpp
@@ -544,8 +544,7 @@ void QREDataLoader::createPowerfieldFromParsingResult(RealDataItem* item) const
         rVec.push_back(m_importResult.rValues[lineNr]);
     }
 
-    auto* oData = new Powerfield<double>();
-    oData->addAxis(PointwiseAxis("qVector", qVec));
+    auto* oData = new Powerfield<double>(PointwiseAxis("qVector", qVec));
     oData->setRawDataVector(rVec);
 
     // -- Replacement of item->setImportData(std::move(data));
@@ -570,7 +569,7 @@ void QREDataLoader::createPowerfieldFromParsingResult(RealDataItem* item) const
     specularItem->setAxesRangeToData();
 
     item->setNativeDataUnits(units_name);
-    item->setNativePowerfield(oData->clone()); // takes ownership of odata
+    item->setNativePowerfield(oData->clone()); // also takes ownership
 }
 
 QDataStream& operator<<(QDataStream& stream, const QREDataLoader::ImportSettings& s)
-- 
GitLab