diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2023-03-14 11:57:34 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2023-03-15 15:40:58 +0000 |
commit | ee72b1099b0e6534994962da88d3639857d7bd24 (patch) | |
tree | 1a5199d95ac3986a5941fae2dad38413cb8673f7 | |
parent | 58cd47f2030260c13749692d33fe1d53f90eb5c3 (diff) | |
download | qt-creator-ee72b1099b0e6534994962da88d3639857d7bd24.tar.gz |
QmlDesigner: Improve speed of undo
Undo works strickly on the text editor and we wait 600ms
until we propagte changes from text editor to the model, to not
interrupt typing. In this case we should force the update immediately.
Task-number: QDS-9440
Change-Id: I5c854e7b4c6936e02c57d4cc7433a6e0ede50af4
(cherry picked from commit d26e35b221c51ed56237dff47d48fcb204e317f0)
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
3 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp index 2b185f2bf0..f4001ed4dc 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp @@ -700,16 +700,20 @@ ModelNode DesignDocument::rootModelNode() const void DesignDocument::undo() { - if (rewriterView() && !rewriterView()->modificationGroupActive()) + if (rewriterView() && !rewriterView()->modificationGroupActive()) { plainTextEdit()->undo(); + rewriterView()->forceAmend(); + } viewManager().resetPropertyEditorView(); } void DesignDocument::redo() { - if (rewriterView() && !rewriterView()->modificationGroupActive()) + if (rewriterView() && !rewriterView()->modificationGroupActive()) { plainTextEdit()->redo(); + rewriterView()->forceAmend(); + } viewManager().resetPropertyEditorView(); } diff --git a/src/plugins/qmldesigner/designercore/include/rewriterview.h b/src/plugins/qmldesigner/designercore/include/rewriterview.h index 56dc01c215..ea777edce7 100644 --- a/src/plugins/qmldesigner/designercore/include/rewriterview.h +++ b/src/plugins/qmldesigner/designercore/include/rewriterview.h @@ -170,6 +170,8 @@ public: bool possibleImportsEnabled() const; void setPossibleImportsEnabled(bool b); + void forceAmend(); + signals: void modelInterfaceProjectUpdated(); diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index 4a9ab62814..3520420459 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -703,6 +703,12 @@ void RewriterView::setPossibleImportsEnabled(bool b) m_possibleImportsEnabled = b; } +void RewriterView::forceAmend() +{ + m_amendTimer.stop(); + amendQmlText(); +} + Internal::ModelNodePositionStorage *RewriterView::positionStorage() const { return m_positionStorage.data(); |