From 867463f7186daa0681e88b6357f4572996434fb1 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 4 Nov 2016 15:59:01 +0100 Subject: [PATCH] InheritanceManager now checks if a setting function can actually change before labeling it CURA-2860 --- cura/Settings/SettingInheritanceManager.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 9a2db55dc7..4d1e60a739 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -163,13 +163,15 @@ class SettingInheritanceManager(QObject): for container in containers: try: value = container.getProperty(key, "value") - if value is not None: - has_setting_function = isinstance(value, UM.Settings.SettingFunction) - if has_setting_function is False: - has_non_function_value = True - continue except AttributeError: continue + if value is not None: + # If a setting doesn't use any keys, it won't change it's value, so treat it as if it's a fixed value + has_setting_function = isinstance(value, UM.Settings.SettingFunction) and len(value.getUsedSettingKeys()) > 0 + if has_setting_function is False: + has_non_function_value = True + continue + if has_setting_function: break # There is a setting function somewhere, stop looking deeper. return has_setting_function and has_non_function_value