From 791d51df2a86ddd5f70f819f161b68100bf2d4f5 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 19:41:23 +0200 Subject: [PATCH] Expose an extruderValue() function to value functions It can be used to get the value of a specific extruder Contributes to CURA-2009 --- cura/Settings/ExtruderManager.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 2506c0bc0b..71bd58ded5 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -313,10 +313,23 @@ class ExtruderManager(QObject): return result + ## Get the value for a setting from a specific extruder. + # + # This is exposed to SettingFunction to use in value functions. + # + # \param extruder_index The index of the extruder to get the value from. + # \param key The key of the setting to get the value of. + # + # \return The value of the setting for the specified extruder or None if not found. @staticmethod - def getExtruderValue(extruder_index, name): + def getExtruderValue(extruder_index, key): extruder = ExtruderManager.getInstance().getExtruderStack(extruder_index) - if extruder: - return extruder.getRawProperty(name, "value", use_next = False) + value = None - return None + if extruder: + value = extruder.getRawProperty(key, "value", use_next = False) + + if isinstance(value, UM.Settings.SettingFunction): + value = value(extruder) + + return value