aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2022-09-22 11:53:11 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2022-09-22 10:26:55 +0000
commit061ae8b02c0a07f37251ad35235ed4555ada7283 (patch)
tree77a2bbe5463556d417e425660508a3985f92ff7a
parent9ac27ad8aadbc96c8d2edcbbd168ba48e40403d1 (diff)
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>
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp
index fea4a430a6..b5d85a4cb8 100644
--- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp
+++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp
@@ -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)