diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp index 3a7d3789044d7161269241fcd99ef3dbcadf38f5..96b7ddddb3cf8e2439f747b8066b7e3dc6cb18ee 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp @@ -748,12 +748,14 @@ RewriterView *DesignDocumentController::rewriterView() const void DesignDocumentController::undo() { - m_d->textEdit->undo(); + if (m_d->rewriterView && !m_d->rewriterView->modificationGroupActive()) + m_d->textEdit->undo(); } void DesignDocumentController::redo() { - m_d->textEdit->redo(); + if (m_d->rewriterView && !m_d->rewriterView->modificationGroupActive()) + m_d->textEdit->redo(); } #ifdef ENABLE_TEXT_VIEW diff --git a/src/plugins/qmldesigner/core/include/rewriterview.h b/src/plugins/qmldesigner/core/include/rewriterview.h index ae786990aa9481001a842028c9aba6d78538f53b..570dd1f649b5102de69e992fec13824006cf3cf2 100644 --- a/src/plugins/qmldesigner/core/include/rewriterview.h +++ b/src/plugins/qmldesigner/core/include/rewriterview.h @@ -153,6 +153,7 @@ public: int nodeLength(const ModelNode &node) const; int firstDefinitionInsideOffset(const ModelNode &node) const; int firstDefinitionInsideLength(const ModelNode &node) const; + bool modificationGroupActive(); signals: void errorsChanged(const QList<RewriterView::Error> &errors); diff --git a/src/plugins/qmldesigner/core/model/rewriterview.cpp b/src/plugins/qmldesigner/core/model/rewriterview.cpp index c913ab9ada02b915671295f76b0e0e0ad8cc1b7a..afb57334a9059fa13098562dfa1598ba7f357a9e 100644 --- a/src/plugins/qmldesigner/core/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/core/model/rewriterview.cpp @@ -484,6 +484,11 @@ int RewriterView::firstDefinitionInsideLength(const ModelNode &node) const return objectLengthCalculator(offset); } +bool RewriterView::modificationGroupActive() +{ + return m_modificationGroupActive; +} + void RewriterView::qmlTextChanged() { if (inErrorState())