diff --git a/src/plugins/qmldesigner/designercore/rewritertransaction.cpp b/src/plugins/qmldesigner/designercore/rewritertransaction.cpp index bb1429eaec2..ff3a07223dc 100644 --- a/src/plugins/qmldesigner/designercore/rewritertransaction.cpp +++ b/src/plugins/qmldesigner/designercore/rewritertransaction.cpp @@ -72,12 +72,23 @@ bool RewriterTransaction::isValid() const return m_valid; } +void RewriterTransaction::ignoreSemanticChecks() +{ + m_ignoreSemanticChecks = true; +} + void RewriterTransaction::commit() { if (m_valid) { m_valid = false; + bool oldSemanticChecks = view()->rewriterView()->checkSemanticErrors(); + if (m_ignoreSemanticChecks) + view()->rewriterView()->setCheckSemanticErrors(false); + view()->emitRewriterEndTransaction(); + view()->rewriterView()->setCheckSemanticErrors(oldSemanticChecks); + if (m_activeIdentifier) { qDebug() << "Commit RewriterTransaction:" << m_identifier << m_identifierNumber; bool success = m_identifierList.removeOne(m_identifier + QByteArrayLiteral("-") + QByteArray::number(m_identifierNumber)); diff --git a/src/plugins/qmldesigner/designercore/rewritertransaction.h b/src/plugins/qmldesigner/designercore/rewritertransaction.h index 213b9e56180..87e50c53fe4 100644 --- a/src/plugins/qmldesigner/designercore/rewritertransaction.h +++ b/src/plugins/qmldesigner/designercore/rewritertransaction.h @@ -46,6 +46,8 @@ public: bool isValid() const; + void ignoreSemanticChecks(); + protected: AbstractView *view(); private: @@ -55,6 +57,7 @@ private: int m_identifierNumber; static QList m_identifierList; static bool m_activeIdentifier; + bool m_ignoreSemanticChecks = false; }; } //QmlDesigner