Loading editor/src/webedit_api.cpp +16 −4 Changes for editor/src/webedit_api.cpp: 16 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -482,12 +482,15 @@ void webedit::Api::loadDocumentTreeFromXml(DocumentState &doc, const std::string continue; el->fromXmlObject(child); const char *instanceIdAttr = child->Attribute("instance_id"); if (instanceIdAttr && instanceIdAttr[0]) el->setInstanceId(instanceIdAttr); if (!doc.root) doc.root = el; else if (lastTop) lastTop->setNextEl(el); lastTop = el; loadChildrenFromXml(child, el, doc); loadChildrenFromXml(child, el, doc, /*preserveInstanceIds=*/true); } } Loading Loading @@ -1889,6 +1892,9 @@ void webedit::Api::handleImportXml(libhttppp::HttpRequest &curreq, if (!el) continue; el->fromXmlObject(child); const char *instanceIdAttr = child->Attribute("instance_id"); if (instanceIdAttr && instanceIdAttr[0]) el->setInstanceId(instanceIdAttr); if (!doc.root) { doc.root = el; Loading @@ -1898,7 +1904,7 @@ void webedit::Api::handleImportXml(libhttppp::HttpRequest &curreq, lastTop = el; // Load children recursively loadChildrenFromXml(child, el, doc); loadChildrenFromXml(child, el, doc, /*preserveInstanceIds=*/true); } persistDocumentStateToSession(sessionid, doc); Loading Loading @@ -3848,7 +3854,8 @@ blogi::webedit::EditPlugin *webedit::Api::createPluginByName( void webedit::Api::loadChildrenFromXml(tinyxml2::XMLElement *parentXml, blogi::webedit::EditPlugin *parentEl, DocumentState &doc) { DocumentState &doc, bool preserveInstanceIds) { blogi::webedit::EditPlugin *lastChild = nullptr; for (auto *childXml = parentXml->FirstChildElement(); childXml; childXml = childXml->NextSiblingElement()) { Loading @@ -3864,6 +3871,11 @@ void webedit::Api::loadChildrenFromXml(tinyxml2::XMLElement *parentXml, if (!childEl) continue; childEl->fromXmlObject(childXml); if (preserveInstanceIds) { const char *instanceIdAttr = childXml->Attribute("instance_id"); if (instanceIdAttr && instanceIdAttr[0]) childEl->setInstanceId(instanceIdAttr); } if (!lastChild) { parentEl->setChildEl(childEl); Loading @@ -3873,7 +3885,7 @@ void webedit::Api::loadChildrenFromXml(tinyxml2::XMLElement *parentXml, lastChild = childEl; // Recurse loadChildrenFromXml(childXml, childEl, doc); loadChildrenFromXml(childXml, childEl, doc, preserveInstanceIds); } } Loading editor/src/webedit_api.h +2 −1 Changes for editor/src/webedit_api.h: 2 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -200,7 +200,8 @@ namespace webedit { void loadChildrenFromXml(tinyxml2::XMLElement *parentXml, blogi::webedit::EditPlugin *parentEl, DocumentState &doc); DocumentState &doc, bool preserveInstanceIds = false); NodeContext findNodeContextInChildren(blogi::webedit::EditPlugin *parent, const std::string &uuid); Loading src/plugin.h +4 −0 Changes for src/plugin.h: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -317,6 +317,10 @@ namespace blogi { Id.generate(); } void setInstanceId(const std::string &id) { if (!id.empty()) Id.parse(id); } protected: uuid::uuid Type; uuid::uuid Id; Loading Loading
editor/src/webedit_api.cpp +16 −4 Changes for editor/src/webedit_api.cpp: 16 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -482,12 +482,15 @@ void webedit::Api::loadDocumentTreeFromXml(DocumentState &doc, const std::string continue; el->fromXmlObject(child); const char *instanceIdAttr = child->Attribute("instance_id"); if (instanceIdAttr && instanceIdAttr[0]) el->setInstanceId(instanceIdAttr); if (!doc.root) doc.root = el; else if (lastTop) lastTop->setNextEl(el); lastTop = el; loadChildrenFromXml(child, el, doc); loadChildrenFromXml(child, el, doc, /*preserveInstanceIds=*/true); } } Loading Loading @@ -1889,6 +1892,9 @@ void webedit::Api::handleImportXml(libhttppp::HttpRequest &curreq, if (!el) continue; el->fromXmlObject(child); const char *instanceIdAttr = child->Attribute("instance_id"); if (instanceIdAttr && instanceIdAttr[0]) el->setInstanceId(instanceIdAttr); if (!doc.root) { doc.root = el; Loading @@ -1898,7 +1904,7 @@ void webedit::Api::handleImportXml(libhttppp::HttpRequest &curreq, lastTop = el; // Load children recursively loadChildrenFromXml(child, el, doc); loadChildrenFromXml(child, el, doc, /*preserveInstanceIds=*/true); } persistDocumentStateToSession(sessionid, doc); Loading Loading @@ -3848,7 +3854,8 @@ blogi::webedit::EditPlugin *webedit::Api::createPluginByName( void webedit::Api::loadChildrenFromXml(tinyxml2::XMLElement *parentXml, blogi::webedit::EditPlugin *parentEl, DocumentState &doc) { DocumentState &doc, bool preserveInstanceIds) { blogi::webedit::EditPlugin *lastChild = nullptr; for (auto *childXml = parentXml->FirstChildElement(); childXml; childXml = childXml->NextSiblingElement()) { Loading @@ -3864,6 +3871,11 @@ void webedit::Api::loadChildrenFromXml(tinyxml2::XMLElement *parentXml, if (!childEl) continue; childEl->fromXmlObject(childXml); if (preserveInstanceIds) { const char *instanceIdAttr = childXml->Attribute("instance_id"); if (instanceIdAttr && instanceIdAttr[0]) childEl->setInstanceId(instanceIdAttr); } if (!lastChild) { parentEl->setChildEl(childEl); Loading @@ -3873,7 +3885,7 @@ void webedit::Api::loadChildrenFromXml(tinyxml2::XMLElement *parentXml, lastChild = childEl; // Recurse loadChildrenFromXml(childXml, childEl, doc); loadChildrenFromXml(childXml, childEl, doc, preserveInstanceIds); } } Loading
editor/src/webedit_api.h +2 −1 Changes for editor/src/webedit_api.h: 2 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -200,7 +200,8 @@ namespace webedit { void loadChildrenFromXml(tinyxml2::XMLElement *parentXml, blogi::webedit::EditPlugin *parentEl, DocumentState &doc); DocumentState &doc, bool preserveInstanceIds = false); NodeContext findNodeContextInChildren(blogi::webedit::EditPlugin *parent, const std::string &uuid); Loading
src/plugin.h +4 −0 Changes for src/plugin.h: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -317,6 +317,10 @@ namespace blogi { Id.generate(); } void setInstanceId(const std::string &id) { if (!id.empty()) Id.parse(id); } protected: uuid::uuid Type; uuid::uuid Id; Loading