diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-08-15 14:57:56 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-08-18 11:10:53 +0000 |
commit | e4b35fa5763e4a11258f94fc2381acb4c8792d29 (patch) | |
tree | b08d346bcc70af69ba6973eeb380be60d0a02df7 | |
parent | 326f70c40f3f6d5abad2e1f4cad03015538995b1 (diff) | |
download | qt-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.cpp | 6 | ||||
-rw-r--r-- | src/plugins/qmldesigner/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 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; |