diff options
-rw-r--r-- | src/plugins/qmldesigner/components/bindingeditor/actioneditor.cpp | 40 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/bindingeditor/actioneditor.h | 2 |
2 files changed, 41 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/bindingeditor/actioneditor.cpp b/src/plugins/qmldesigner/components/bindingeditor/actioneditor.cpp index 0260077da8..8480115a3b 100644 --- a/src/plugins/qmldesigner/components/bindingeditor/actioneditor.cpp +++ b/src/plugins/qmldesigner/components/bindingeditor/actioneditor.cpp @@ -100,7 +100,37 @@ QString ActionEditor::connectionValue() const if (!m_dialog) return {}; - return m_dialog->editorValue(); + QString value = m_dialog->editorValue().trimmed(); + + //using parsed qml for unenclosed multistring (QDS-10681) + const QString testingString = QString("Item { \n" + " onWidthChanged: %1 \n" + "}") + .arg(value); + + QmlJS::Document::MutablePtr firstAttemptDoc = QmlJS::Document::create({}, + QmlJS::Dialect::QmlQtQuick2); + firstAttemptDoc->setSource(testingString); + firstAttemptDoc->parseQml(); + + if (!firstAttemptDoc->isParsedCorrectly()) { + const QString testingString2 = QString("Item { \n" + " onWidthChanged: { \n" + " %1 \n" + " } \n" + "} \n") + .arg(value); + + QmlJS::Document::MutablePtr secondAttemptDoc = QmlJS::Document::create({}, + QmlJS::Dialect::QmlQtQuick2); + secondAttemptDoc->setSource(testingString2); + secondAttemptDoc->parseQml(); + + if (secondAttemptDoc->isParsedCorrectly()) + return QString("{\n%1\n}").arg(value); + } + + return value; } void ActionEditor::setConnectionValue(const QString &text) @@ -109,6 +139,14 @@ void ActionEditor::setConnectionValue(const QString &text) m_dialog->setEditorValue(text); } +QString ActionEditor::rawConnectionValue() const +{ + if (!m_dialog) + return {}; + + return m_dialog->editorValue(); +} + bool ActionEditor::hasModelIndex() const { return m_index.isValid(); diff --git a/src/plugins/qmldesigner/components/bindingeditor/actioneditor.h b/src/plugins/qmldesigner/components/bindingeditor/actioneditor.h index 29e5b1d99a..9a14ad2117 100644 --- a/src/plugins/qmldesigner/components/bindingeditor/actioneditor.h +++ b/src/plugins/qmldesigner/components/bindingeditor/actioneditor.h @@ -37,6 +37,8 @@ public: QString connectionValue() const; void setConnectionValue(const QString &text); + QString rawConnectionValue() const; + bool hasModelIndex() const; void resetModelIndex(); QModelIndex modelIndex() const; |