Просмотр исходного кода

Switch to checking enabled extruder count for showing print with Component. This is because we want the SingleSettingExtruderBar to be hidden when there are 1 or less extruders, but also when there are 1 or less enabled extruders.

CURA-9793
Joey de l'Arago 2 лет назад
Родитель
Сommit
bcdfa808a8

+ 8 - 0
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.

+ 3 - 19
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
             {