From a11595657518bf9436725c06b083bc3e854c3430 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 16 Mar 2018 10:40:16 +0100 Subject: [PATCH] Do not show a material itself in its linked material list --- cura/Settings/ContainerManager.py | 7 +++++-- resources/qml/Preferences/MaterialView.qml | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 7161169b22..760a288b7b 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -348,15 +348,18 @@ class ContainerManager(QObject): # # \param material_id \type{str} the id of the material for which to get the linked materials. # \return \type{list} a list of names of materials with the same GUID - @pyqtSlot("QVariant", result = "QStringList") - def getLinkedMaterials(self, material_node): + @pyqtSlot("QVariant", bool, result = "QStringList") + def getLinkedMaterials(self, material_node, exclude_self = False): guid = material_node.metadata["GUID"] + self_root_material_id = material_node.metadata["base_file"] material_group_list = self._material_manager.getMaterialGroupListByGUID(guid) linked_material_names = [] if material_group_list: for material_group in material_group_list: + if exclude_self and material_group.name == self_root_material_id: + continue linked_material_names.append(material_group.root_material_node.metadata["name"]) return linked_material_names diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index d2f653e650..50dc6b65a4 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -36,8 +36,8 @@ TabView if (!base.containerId || !base.editingEnabled) { return "" } - var linkedMaterials = Cura.ContainerManager.getLinkedMaterials(base.currentMaterialNode); - if (linkedMaterials.length <= 1) { + var linkedMaterials = Cura.ContainerManager.getLinkedMaterials(base.currentMaterialNode, true); + if (linkedMaterials.length == 0) { return "" } return linkedMaterials.join(", ");