Handle limit_to_extruder in {Extruder,Global}Stack getProperty

This way we do not need to special case limit_to_extruder and instead
always use limit_to_extruder if it is set.

Contributest to CURA-3738
This commit is contained in:
Arjen Hiemstra 2017-05-11 17:50:12 +02:00
parent 078fd16109
commit fdc6fbbac1
2 changed files with 14 additions and 0 deletions

View file

@ -59,6 +59,12 @@ class ExtruderStack(CuraContainerStack):
if not super().getProperty(key, "settable_per_extruder"): if not super().getProperty(key, "settable_per_extruder"):
return self.getNextStack().getProperty(key, property_name) return self.getNextStack().getProperty(key, property_name)
limit_to_extruder = super().getProperty(key, "limit_to_extruder")
if (limit_to_extruder is not None and limit_to_extruder != "-1") and self.getMetaDataEntry("position") != str(limit_to_extruder):
result = self.getNextStack().extruders[int(limit_to_extruder)].getProperty(key, property_name)
if result is not None:
return result
return super().getProperty(key, property_name) return super().getProperty(key, property_name)
@override(CuraContainerStack) @override(CuraContainerStack)

View file

@ -71,6 +71,7 @@ class GlobalStack(CuraContainerStack):
if not self.definition.findDefinitions(key = key): if not self.definition.findDefinitions(key = key):
return None return None
# Handle the "resolve" property.
if self._shouldResolve(key, property_name): if self._shouldResolve(key, property_name):
self._resolving_settings.add(key) self._resolving_settings.add(key)
resolve = super().getProperty(key, "resolve") resolve = super().getProperty(key, "resolve")
@ -78,6 +79,13 @@ class GlobalStack(CuraContainerStack):
if resolve is not None: if resolve is not None:
return resolve return resolve
# Handle the "limit_to_extruder" property.
limit_to_extruder = super().getProperty(key, "limit_to_extruder")
if limit_to_extruder is not None and limit_to_extruder != "-1":
result = self._extruders[int(limit_to_extruder)].getProperty(key, property_name)
if result is not None:
return result
return super().getProperty(key, property_name) return super().getProperty(key, property_name)
## Overridden from ContainerStack ## Overridden from ContainerStack