From 57c07ee5b13c9ef20b8e51a3929b9917b802f5c9 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Tue, 17 Jan 2023 19:12:23 +0100 Subject: [PATCH] RealModel: delete old files --- GUI/Model/Model/ApplicationModels.cpp | 2 +- GUI/Model/Model/ApplicationModels.h | 2 +- GUI/Model/Model/RealModel.cpp | 11 ++++++++++- GUI/Model/Model/RealModel.h | 5 ++++- GUI/Model/Project/IOService.cpp | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/GUI/Model/Model/ApplicationModels.cpp b/GUI/Model/Model/ApplicationModels.cpp index 9cd154f1b20..740fae5e30f 100644 --- a/GUI/Model/Model/ApplicationModels.cpp +++ b/GUI/Model/Model/ApplicationModels.cpp @@ -49,7 +49,7 @@ JobModel* ApplicationModels::jobModel() const return m_jobModel.get(); } -void ApplicationModels::writeTo(QXmlStreamWriter* w, const QString& projectDir) const +void ApplicationModels::writeTo(QXmlStreamWriter* w, const QString& projectDir) { // real model w->writeStartElement(Tag::RealModel); diff --git a/GUI/Model/Model/ApplicationModels.h b/GUI/Model/Model/ApplicationModels.h index be7c684cbba..1a0ca9203ec 100644 --- a/GUI/Model/Model/ApplicationModels.h +++ b/GUI/Model/Model/ApplicationModels.h @@ -33,7 +33,7 @@ public: RealModel* realModel() const; JobModel* jobModel() const; - void writeTo(QXmlStreamWriter* w, const QString &projectDir) const; + void writeTo(QXmlStreamWriter* w, const QString &projectDir); void readFrom(QXmlStreamReader* r, const QString& projectDir, MessageService* messageService); //! Returns all data items diff --git a/GUI/Model/Model/RealModel.cpp b/GUI/Model/Model/RealModel.cpp index 96e70b13cad..cba35a87ff7 100644 --- a/GUI/Model/Model/RealModel.cpp +++ b/GUI/Model/Model/RealModel.cpp @@ -52,7 +52,7 @@ void RealModel::clear() removeRealItem(realItem); } -void RealModel::writeToProject(QXmlStreamWriter* w, const QString& projectDir) const +void RealModel::writeToProject(QXmlStreamWriter* w, const QString& projectDir) { XML::writeAttribute(w, XML::Attrib::version, uint(1)); @@ -63,6 +63,7 @@ void RealModel::writeToProject(QXmlStreamWriter* w, const QString& projectDir) c realItem->writeTo(w, projectDir); w->writeEndElement(); } + deleteOldDataFiles(projectDir); } void RealModel::readFromProject(QXmlStreamReader* r, const QString& projectDir, @@ -155,6 +156,7 @@ QVector<RealItem*> RealModel::realItems2D() const void RealModel::removeRealItem(RealItem* realItem) { ASSERT(realItem); + m_realItemFilesToDelete.append(realItem->dataItem()->fileName()); int index = realItems().indexOf(realItem); m_realItems.erase(m_realItems.begin() + index); emit realDataAddedOrRemoved(); @@ -167,3 +169,10 @@ QStringList RealModel::realItemNames() const result.append(item->realItemName()); return result; } + +void RealModel::deleteOldDataFiles(const QString& projectDir) +{ + for(QString fileName : m_realItemFilesToDelete) + QFile::remove(projectDir + "/" + fileName); + m_realItemFilesToDelete.clear(); +} diff --git a/GUI/Model/Model/RealModel.h b/GUI/Model/Model/RealModel.h index 725c64cec7b..ea5e6ea9cb8 100644 --- a/GUI/Model/Model/RealModel.h +++ b/GUI/Model/Model/RealModel.h @@ -30,7 +30,7 @@ public: QVector<DataItem*> dataItems() const; void clear() override; - void writeToProject(QXmlStreamWriter* w, const QString &projectDir) const; + void writeToProject(QXmlStreamWriter* w, const QString &projectDir); void readFromProject(QXmlStreamReader* r, const QString& projectDir, MessageService* messageService = nullptr); @@ -53,7 +53,10 @@ signals: void realDataAddedOrRemoved(); private: + void deleteOldDataFiles(const QString& projectDir); + std::vector<std::unique_ptr<RealItem>> m_realItems; + QStringList m_realItemFilesToDelete; }; #endif // BORNAGAIN_GUI_MODEL_MODEL_REALMODEL_H diff --git a/GUI/Model/Project/IOService.cpp b/GUI/Model/Project/IOService.cpp index 68e390d4e06..4434d858e42 100644 --- a/GUI/Model/Project/IOService.cpp +++ b/GUI/Model/Project/IOService.cpp @@ -71,7 +71,7 @@ void DatafieldIOService::saveDataFiles(const QString& projectDir) // dealing with files QStringList oldFiles = m_history.savedFileNames(projectDir); QStringList newFiles = newHistory.savedFileNames(); - cleanOldFiles(projectDir, oldFiles, newFiles); +// cleanOldFiles(projectDir, oldFiles, newFiles); // if oldHistory contained some deleted items, that info will be dropped here m_history.setHistory(projectDir, newHistory); -- GitLab