|
@@ -360,6 +360,21 @@ class MaterialManager(QObject):
|
|
|
material_group = self.getMaterialGroup(root_material_id)
|
|
|
material_group.root_material_node.getContainer().setName(name)
|
|
|
|
|
|
+ #
|
|
|
+ # Removes the given material.
|
|
|
+ #
|
|
|
+ @pyqtSlot("QVariant")
|
|
|
+ def removeMaterial(self, material_node: "MaterialNode"):
|
|
|
+ root_material_id = material_node.metadata["base_file"]
|
|
|
+ material_group = self.getMaterialGroup(root_material_id)
|
|
|
+ if not material_group:
|
|
|
+ Logger.log("d", "Unable to remove the material with id %s, because it doesn't exist.", root_material_id)
|
|
|
+ return
|
|
|
+
|
|
|
+ nodes_to_remove = [material_group.root_material_node] + material_group.derived_material_node_list
|
|
|
+ for node in nodes_to_remove:
|
|
|
+ self._container_registry.removeContainer(node.metadata["id"])
|
|
|
+
|
|
|
#
|
|
|
# Creates a duplicate of a material, which has the same GUID and base_file metadata.
|
|
|
# Returns the root material ID of the duplicated material if successful.
|