InheritanceManager now checks if a setting function can actually change before labeling it

CURA-2860
This commit is contained in:
Jaime van Kessel 2016-11-04 15:59:01 +01:00
parent ed5244bcb0
commit 867463f718

View file

@ -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