aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-08-20 17:32:28 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-08-27 10:03:41 +0000
commite2e2c462064e4c31ff9ad95dfbd3dd781e325d32 (patch)
tree0c1357652b9a879adfbaec587a7fa76eeea923d0
parentacdb971048652b49941f3d4c009a5cadf466047c (diff)
QmlDesigner: Avoid visual artefacts
Avoid visual artefacts when changing states. Change-Id: I00aa1499ff027d060b06699b60ebd2d5162d0e16 Reviewed-by: Henning Gründl <henning.gruendl@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditorview.cpp9
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditorview.h9
2 files changed, 14 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
index 96dda07c51..1a9f165483 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
@@ -234,12 +234,12 @@ void FormEditorView::createFormEditorWidget()
connect(m_formEditorWidget->resetAction(), &QAction::triggered, this, &FormEditorView::resetNodeInstanceView);
}
-void FormEditorView::temporaryBlockView()
+void FormEditorView::temporaryBlockView(int duration)
{
m_formEditorWidget->graphicsView()->setUpdatesEnabled(false);
static auto timer = new QTimer(qApp);
timer->setSingleShot(true);
- timer->start(1000);
+ timer->start(duration);
connect(timer, &QTimer::timeout, this, [this]() {
m_formEditorWidget->graphicsView()->setUpdatesEnabled(true);
@@ -496,6 +496,11 @@ void FormEditorView::customNotification(const AbstractView * /*view*/, const QSt
m_formEditorWidget->zoomAction()->zoomOut();
}
+void FormEditorView::currentStateChanged(const ModelNode & /*node*/)
+{
+ temporaryBlockView(100);
+}
+
AbstractFormEditorTool *FormEditorView::currentTool() const
{
return m_currentTool;
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h
index d6a479e847..64c1f2a435 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h
@@ -84,7 +84,12 @@ public:
void documentMessagesChanged(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &warnings) override;
- void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data) override;
+ void customNotification(const AbstractView *view,
+ const QString &identifier,
+ const QList<ModelNode> &nodeList,
+ const QList<QVariant> &data) override;
+
+ void currentStateChanged(const ModelNode &node) override;
// FormEditorView
WidgetInfo widgetInfo() override;
@@ -134,7 +139,7 @@ private:
void removeNodeFromScene(const QmlItemNode &qmlItemNode);
void hideNodeFromScene(const QmlItemNode &qmlItemNode);
void createFormEditorWidget();
- void temporaryBlockView();
+ void temporaryBlockView(int duration = 1000);
void resetNodeInstanceView();
QPointer<FormEditorWidget> m_formEditorWidget;