diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 1324f3ab60..f2967c7797 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -361,6 +361,18 @@ class MachineManager(QObject): return False + ## Delete a user setting from the global stack and all extruder stacks. + # \param key \type{str} the name of the key to delete + @pyqtSlot(str) + def clearUserSettingAllCurrentStacks(self, key): + if not self._global_container_stack: + return + + self._global_container_stack.getTop().removeInstance(key) + + for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()): + stack.getTop().removeInstance(key) + ## Check if the global profile does not contain error states # Note that the _active_stack_valid is cached due to performance issues # Calling _checkStackForErrors on every change is simply too expensive diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index cdc557a089..671f35f782 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -179,8 +179,8 @@ Item { iconSource: UM.Theme.getIcon("reset") onClicked: { - revertButton.focus = true - propertyProvider.removeFromContainer(0) + revertButton.focus = true; + Cura.MachineManager.clearUserSettingAllCurrentStacks(propertyProvider.key); } onEntered: { hoverTimer.stop(); base.showTooltip(catalog.i18nc("@label", "This setting has a value that is different from the profile.\n\nClick to restore the value of the profile.")) }