Commit 126d25ef authored by jan.koester's avatar jan.koester
Browse files

test

parent fbfa40dc
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@ void DocumentManager::clearDocument() {
    _ownedElements.clear();
    _doc.Clear();
    _rootEl = nullptr;
    _publishTarget.clear();
    _publishParams.clear();
}

void DocumentManager::newDocument() {
@@ -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;
}
@@ -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);
@@ -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);
@@ -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;
}
@@ -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 &paramsJson) { _publishParams = paramsJson; }
+10 −0
Original line number Diff line number Diff line
@@ -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 &paramsJson);

private:
    void clearDocument();
    void loadWidgetsFromXml(tinyxml2::XMLElement *xmlEl,
@@ -112,4 +118,8 @@ private:
    /* Clipboard */
    tinyxml2::XMLDocument _clipDoc;
    tinyxml2::XMLElement *_clipEl = nullptr;

    /* Publish settings saved with document */
    QString _publishTarget;
    QString _publishParams;
};
+5 −0
Original line number Diff line number Diff line
@@ -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 &paramsJson) { _doc->setPublishParams(paramsJson); }

void LocalApi::publishToTarget(const QString &target, const QString &paramsJson) {
    if (!_pub->isConfigured()) {
        emit publishCompleted(false, "Not connected");
+6 −0
Original line number Diff line number Diff line
@@ -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 &paramsJson);

    /* Tab management */
    Q_INVOKABLE int     currentTabIndex() const;
    Q_INVOKABLE int     tabCount() const;
+10 −1
Original line number Diff line number Diff line
@@ -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
@@ -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) {