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->materialBrowserTexturesModel()->setTextures(textures);
|
||||||
m_widget->materialBrowserModel()->setHasMaterialLibrary(matLib.isValid());
|
m_widget->materialBrowserModel()->setHasMaterialLibrary(matLib.isValid());
|
||||||
|
|
||||||
if (updateImages) {
|
if (updateImages)
|
||||||
for (const ModelNode &node : std::as_const(materials))
|
updateMaterialsPreview();
|
||||||
m_previewRequests.insert(node);
|
}
|
||||||
if (!m_previewRequests.isEmpty())
|
|
||||||
m_previewTimer.start(0);
|
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
|
bool MaterialBrowserView::isMaterial(const ModelNode &node) const
|
||||||
@@ -540,7 +545,8 @@ void MaterialBrowserView::active3DSceneChanged(qint32 sceneId)
|
|||||||
|
|
||||||
void MaterialBrowserView::currentStateChanged([[maybe_unused]] const ModelNode &node)
|
void MaterialBrowserView::currentStateChanged([[maybe_unused]] const ModelNode &node)
|
||||||
{
|
{
|
||||||
refreshModel(true);
|
m_widget->materialBrowserTexturesModel()->updateAllTexturesSources();
|
||||||
|
updateMaterialsPreview();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaterialBrowserView::instancesCompleted(const QVector<ModelNode> &completedNodeList)
|
void MaterialBrowserView::instancesCompleted(const QVector<ModelNode> &completedNodeList)
|
||||||
|
@@ -66,6 +66,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void refreshModel(bool updateImages);
|
void refreshModel(bool updateImages);
|
||||||
|
void updateMaterialsPreview();
|
||||||
bool isMaterial(const ModelNode &node) const;
|
bool isMaterial(const ModelNode &node) const;
|
||||||
bool isTexture(const ModelNode &node) const;
|
bool isTexture(const ModelNode &node) const;
|
||||||
void loadPropertyGroups();
|
void loadPropertyGroups();
|
||||||
|
Reference in New Issue
Block a user