From 9057174691d0df8b9cb0c7b1242a46cebfd82360 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 21 Nov 2016 11:10:23 +0100 Subject: [PATCH] Resolve is now updated from the base property The resolve doesn't update always update well for single extrusion machines, so the wrong value gets used. There is however, no need for a resolve with a single extrusion machine, so we can disable the resolve for those alltogether. CURA-2939 --- resources/qml/Settings/SettingCheckBox.qml | 4 ++-- resources/qml/Settings/SettingComboBox.qml | 4 ++-- resources/qml/Settings/SettingItem.qml | 3 ++- resources/qml/Settings/SettingTextField.qml | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 1fcd24ccf6..97a72a026e 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -29,11 +29,11 @@ SettingItem // 4: variant // 5: machine var value; - if ((propertyProvider.properties.resolve != "None") && (stackLevel != 0) && (stackLevel != 1)) { + if ((base.resolve != "None") && (stackLevel != 0) && (stackLevel != 1)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). - value = propertyProvider.properties.resolve; + value = base.resolve; } else { value = propertyProvider.properties.value; } diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index c4ca637506..dfa070667a 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -96,11 +96,11 @@ SettingItem { // FIXME this needs to go away once 'resolve' is combined with 'value' in our data model. var value; - if ((propertyProvider.properties.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) { + if ((base.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). - value = propertyProvider.properties.resolve; + value = base.resolve; } else { value = propertyProvider.properties.value; } diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 7fa2856e27..2aa15e9244 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -27,7 +27,8 @@ Item { // Create properties to put property provider stuff in (bindings break in qt 5.5.1 otherwise) property var state: propertyProvider.properties.state - property var resolve: propertyProvider.properties.resolve + // There is no resolve property if there is only one stack. + property var resolve: Cura.MachineManager.activeStackId != Cura.MachineManager.activeMachineId ? propertyProvider.properties.resolve : "None" property var stackLevels: propertyProvider.stackLevels property var stackLevel: stackLevels[0] diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index d02c8854b4..d89f540aa3 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -114,11 +114,11 @@ SettingItem // 3: material -> user changed material in materialspage // 4: variant // 5: machine - if ((propertyProvider.properties.resolve != "None" && propertyProvider.properties.resolve) && (stackLevel != 0) && (stackLevel != 1)) { + if ((base.resolve != "None" && base.resolve) && (stackLevel != 0) && (stackLevel != 1)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). - return propertyProvider.properties.resolve; + return base.resolve; } else { return propertyProvider.properties.value; }