forked from qt-creator/qt-creator
QmlDesigner: Update material preview images instead of whole refresh
Task-number: QDS-9485 Change-Id: I865c8d39dea4ec0c451f41cbe8c5f603deae4f25 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -264,12 +264,17 @@ void MaterialBrowserView::refreshModel(bool updateImages)
|
||||
m_widget->materialBrowserTexturesModel()->setTextures(textures);
|
||||
m_widget->materialBrowserModel()->setHasMaterialLibrary(matLib.isValid());
|
||||
|
||||
if (updateImages) {
|
||||
for (const ModelNode &node : std::as_const(materials))
|
||||
m_previewRequests.insert(node);
|
||||
if (!m_previewRequests.isEmpty())
|
||||
m_previewTimer.start(0);
|
||||
}
|
||||
if (updateImages)
|
||||
updateMaterialsPreview();
|
||||
}
|
||||
|
||||
void MaterialBrowserView::updateMaterialsPreview()
|
||||
{
|
||||
const QList<ModelNode> materials = m_widget->materialBrowserModel()->materials();
|
||||
for (const ModelNode &node : materials)
|
||||
m_previewRequests.insert(node);
|
||||
if (!m_previewRequests.isEmpty())
|
||||
m_previewTimer.start(0);
|
||||
}
|
||||
|
||||
bool MaterialBrowserView::isMaterial(const ModelNode &node) const
|
||||
@@ -540,7 +545,8 @@ void MaterialBrowserView::active3DSceneChanged(qint32 sceneId)
|
||||
|
||||
void MaterialBrowserView::currentStateChanged([[maybe_unused]] const ModelNode &node)
|
||||
{
|
||||
refreshModel(true);
|
||||
m_widget->materialBrowserTexturesModel()->updateAllTexturesSources();
|
||||
updateMaterialsPreview();
|
||||
}
|
||||
|
||||
void MaterialBrowserView::instancesCompleted(const QVector<ModelNode> &completedNodeList)
|
||||
|
@@ -66,6 +66,7 @@ protected:
|
||||
|
||||
private:
|
||||
void refreshModel(bool updateImages);
|
||||
void updateMaterialsPreview();
|
||||
bool isMaterial(const ModelNode &node) const;
|
||||
bool isTexture(const ModelNode &node) const;
|
||||
void loadPropertyGroups();
|
||||
|
Reference in New Issue
Block a user