From 9bc218f334e9d740ec9c32d3d6b146e4f241fc19 Mon Sep 17 00:00:00 2001 From: Matthias Puchner <github@mpuchner.de> Date: Tue, 30 Nov 2021 07:40:23 +0100 Subject: [PATCH] allow selective writing of child items --- GUI/Model/Session/SessionItem.cpp | 5 +++++ GUI/Model/Session/SessionItem.h | 1 + GUI/Model/Session/SessionXML.cpp | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/GUI/Model/Session/SessionItem.cpp b/GUI/Model/Session/SessionItem.cpp index eb8fed9b6a5..57ef06eb248 100644 --- a/GUI/Model/Session/SessionItem.cpp +++ b/GUI/Model/Session/SessionItem.cpp @@ -543,6 +543,11 @@ void SessionItem::writeNonSessionItems(QXmlStreamWriter*) const {} void SessionItem::readNonSessionItems(QXmlStreamReader*) {} +bool SessionItem::allowWritingChildToXml(SessionItem* child) const +{ + return true; +} + void SessionItem::childDeleted(SessionItem* child) { int index = rowOfChild(child); diff --git a/GUI/Model/Session/SessionItem.h b/GUI/Model/Session/SessionItem.h index eef243f3d9c..17a30899668 100644 --- a/GUI/Model/Session/SessionItem.h +++ b/GUI/Model/Session/SessionItem.h @@ -314,6 +314,7 @@ public: virtual void writeNonSessionItems(QXmlStreamWriter* writer) const; virtual void readNonSessionItems(QXmlStreamReader* reader); + virtual bool allowWritingChildToXml(SessionItem* child) const; private: void childDeleted(SessionItem* child); diff --git a/GUI/Model/Session/SessionXML.cpp b/GUI/Model/Session/SessionXML.cpp index f1118ea39ac..ce963bbd232 100644 --- a/GUI/Model/Session/SessionXML.cpp +++ b/GUI/Model/Session/SessionXML.cpp @@ -82,7 +82,8 @@ void GUI::Session::XML::writeItemAndChildItems(QXmlStreamWriter* writer, const S } for (auto* child : item->children()) - writeItemAndChildItems(writer, child); + if (item->allowWritingChildToXml(child)) + writeItemAndChildItems(writer, child); QByteArray a = item->serializeBinaryData(); if (!a.isEmpty()) { -- GitLab