From e4b35fa5763e4a11258f94fc2381acb4c8792d29 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 15 Aug 2022 14:57:56 +0300 Subject: [PATCH] QmlDesigner: Block preview data change handling when initializing Handling the data change is pointless when we are initializing UI to stored values, and can also trigger undesirable secondary effects like showing color selection dialog. Fixes: QDS-7415 Change-Id: I0321c47d5a63971dc890c37f90ec6fedc8293eca Reviewed-by: Mahmoud Badri Reviewed-by: --- .../components/materialeditor/materialeditorview.cpp | 6 ++++-- .../components/materialeditor/materialeditorview.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp index d9e36363d9d..1a3ab43763a 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp @@ -453,7 +453,7 @@ void MaterialEditorView::handleToolBarAction(int action) void MaterialEditorView::handlePreviewEnvChanged(const QString &envAndValue) { - if (envAndValue.isEmpty()) + if (envAndValue.isEmpty() || m_initializingPreviewData) return; QTC_ASSERT(m_hasQuick3DImport, return); @@ -514,7 +514,7 @@ void MaterialEditorView::handlePreviewEnvChanged(const QString &envAndValue) void MaterialEditorView::handlePreviewModelChanged(const QString &modelStr) { - if (modelStr.isEmpty()) + if (modelStr.isEmpty() || m_initializingPreviewData) return; QTC_ASSERT(m_hasQuick3DImport, return); @@ -655,9 +655,11 @@ void MaterialEditorView::initPreviewData() env = "Default"; if (modelStr.isEmpty()) modelStr = "#Sphere"; + m_initializingPreviewData = true; QMetaObject::invokeMethod(m_qmlBackEnd->widget()->rootObject(), "initPreviewData", Q_ARG(QVariant, env), Q_ARG(QVariant, modelStr)); + m_initializingPreviewData = false; } } diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.h b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.h index 64260ead765..e631ae9ca8a 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.h +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.h @@ -138,6 +138,7 @@ private: bool m_setupCompleted = false; bool m_hasQuick3DImport = false; bool m_hasMaterialRoot = false; + bool m_initializingPreviewData = false; QPointer m_colorDialog; QPointer m_itemLibraryInfo;