diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-09-22 11:53:11 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-09-22 10:26:55 +0000 |
commit | 061ae8b02c0a07f37251ad35235ed4555ada7283 (patch) | |
tree | 77a2bbe5463556d417e425660508a3985f92ff7a | |
parent | 9ac27ad8aadbc96c8d2edcbbd168ba48e40403d1 (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.cpp | 9 |
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) |