Browse Source

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
Jaime van Kessel 8 years ago
parent
commit
9057174691

+ 2 - 2
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;
             }

+ 2 - 2
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;
                 }

+ 2 - 1
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]
 

+ 2 - 2
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;
                     }