From 17b34fb4e1a3391372d99017635a7f390e5159e9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 24 Aug 2016 14:48:20 +0200 Subject: [PATCH] It's no longer possible to remove a material that is in use CURA-2168 --- cura/Settings/ContainerManager.py | 9 +++++++++ resources/qml/Preferences/MaterialsPage.qml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 547daffe41..6efcd029c6 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -225,6 +225,15 @@ class ContainerManager(QObject): return result + @pyqtSlot(str, result = bool) + def isContainerUsed(self, container_id): + UM.Logger.log("d", "Checking if container %s is currently used in the active stacks", container_id) + for stack in cura.Settings.ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): + if container_id in [child.getId() for child in stack.getContainers()]: + UM.Logger.log("d", "The container is in use by %s", stack.getId()) + return True + return False + ## Get a list of string that can be used as name filters for a Qt File Dialog # # This will go through the list of available container types and generate a list of strings diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 4ee8b159ba..0bd2d16fb3 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -104,7 +104,7 @@ UM.ManagementPage { text: catalog.i18nc("@action:button", "Remove"); iconName: "list-remove"; - enabled: base.currentItem != null && !base.currentItem.readOnly + enabled: base.currentItem != null && !base.currentItem.readOnly && !Cura.ContainerManager.isContainerUsed(base.currentItem.id) onClicked: confirmDialog.open() }, Button