QmlDesigner: Delete material properly via material browser

Deleting is now made the same way as deleting a selected node, so
dangling references to the deleted material are removed.

Fixes: QDS-7716
Change-Id: I552c328eb928bfc20e3e33caa0e817f6d22162cc
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Miikka Heikkinen
2022-09-22 11:53:11 +03:00
parent 9ac27ad8aa
commit 061ae8b02c

View File

@@ -288,8 +288,7 @@ void MaterialBrowserModel::removeMaterial(const ModelNode &material)
void MaterialBrowserModel::deleteSelectedMaterial()
{
if (isValidIndex(m_selectedIndex))
m_materialList[m_selectedIndex].destroy();
deleteMaterial(m_selectedIndex);
}
void MaterialBrowserModel::updateSelectedMaterial()
@@ -387,7 +386,11 @@ void MaterialBrowserModel::pasteMaterialProperties(int idx)
void MaterialBrowserModel::deleteMaterial(int idx)
{
m_materialList[idx].destroy();
if (isValidIndex(idx)) {
ModelNode node = m_materialList[idx];
if (node.isValid())
QmlObjectNode(node).destroy();
}
}
void MaterialBrowserModel::renameMaterial(int idx, const QString &newName)