From 9437a4c1b0f0827cf7c17a93c0e6413f5c4fa658 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Tue, 23 May 2023 07:24:42 +0200
Subject: [PATCH] Import 2d: save 2 fct calls

---
 GUI/View/Import/ImportDataUtil.cpp         |  6 ------
 GUI/View/Import/ImportDataUtil.h           |  3 ---
 GUI/View/Import/RealDataSelectorWidget.cpp | 14 ++++++++------
 3 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/GUI/View/Import/ImportDataUtil.cpp b/GUI/View/Import/ImportDataUtil.cpp
index 6a4dac8ae5d..aedff3b1fa2 100644
--- a/GUI/View/Import/ImportDataUtil.cpp
+++ b/GUI/View/Import/ImportDataUtil.cpp
@@ -51,12 +51,6 @@ std::unique_ptr<Datafield> ImportKnownData(const QString& fileName,
 } // namespace
 
 
-std::unique_ptr<Datafield> GUI::View::ImportDataUtil::Import2dData(const QString& fileName,
-                                                                   IO::Filetype2D ftype)
-{
-    return ImportKnownData(fileName, ftype);
-}
-
 QString GUI::View::ImportDataUtil::Import1dData(RealItem* realItem,
                                                 const IDataLoader* selectedLoader)
 {
diff --git a/GUI/View/Import/ImportDataUtil.h b/GUI/View/Import/ImportDataUtil.h
index 15336a79204..acb841fac7f 100644
--- a/GUI/View/Import/ImportDataUtil.h
+++ b/GUI/View/Import/ImportDataUtil.h
@@ -28,9 +28,6 @@ class IDataLoader;
 
 namespace GUI::View::ImportDataUtil {
 
-//! Imports 2D data, stores them as Datafield, and returns owning pointer.
-std::unique_ptr<Datafield> Import2dData(const QString& fileName, IO::Filetype2D ftype);
-
 //! Imports 1D data into the given item.
 
 //! Returns an error text if a fatal error occurred (discard item).
diff --git a/GUI/View/Import/RealDataSelectorWidget.cpp b/GUI/View/Import/RealDataSelectorWidget.cpp
index ab10fe5d9bc..09bac31fbc8 100644
--- a/GUI/View/Import/RealDataSelectorWidget.cpp
+++ b/GUI/View/Import/RealDataSelectorWidget.cpp
@@ -14,6 +14,7 @@
 
 #include "GUI/View/Import/RealDataSelectorWidget.h"
 #include "Device/Data/Datafield.h"
+#include "Device/IO/IOFactory.h"
 #include "GUI/Application/ApplicationSettings.h"
 #include "GUI/Model/Device/RealItem.h"
 #include "GUI/Model/Model/RealTreeModel.h"
@@ -311,13 +312,14 @@ void RealDataSelectorWidget::importData2D()
     const IO::Filetype2D ftype = filters2D.at(selectedFilter);
 
     for (const QString& fileName : fileNames) {
-        std::unique_ptr<Datafield> data = GUI::View::ImportDataUtil::Import2dData(fileName, ftype);
-        if (!data)
-            continue;
-        RealItem* realItem = m_treeModel->injectDataItem(2);
-        realItem->setRealItemName(QFileInfo(fileName).baseName());
-
+        RealItem* realItem = nullptr;
         try {
+            std::unique_ptr<Datafield> data(IO::readData2D(fileName.toStdString(), ftype));
+            if (!data)
+                continue;
+            realItem = m_treeModel->injectDataItem(2);
+            realItem->setRealItemName(QFileInfo(fileName).baseName());
+
             if (data->rank() != 2)
                 throw std::runtime_error(
                     "The content could not be interpreted correctly as 2-dimensional");
-- 
GitLab