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;