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
This commit is contained in:
Joey de l'Arago 2022-12-07 17:33:13 +01:00
parent ca0cd5069b
commit bcdfa808a8
2 changed files with 11 additions and 19 deletions

View file

@ -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.

View file

@ -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
{