diff --git a/GUI/Model/Session/SessionItem.cpp b/GUI/Model/Session/SessionItem.cpp index eb8fed9b6a5bb09cf5d29e29ecee48794abf1769..57ef06eb2480877befd9811af62b9354aeeea246 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 eef243f3d9c0268edab060943191d6da92a3400a..17a3089966847c0036f8f3bb33fede7ae34f9a25 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 f1118ea39acb1dbbb4579c9a42b756f6aa7947a4..ce963bbd23242cec0c12c5b1789c5f285f546b4b 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()) {