Fix infill density binding in Recommended mode

CURA-4438

Infill density in Recommended mode should be bound to the correct stack
when the infill extruder is/is not set to a specific extruder.
This commit is contained in:
Lipu Fei 2017-10-11 14:04:19 +02:00
parent 23d0201f6b
commit bb476752a4

View file

@ -898,6 +898,40 @@ Item
storeIndex: 0
}
Binding
{
target: infillDensity
property: "containerStackId"
value:
{
// associate this binding with Cura.MachineManager.activeMachineId in the beginning so this
// binding will be triggered when activeMachineId is changed too.
// Otherwise, if this value only depends on the extruderIds, it won't get updated when the
// machine gets changed.
var activeStackId = Cura.MachineManager.activeStackId;
if(machineExtruderCount.properties.value == 1)
{
//Not settable per extruder or there only is global, so we must pick global.
return activeStackId;
}
if(infillInheritStackProvider.properties.limit_to_extruder != null && infillInheritStackProvider.properties.limit_to_extruder >= 0)
{
//We have limit_to_extruder, so pick that stack.
return ExtruderManager.extruderIds[String(infillInheritStackProvider.properties.limit_to_extruder)];
}
return activeStackId;
}
}
UM.SettingPropertyProvider
{
id: infillInheritStackProvider
containerStackId: Cura.MachineManager.activeMachineId
key: "infill_sparse_density"
watchedProperties: [ "limit_to_extruder" ]
}
UM.SettingPropertyProvider
{
id: infillDensity