forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -453,7 +453,7 @@ void MaterialEditorView::handleToolBarAction(int action)
|
|||||||
|
|
||||||
void MaterialEditorView::handlePreviewEnvChanged(const QString &envAndValue)
|
void MaterialEditorView::handlePreviewEnvChanged(const QString &envAndValue)
|
||||||
{
|
{
|
||||||
if (envAndValue.isEmpty())
|
if (envAndValue.isEmpty() || m_initializingPreviewData)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QTC_ASSERT(m_hasQuick3DImport, return);
|
QTC_ASSERT(m_hasQuick3DImport, return);
|
||||||
@@ -514,7 +514,7 @@ void MaterialEditorView::handlePreviewEnvChanged(const QString &envAndValue)
|
|||||||
|
|
||||||
void MaterialEditorView::handlePreviewModelChanged(const QString &modelStr)
|
void MaterialEditorView::handlePreviewModelChanged(const QString &modelStr)
|
||||||
{
|
{
|
||||||
if (modelStr.isEmpty())
|
if (modelStr.isEmpty() || m_initializingPreviewData)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QTC_ASSERT(m_hasQuick3DImport, return);
|
QTC_ASSERT(m_hasQuick3DImport, return);
|
||||||
@@ -655,9 +655,11 @@ void MaterialEditorView::initPreviewData()
|
|||||||
env = "Default";
|
env = "Default";
|
||||||
if (modelStr.isEmpty())
|
if (modelStr.isEmpty())
|
||||||
modelStr = "#Sphere";
|
modelStr = "#Sphere";
|
||||||
|
m_initializingPreviewData = true;
|
||||||
QMetaObject::invokeMethod(m_qmlBackEnd->widget()->rootObject(),
|
QMetaObject::invokeMethod(m_qmlBackEnd->widget()->rootObject(),
|
||||||
"initPreviewData",
|
"initPreviewData",
|
||||||
Q_ARG(QVariant, env), Q_ARG(QVariant, modelStr));
|
Q_ARG(QVariant, env), Q_ARG(QVariant, modelStr));
|
||||||
|
m_initializingPreviewData = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -138,6 +138,7 @@ private:
|
|||||||
bool m_setupCompleted = false;
|
bool m_setupCompleted = false;
|
||||||
bool m_hasQuick3DImport = false;
|
bool m_hasQuick3DImport = false;
|
||||||
bool m_hasMaterialRoot = false;
|
bool m_hasMaterialRoot = false;
|
||||||
|
bool m_initializingPreviewData = false;
|
||||||
|
|
||||||
QPointer<QColorDialog> m_colorDialog;
|
QPointer<QColorDialog> m_colorDialog;
|
||||||
QPointer<ItemLibraryInfo> m_itemLibraryInfo;
|
QPointer<ItemLibraryInfo> m_itemLibraryInfo;
|
||||||
|
Reference in New Issue
Block a user