mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
Updated documentation for perobject visiblity
CURA-2319
This commit is contained in:
parent
6b613fd86b
commit
ddc4c73f8b
1 changed files with 13 additions and 6 deletions
|
@ -55,20 +55,27 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand
|
||||||
|
|
||||||
# Add all instances that are not added, but are in visibility list
|
# Add all instances that are not added, but are in visibility list
|
||||||
for item in visible:
|
for item in visible:
|
||||||
if not settings.getInstance(item):
|
if not settings.getInstance(item): # Setting was not added already.
|
||||||
definition = self._stack.getSettingDefinition(item)
|
definition = self._stack.getSettingDefinition(item)
|
||||||
if definition:
|
if definition:
|
||||||
new_instance = SettingInstance(definition, settings)
|
new_instance = SettingInstance(definition, settings)
|
||||||
stack_nr = -1
|
stack_nr = -1
|
||||||
if definition.limit_to_extruder and self._stack.getProperty("machine_extruder_count", "value") > 1:
|
# Check from what stack we should copy the raw property of the setting from.
|
||||||
#Obtain the value from the correct container stack. Only once, upon adding the setting.
|
if definition.limit_to_extruder != "-1" and self._stack.getProperty("machine_extruder_count", "value") > 1:
|
||||||
stack_nr = str(int(round(float(self._stack.getProperty(item, "limit_to_extruder"))))) #Stack to get the setting from. Round it and remove the fractional part.
|
# A limit to extruder function was set and it's a multi extrusion machine. Check what stack we do need to use.
|
||||||
if stack_nr not in ExtruderManager.getInstance().extruderIds and self._stack.getProperty("extruder_nr", "value") is not None: #Property not defined, but we have an extruder number.
|
stack_nr = str(int(round(float(self._stack.getProperty(item, "limit_to_extruder")))))
|
||||||
|
|
||||||
|
# Check if the found stack_number is in the extruder list of extruders.
|
||||||
|
if stack_nr not in ExtruderManager.getInstance().extruderIds and self._stack.getProperty("extruder_nr", "value") is not None:
|
||||||
stack_nr = str(int(round(float(self._stack.getProperty("extruder_nr", "value")))))
|
stack_nr = str(int(round(float(self._stack.getProperty("extruder_nr", "value")))))
|
||||||
if stack_nr in ExtruderManager.getInstance().extruderIds: #We have either a limit_to_extruder or an extruder_nr.
|
|
||||||
|
# Use the found stack number to get the right stack to copy the value from.
|
||||||
|
if stack_nr in ExtruderManager.getInstance().extruderIds:
|
||||||
stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0]
|
stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0]
|
||||||
else:
|
else:
|
||||||
stack = UM.Application.getInstance().getGlobalContainerStack()
|
stack = UM.Application.getInstance().getGlobalContainerStack()
|
||||||
|
|
||||||
|
# Use the raw property to set the value (so the intheritance doesn't break)
|
||||||
new_instance.setProperty("value", stack.getRawProperty(item, "value"))
|
new_instance.setProperty("value", stack.getRawProperty(item, "value"))
|
||||||
new_instance.resetState() # Ensure that the state is not seen as a user state.
|
new_instance.resetState() # Ensure that the state is not seen as a user state.
|
||||||
settings.addInstance(new_instance)
|
settings.addInstance(new_instance)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue