forked from qt-creator/qt-creator
QmlDesigner: Reduce number of preview requests from material editor
Removed preview request call from setValue, as it is called in long loops during initial project load and added the calls outside those loops where they already weren't there. Fixes: QDS-7175 Change-Id: Ia83814a0de6fe801d954373dc8ce0e4920e8a6a6 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -556,6 +556,7 @@ void MaterialEditorView::propertiesRemoved(const QList<AbstractProperty> &proper
|
||||
if (noValidSelection())
|
||||
return;
|
||||
|
||||
bool changed = false;
|
||||
for (const AbstractProperty &property : propertyList) {
|
||||
ModelNode node(property.parentModelNode());
|
||||
|
||||
@@ -564,8 +565,11 @@ void MaterialEditorView::propertiesRemoved(const QList<AbstractProperty> &proper
|
||||
|
||||
if (node == m_selectedMaterial || QmlObjectNode(m_selectedMaterial).propertyChangeForCurrentState() == node) {
|
||||
setValue(m_selectedMaterial, property.name(), QmlObjectNode(m_selectedMaterial).instanceValue(property.name()));
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (changed)
|
||||
requestPreviewRender();
|
||||
}
|
||||
|
||||
void MaterialEditorView::variantPropertiesChanged(const QList<VariantProperty> &propertyList, PropertyChangeFlags /*propertyChange*/)
|
||||
@@ -670,6 +674,7 @@ void MaterialEditorView::instancePropertyChanged(const QList<QPair<ModelNode, Pr
|
||||
|
||||
m_locked = true;
|
||||
|
||||
bool changed = false;
|
||||
for (const QPair<ModelNode, PropertyName> &propertyPair : propertyList) {
|
||||
const ModelNode modelNode = propertyPair.first;
|
||||
const QmlObjectNode qmlObjectNode(modelNode);
|
||||
@@ -681,8 +686,11 @@ void MaterialEditorView::instancePropertyChanged(const QList<QPair<ModelNode, Pr
|
||||
setValue(modelNode, property.name(), qmlObjectNode.instanceValue(property.name()));
|
||||
else
|
||||
setValue(modelNode, property.name(), qmlObjectNode.modelValue(property.name()));
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
if (changed)
|
||||
requestPreviewRender();
|
||||
|
||||
m_locked = false;
|
||||
}
|
||||
@@ -818,7 +826,6 @@ void MaterialEditorView::setValue(const QmlObjectNode &qmlObjectNode, const Prop
|
||||
{
|
||||
m_locked = true;
|
||||
m_qmlBackEnd->setValue(qmlObjectNode, name, value);
|
||||
requestPreviewRender();
|
||||
m_locked = false;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user