QmlDesigner: Update textures sources on state change

Also small relevant fixes.

Fixes: QDS-8523
Change-Id: I8125b124024ee18de8c70afbc9f633c3b9265e82
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
Mahmoud Badri
2022-12-08 13:51:12 +02:00
parent 37564d267b
commit d0c9bc76cb
4 changed files with 29 additions and 8 deletions

View File

@@ -33,7 +33,7 @@ QVariant MaterialBrowserTexturesModel::data(const QModelIndex &index, int role)
QByteArray roleName = roleNames().value(role);
if (roleName == "textureSource") {
QString source = m_textureList.at(index.row()).variantProperty("source").value().toString();
QString source = QmlObjectNode(m_textureList.at(index.row())).modelValue("source").toString();
if (source.isEmpty())
return {};
if (Utils::FilePath::fromString(source).isAbsolutePath())
@@ -184,6 +184,11 @@ void MaterialBrowserTexturesModel::updateTextureSource(const ModelNode &texture)
emit dataChanged(index(idx, 0), index(idx, 0), {roleNames().key("textureSource")});
}
void MaterialBrowserTexturesModel::updateAllTexturesSources()
{
emit dataChanged(index(0, 0), index(rowCount() - 1, 0), {roleNames().key("textureSource")});
}
void MaterialBrowserTexturesModel::updateSelectedTexture()
{
selectTexture(m_selectedIndex, true);
@@ -205,6 +210,11 @@ ModelNode MaterialBrowserTexturesModel::textureAt(int idx) const
return {};
}
ModelNode MaterialBrowserTexturesModel::selectedTexture() const
{
return textureAt(m_selectedIndex);
}
bool MaterialBrowserTexturesModel::hasSingleModelSelection() const
{
return m_hasSingleModelSelection;