Add missing context in getProperty() in global and extruder stacks

CURA-4186

All getProperty() calls should use the provided context.
This commit is contained in:
Lipu Fei 2017-08-24 17:01:01 +02:00
parent 2ec7c14422
commit 365379f735
2 changed files with 9 additions and 5 deletions

View file

@ -65,12 +65,14 @@ class ExtruderStack(CuraContainerStack):
context = PropertyEvaluationContext() context = PropertyEvaluationContext()
context.pushContainer(self) context.pushContainer(self)
if not super().getProperty(key, "settable_per_extruder"): if not super().getProperty(key, "settable_per_extruder", context):
result = self.getNextStack().getProperty(key, property_name, context) result = self.getNextStack().getProperty(key, property_name, context)
context.popContainer() context.popContainer()
return result return result
limit_to_extruder = super().getProperty(key, "limit_to_extruder") limit_to_extruder = super().getProperty(key, "limit_to_extruder", context)
if limit_to_extruder is not None:
limit_to_extruder = str(limit_to_extruder)
if (limit_to_extruder is not None and limit_to_extruder != "-1") and self.getMetaDataEntry("position") != str(limit_to_extruder): if (limit_to_extruder is not None and limit_to_extruder != "-1") and self.getMetaDataEntry("position") != str(limit_to_extruder):
if str(limit_to_extruder) in self.getNextStack().extruders: if str(limit_to_extruder) in self.getNextStack().extruders:
result = self.getNextStack().extruders[str(limit_to_extruder)].getProperty(key, property_name, context) result = self.getNextStack().extruders[str(limit_to_extruder)].getProperty(key, property_name, context)

View file

@ -99,7 +99,7 @@ class GlobalStack(CuraContainerStack):
# Handle the "resolve" property. # 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", context)
self._resolving_settings.remove(key) self._resolving_settings.remove(key)
if resolve is not None: if resolve is not None:
return resolve return resolve
@ -109,9 +109,11 @@ class GlobalStack(CuraContainerStack):
context.pushContainer(self) context.pushContainer(self)
# Handle the "limit_to_extruder" property. # Handle the "limit_to_extruder" property.
limit_to_extruder = super().getProperty(key, "limit_to_extruder") limit_to_extruder = super().getProperty(key, "limit_to_extruder", context)
if limit_to_extruder is not None:
limit_to_extruder = str(limit_to_extruder)
if limit_to_extruder is not None and limit_to_extruder != "-1" and limit_to_extruder in self._extruders: if limit_to_extruder is not None and limit_to_extruder != "-1" and limit_to_extruder in self._extruders:
if super().getProperty(key, "settable_per_extruder"): if super().getProperty(key, "settable_per_extruder", context):
result = self._extruders[str(limit_to_extruder)].getProperty(key, property_name, context) result = self._extruders[str(limit_to_extruder)].getProperty(key, property_name, context)
if result is not None: if result is not None:
context.popContainer() context.popContainer()