From f3d4cb475cbad4e2fd1043070e0b958f847175cd Mon Sep 17 00:00:00 2001
From: Joachim Wuttke <j.wuttke@fz-juelich.de>
Date: Fri, 9 Feb 2024 17:05:32 +0100
Subject: [PATCH] access member directly

---
 GUI/Model/Files/DatafilesSet.cpp | 16 ++++++++--------
 GUI/Model/Files/DatafilesSet.h   |  3 ++-
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/GUI/Model/Files/DatafilesSet.cpp b/GUI/Model/Files/DatafilesSet.cpp
index f1be1a7d1a9..c9d756be004 100644
--- a/GUI/Model/Files/DatafilesSet.cpp
+++ b/GUI/Model/Files/DatafilesSet.cpp
@@ -42,19 +42,19 @@ void DatafilesSet::removeDatafileItem(DatafileItem* dfi)
 {
     ASSERT(dfi);
     int index = dfileItems().indexOf(dfi);
-    m_dfile_items.erase(m_dfile_items.begin() + index);
+    m_dfile_items.release_at(index);
 }
 
 void DatafilesSet::clear()
 {
-    for (auto* dfi : dfileItems())
+    for (auto* dfi : m_dfile_items)
         removeDatafileItem(dfi);
 }
 
 QVector<DataItem*> DatafilesSet::dataItems() const
 {
     QVector<DataItem*> result;
-    for (auto* dfi : dfileItems())
+    for (auto* dfi : m_dfile_items)
         if (auto* data_item = dfi->dataItem())
             result.push_back(data_item);
     return result;
@@ -65,7 +65,7 @@ void DatafilesSet::writeTo(QXmlStreamWriter* w) const
     XML::writeAttribute(w, XML::Attrib::version, uint(1));
 
     // real items
-    for (auto* dfi : dfileItems()) {
+    for (auto* dfi : m_dfile_items) {
         w->writeStartElement(Tag::RealData);
         XML::writeAttribute(w, XML::Attrib::name, dfi->realItemName());
         dfi->writeTo(w);
@@ -110,7 +110,7 @@ void DatafilesSet::readFrom(QXmlStreamReader* r)
 
 void DatafilesSet::writeDatafiles(const QString& projectDir) const
 {
-    for (const auto* dfi : dfileItems())
+    for (const auto* dfi : m_dfile_items)
         dfi->saveDatafield(projectDir);
 
     dataFilesCleaner.cleanOldFiles(projectDir, dataItems());
@@ -118,7 +118,7 @@ void DatafilesSet::writeDatafiles(const QString& projectDir) const
 
 void DatafilesSet::readDatafiles(const QString& projectDir, MessageService* messageService)
 {
-    for (auto* dfi : dfileItems())
+    for (auto* dfi : m_dfile_items)
         dfi->loadDatafield(projectDir, messageService);
 
     dataFilesCleaner.recollectDataNames(dataItems());
@@ -128,14 +128,14 @@ QVector<DatafileItem*> DatafilesSet::dfileItems() const
 {
     QVector<DatafileItem*> items(m_dfile_items.size());
     for (int i = 0; i < items.size(); i++)
-        items[i] = m_dfile_items[i].get();
+        items[i] = m_dfile_items[i];
     return items;
 }
 
 QStringList DatafilesSet::realItemNames() const
 {
     QStringList result;
-    for (DatafileItem* dfi : dfileItems())
+    for (DatafileItem* dfi : m_dfile_items)
         result.append(dfi->realItemName());
     return result;
 }
diff --git a/GUI/Model/Files/DatafilesSet.h b/GUI/Model/Files/DatafilesSet.h
index 38f9e45ec98..afdeb10412c 100644
--- a/GUI/Model/Files/DatafilesSet.h
+++ b/GUI/Model/Files/DatafilesSet.h
@@ -15,6 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_FILES_DATAFILESSET_H
 #define BORNAGAIN_GUI_MODEL_FILES_DATAFILESSET_H
 
+#include "Base/Types/OwningVector.h"
 #include "GUI/Model/Files/DatafilesCleaner.h"
 #include <QObject>
 #include <QXmlStreamWriter>
@@ -48,7 +49,7 @@ private:
     QVector<DataItem*> dataItems() const;
 
     mutable DatafilesCleaner dataFilesCleaner;
-    std::vector<std::unique_ptr<DatafileItem>> m_dfile_items;
+    OwningVector<DatafileItem> m_dfile_items;
     int m_current_index = -1;
 };
 
-- 
GitLab