Loading editor/documentmanager.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ void DocumentManager::clearDocument() { _ownedElements.clear(); _doc.Clear(); _rootEl = nullptr; _publishTarget.clear(); _publishParams.clear(); } void DocumentManager::newDocument() { Loading Loading @@ -87,6 +89,15 @@ bool DocumentManager::loadFromFile(const QString &path) { if (gcss) _rootEl->SetAttribute("GlobalCss", gcss); _doc.InsertFirstChild(_rootEl); /* Load publish settings */ tinyxml2::XMLElement *pubEl = root->FirstChildElement("PublishSettings"); if (pubEl) { const char *pt = pubEl->Attribute("target"); if (pt) _publishTarget = QString::fromUtf8(pt); const char *pp = pubEl->Attribute("params"); if (pp) _publishParams = QString::fromUtf8(pp); } loadWidgetsFromXml(root, nullptr); return true; } Loading @@ -99,6 +110,15 @@ bool DocumentManager::saveToFile(const QString &path) { _rootEl->SetAttribute("editor", "blogi"); _doc.InsertFirstChild(_rootEl); /* Save publish settings */ if (!_publishTarget.isEmpty()) { tinyxml2::XMLElement *pubEl = _doc.NewElement("PublishSettings"); pubEl->SetAttribute("target", _publishTarget.toUtf8().constData()); if (!_publishParams.isEmpty()) pubEl->SetAttribute("params", _publishParams.toUtf8().constData()); _rootEl->InsertEndChild(pubEl); } EditPlugin *el = _docRoot; while (el) { tinyxml2::XMLElement *xmlEl = el->toXmlObject(&_doc); Loading @@ -116,6 +136,15 @@ QString DocumentManager::exportXml() { root->SetAttribute("editor", "blogi"); expDoc.InsertFirstChild(root); /* Save publish settings */ if (!_publishTarget.isEmpty()) { tinyxml2::XMLElement *pubEl = expDoc.NewElement("PublishSettings"); pubEl->SetAttribute("target", _publishTarget.toUtf8().constData()); if (!_publishParams.isEmpty()) pubEl->SetAttribute("params", _publishParams.toUtf8().constData()); root->InsertEndChild(pubEl); } EditPlugin *el = _docRoot; while (el) { tinyxml2::XMLElement *xmlEl = el->toXmlObject(&expDoc); Loading Loading @@ -143,6 +172,15 @@ bool DocumentManager::importXml(const QString &xml) { _rootEl->SetAttribute("editor", "blogi"); _doc.InsertFirstChild(_rootEl); /* Load publish settings */ tinyxml2::XMLElement *pubEl = root->FirstChildElement("PublishSettings"); if (pubEl) { const char *pt = pubEl->Attribute("target"); if (pt) _publishTarget = QString::fromUtf8(pt); const char *pp = pubEl->Attribute("params"); if (pp) _publishParams = QString::fromUtf8(pp); } loadWidgetsFromXml(root, nullptr); return true; } Loading Loading @@ -782,3 +820,8 @@ void DocumentManager::loadWidgetsFromXml(tinyxml2::XMLElement *xmlEl, EditPlugin childXml = childXml->NextSiblingElement(); } } QString DocumentManager::publishTarget() const { return _publishTarget; } void DocumentManager::setPublishTarget(const QString &target) { _publishTarget = target; } QString DocumentManager::publishParams() const { return _publishParams; } void DocumentManager::setPublishParams(const QString ¶msJson) { _publishParams = paramsJson; } editor/documentmanager.h +10 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,12 @@ public: QString getElementProperties(const QString &uuid); QString setElementProperties(const QString &uuid, const QString &propsJson); /* Publish settings stored with document */ QString publishTarget() const; void setPublishTarget(const QString &target); QString publishParams() const; void setPublishParams(const QString ¶msJson); private: void clearDocument(); void loadWidgetsFromXml(tinyxml2::XMLElement *xmlEl, Loading Loading @@ -112,4 +118,8 @@ private: /* Clipboard */ tinyxml2::XMLDocument _clipDoc; tinyxml2::XMLElement *_clipEl = nullptr; /* Publish settings saved with document */ QString _publishTarget; QString _publishParams; }; editor/localapi.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1059,6 +1059,11 @@ QString LocalApi::jsonSet(const QString &json, const QString &key, const QString return QString::fromUtf8(QJsonDocument(obj).toJson(QJsonDocument::Compact)); } QString LocalApi::getPublishTarget() const { return _doc->publishTarget(); } void LocalApi::setPublishTarget(const QString &target) { _doc->setPublishTarget(target); } QString LocalApi::getPublishParams() const { return _doc->publishParams(); } void LocalApi::setPublishParams(const QString ¶msJson) { _doc->setPublishParams(paramsJson); } void LocalApi::publishToTarget(const QString &target, const QString ¶msJson) { if (!_pub->isConfigured()) { emit publishCompleted(false, "Not connected"); Loading editor/localapi.h +6 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,12 @@ public: Q_INVOKABLE QString collectRepeaterParams(QObject *repeater); Q_INVOKABLE QString jsonSet(const QString &json, const QString &key, const QString &value); /* Publish settings stored with document */ Q_INVOKABLE QString getPublishTarget() const; Q_INVOKABLE void setPublishTarget(const QString &target); Q_INVOKABLE QString getPublishParams() const; Q_INVOKABLE void setPublishParams(const QString ¶msJson); /* Tab management */ Q_INVOKABLE int currentTabIndex() const; Q_INVOKABLE int tabCount() const; Loading editor/qml/ConnectionPanel.qml +10 −1 Original line number Diff line number Diff line Loading @@ -861,6 +861,10 @@ ColumnLayout { lastPublishTarget = t.name lastPublishParamsJson = paramsJson /* Save publish settings with document */ localApi.setPublishTarget(t.name) localApi.setPublishParams(paramsJson) if (overwrite) localApi.publishToTargetOverwrite(t.name, lastPublishParamsJson, existingId) else Loading Loading @@ -909,10 +913,15 @@ ColumnLayout { var resp = JSON.parse(json) connPanel.publishTargets = resp.targets || [] targetModel.clear() /* Restore saved target from document, fall back to "staticpage" */ var savedTarget = localApi.getPublishTarget() var defaultIdx = 0 for (var i = 0; i < connPanel.publishTargets.length; i++) { targetModel.append({"text": connPanel.publishTargets[i].name}) if (connPanel.publishTargets[i].name === "staticpage") if (savedTarget !== "" && connPanel.publishTargets[i].name === savedTarget) defaultIdx = i else if (savedTarget === "" && connPanel.publishTargets[i].name === "staticpage") defaultIdx = i } if (connPanel.publishTargets.length > 0) { Loading Loading
editor/documentmanager.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ void DocumentManager::clearDocument() { _ownedElements.clear(); _doc.Clear(); _rootEl = nullptr; _publishTarget.clear(); _publishParams.clear(); } void DocumentManager::newDocument() { Loading Loading @@ -87,6 +89,15 @@ bool DocumentManager::loadFromFile(const QString &path) { if (gcss) _rootEl->SetAttribute("GlobalCss", gcss); _doc.InsertFirstChild(_rootEl); /* Load publish settings */ tinyxml2::XMLElement *pubEl = root->FirstChildElement("PublishSettings"); if (pubEl) { const char *pt = pubEl->Attribute("target"); if (pt) _publishTarget = QString::fromUtf8(pt); const char *pp = pubEl->Attribute("params"); if (pp) _publishParams = QString::fromUtf8(pp); } loadWidgetsFromXml(root, nullptr); return true; } Loading @@ -99,6 +110,15 @@ bool DocumentManager::saveToFile(const QString &path) { _rootEl->SetAttribute("editor", "blogi"); _doc.InsertFirstChild(_rootEl); /* Save publish settings */ if (!_publishTarget.isEmpty()) { tinyxml2::XMLElement *pubEl = _doc.NewElement("PublishSettings"); pubEl->SetAttribute("target", _publishTarget.toUtf8().constData()); if (!_publishParams.isEmpty()) pubEl->SetAttribute("params", _publishParams.toUtf8().constData()); _rootEl->InsertEndChild(pubEl); } EditPlugin *el = _docRoot; while (el) { tinyxml2::XMLElement *xmlEl = el->toXmlObject(&_doc); Loading @@ -116,6 +136,15 @@ QString DocumentManager::exportXml() { root->SetAttribute("editor", "blogi"); expDoc.InsertFirstChild(root); /* Save publish settings */ if (!_publishTarget.isEmpty()) { tinyxml2::XMLElement *pubEl = expDoc.NewElement("PublishSettings"); pubEl->SetAttribute("target", _publishTarget.toUtf8().constData()); if (!_publishParams.isEmpty()) pubEl->SetAttribute("params", _publishParams.toUtf8().constData()); root->InsertEndChild(pubEl); } EditPlugin *el = _docRoot; while (el) { tinyxml2::XMLElement *xmlEl = el->toXmlObject(&expDoc); Loading Loading @@ -143,6 +172,15 @@ bool DocumentManager::importXml(const QString &xml) { _rootEl->SetAttribute("editor", "blogi"); _doc.InsertFirstChild(_rootEl); /* Load publish settings */ tinyxml2::XMLElement *pubEl = root->FirstChildElement("PublishSettings"); if (pubEl) { const char *pt = pubEl->Attribute("target"); if (pt) _publishTarget = QString::fromUtf8(pt); const char *pp = pubEl->Attribute("params"); if (pp) _publishParams = QString::fromUtf8(pp); } loadWidgetsFromXml(root, nullptr); return true; } Loading Loading @@ -782,3 +820,8 @@ void DocumentManager::loadWidgetsFromXml(tinyxml2::XMLElement *xmlEl, EditPlugin childXml = childXml->NextSiblingElement(); } } QString DocumentManager::publishTarget() const { return _publishTarget; } void DocumentManager::setPublishTarget(const QString &target) { _publishTarget = target; } QString DocumentManager::publishParams() const { return _publishParams; } void DocumentManager::setPublishParams(const QString ¶msJson) { _publishParams = paramsJson; }
editor/documentmanager.h +10 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,12 @@ public: QString getElementProperties(const QString &uuid); QString setElementProperties(const QString &uuid, const QString &propsJson); /* Publish settings stored with document */ QString publishTarget() const; void setPublishTarget(const QString &target); QString publishParams() const; void setPublishParams(const QString ¶msJson); private: void clearDocument(); void loadWidgetsFromXml(tinyxml2::XMLElement *xmlEl, Loading Loading @@ -112,4 +118,8 @@ private: /* Clipboard */ tinyxml2::XMLDocument _clipDoc; tinyxml2::XMLElement *_clipEl = nullptr; /* Publish settings saved with document */ QString _publishTarget; QString _publishParams; };
editor/localapi.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1059,6 +1059,11 @@ QString LocalApi::jsonSet(const QString &json, const QString &key, const QString return QString::fromUtf8(QJsonDocument(obj).toJson(QJsonDocument::Compact)); } QString LocalApi::getPublishTarget() const { return _doc->publishTarget(); } void LocalApi::setPublishTarget(const QString &target) { _doc->setPublishTarget(target); } QString LocalApi::getPublishParams() const { return _doc->publishParams(); } void LocalApi::setPublishParams(const QString ¶msJson) { _doc->setPublishParams(paramsJson); } void LocalApi::publishToTarget(const QString &target, const QString ¶msJson) { if (!_pub->isConfigured()) { emit publishCompleted(false, "Not connected"); Loading
editor/localapi.h +6 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,12 @@ public: Q_INVOKABLE QString collectRepeaterParams(QObject *repeater); Q_INVOKABLE QString jsonSet(const QString &json, const QString &key, const QString &value); /* Publish settings stored with document */ Q_INVOKABLE QString getPublishTarget() const; Q_INVOKABLE void setPublishTarget(const QString &target); Q_INVOKABLE QString getPublishParams() const; Q_INVOKABLE void setPublishParams(const QString ¶msJson); /* Tab management */ Q_INVOKABLE int currentTabIndex() const; Q_INVOKABLE int tabCount() const; Loading
editor/qml/ConnectionPanel.qml +10 −1 Original line number Diff line number Diff line Loading @@ -861,6 +861,10 @@ ColumnLayout { lastPublishTarget = t.name lastPublishParamsJson = paramsJson /* Save publish settings with document */ localApi.setPublishTarget(t.name) localApi.setPublishParams(paramsJson) if (overwrite) localApi.publishToTargetOverwrite(t.name, lastPublishParamsJson, existingId) else Loading Loading @@ -909,10 +913,15 @@ ColumnLayout { var resp = JSON.parse(json) connPanel.publishTargets = resp.targets || [] targetModel.clear() /* Restore saved target from document, fall back to "staticpage" */ var savedTarget = localApi.getPublishTarget() var defaultIdx = 0 for (var i = 0; i < connPanel.publishTargets.length; i++) { targetModel.append({"text": connPanel.publishTargets[i].name}) if (connPanel.publishTargets[i].name === "staticpage") if (savedTarget !== "" && connPanel.publishTargets[i].name === savedTarget) defaultIdx = i else if (savedTarget === "" && connPanel.publishTargets[i].name === "staticpage") defaultIdx = i } if (connPanel.publishTargets.length > 0) { Loading