diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 8d38c7d46e..eea3055abe 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -7,6 +7,7 @@ from UM.Application import Application from UM.FlameProfiler import pyqtSlot import cura.CuraApplication # To get the global container stack to find the current machine. +from UM.Util import parseBool from cura.Settings.GlobalStack import GlobalStack from UM.Logger import Logger from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator @@ -70,6 +71,13 @@ class ExtruderManager(QObject): # extruderIds directly after a machine update. return self.extruderIds + @pyqtProperty(int, notify = extrudersChanged) + def enabledExtruderCount(self) -> int: + global_container_stack = self._application.getGlobalContainerStack() + if global_container_stack: + return len([extruder for extruder in global_container_stack.extruderList if parseBool(extruder.getMetaDataEntry("enabled", "True"))]) + return 0 + @pyqtProperty(str, notify = activeExtruderChanged) def activeExtruderStackId(self) -> Optional[str]: """Gets the unique identifier of the currently active extruder stack. diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index e9c4ff69cd..5176436b0c 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -34,22 +34,6 @@ RecommendedSettingSection storeIndex: 0 } - property UM.SettingPropertyProvider supportExtruderNr: UM.SettingPropertyProvider - { - containerStack: Cura.MachineManager.activeMachine - key: "support_extruder_nr" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - property UM.SettingPropertyProvider machineExtruderCount: UM.SettingPropertyProvider - { - containerStack: Cura.MachineManager.activeMachine - key: "machine_extruder_count" - watchedProperties: ["value"] - storeIndex: 0 - } - contents: [ RecommendedSettingItem { @@ -69,9 +53,9 @@ RecommendedSettingSection settingName: catalog.i18nc("@action:label", "Print with") tooltipText: catalog.i18nc("@label", "The extruder train to use for printing the support. This is used in multi-extrusion.") // Hide this component when there is only one extruder - enabled: machineExtruderCount.properties.value > 1 - visible: machineExtruderCount.properties.value > 1 - isCompressed: enableSupportRow.isCompressed || machineExtruderCount.properties.value <= 1 + enabled: Cura.ExtruderManager.enabledExtruderCount > 1 + visible: Cura.ExtruderManager.enabledExtruderCount > 1 + isCompressed: enableSupportRow.isCompressed || Cura.ExtruderManager.enabledExtruderCount <= 1 settingControl: Cura.SingleSettingExtruderSelectorBar {