From 365379f7352dd49be6dc0d7dee3da4e4e6b36691 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 24 Aug 2017 17:01:01 +0200 Subject: [PATCH] Add missing context in getProperty() in global and extruder stacks CURA-4186 All getProperty() calls should use the provided context. --- cura/Settings/ExtruderStack.py | 6 ++++-- cura/Settings/GlobalStack.py | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index 0a9bddfb30..0319b2a9ba 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -65,12 +65,14 @@ class ExtruderStack(CuraContainerStack): context = PropertyEvaluationContext() 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) context.popContainer() 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 str(limit_to_extruder) in self.getNextStack().extruders: result = self.getNextStack().extruders[str(limit_to_extruder)].getProperty(key, property_name, context) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index ed99429fa3..bee82e2272 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -99,7 +99,7 @@ class GlobalStack(CuraContainerStack): # Handle the "resolve" property. if self._shouldResolve(key, property_name): self._resolving_settings.add(key) - resolve = super().getProperty(key, "resolve") + resolve = super().getProperty(key, "resolve", context) self._resolving_settings.remove(key) if resolve is not None: return resolve @@ -109,9 +109,11 @@ class GlobalStack(CuraContainerStack): context.pushContainer(self) # 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 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) if result is not None: context.popContainer()