summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2023-03-14 11:57:34 +0100
committerThomas Hartmann <thomas.hartmann@qt.io>2023-03-15 15:40:58 +0000
commitee72b1099b0e6534994962da88d3639857d7bd24 (patch)
tree1a5199d95ac3986a5941fae2dad38413cb8673f7
parent58cd47f2030260c13749692d33fe1d53f90eb5c3 (diff)
downloadqt-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>
-rw-r--r--src/plugins/qmldesigner/components/integration/designdocument.cpp8
-rw-r--r--src/plugins/qmldesigner/designercore/include/rewriterview.h2
-rw-r--r--src/plugins/qmldesigner/designercore/model/rewriterview.cpp6
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();