summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2022-08-15 14:57:56 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2022-08-18 11:10:53 +0000
commite4b35fa5763e4a11258f94fc2381acb4c8792d29 (patch)
treeb08d346bcc70af69ba6973eeb380be60d0a02df7
parent326f70c40f3f6d5abad2e1f4cad03015538995b1 (diff)
downloadqt-creator-e4b35fa5763e4a11258f94fc2381acb4c8792d29.tar.gz
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 <mahmoud.badri@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
-rw-r--r--src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp6
-rw-r--r--src/plugins/qmldesigner/components/materialeditor/materialeditorview.h1
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 d9e36363d9..1a3ab43763 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 64260ead76..e631ae9ca8 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<QColorDialog> m_colorDialog;
QPointer<ItemLibraryInfo> m_itemLibraryInfo;