Merge pull request #6380 from Ultimaker/CURA-6690_printhead_negative_values

Cura 6690 printhead negative values
This commit is contained in:
Lipu Fei 2019-09-20 09:40:18 +02:00 committed by GitHub
commit 03866d0d07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 12 deletions

View file

@ -208,6 +208,7 @@ Item
axisName: "x"
axisMinOrMax: "min"
allowNegativeValue: true
allowPositiveValue: false
forceUpdateOnChangeFunction: forceUpdateFunction
}
@ -227,6 +228,7 @@ Item
axisName: "y"
axisMinOrMax: "min"
allowNegativeValue: true
allowPositiveValue: false
forceUpdateOnChangeFunction: forceUpdateFunction
}
@ -245,7 +247,8 @@ Item
axisName: "x"
axisMinOrMax: "max"
allowNegativeValue: true
allowNegativeValue: false
allowPositiveValue: true
forceUpdateOnChangeFunction: forceUpdateFunction
}
@ -266,7 +269,8 @@ Item
axisName: "y"
axisMinOrMax: "max"
allowNegativeValue: true
allowNegativeValue: false
allowPositiveValue: true
forceUpdateOnChangeFunction: forceUpdateFunction
}

View file

@ -35,6 +35,7 @@ UM.TooltipArea
property alias labelWidth: fieldLabel.width
property alias unitText: unitLabel.text
property alias textField: textFieldWithUnit
property alias valueText: textFieldWithUnit.text
property alias valueValidator: textFieldWithUnit.validator
property alias editingFinishedFunction: textFieldWithUnit.editingFinishedFunction
@ -43,6 +44,8 @@ UM.TooltipArea
// whether negative value is allowed. This affects the validation of the input field.
property bool allowNegativeValue: false
// whether positive value is allowed. This affects the validation of the input field.
property bool allowPositiveValue: true
// callback functions
property var afterOnEditingFinishedFunction: dummy_func
@ -153,7 +156,13 @@ UM.TooltipArea
const value = propertyProvider.properties.value
return value ? value : ""
}
validator: RegExpValidator { regExp: allowNegativeValue ? /-?[0-9\.,]{0,6}/ : /[0-9\.,]{0,6}/ }
validator: DoubleValidator
{
bottom: allowNegativeValue ? Number.NEGATIVE_INFINITY : 0
top: allowPositiveValue ? Number.POSITIVE_INFINITY : 0
decimals: 6
notation: DoubleValidator.StandardNotation
}
onEditingFinished: editingFinishedFunction()

View file

@ -43,31 +43,48 @@ NumericTextFieldWithUnit
{
result = func(result, polygon[i][item])
}
result = Math.abs(result)
return result
}
valueValidator: RegExpValidator { regExp: /[0-9\.,]{0,6}/ }
valueValidator: DoubleValidator {
bottom: allowNegativeValue ? Number.NEGATIVE_INFINITY : 0
top: allowPositiveValue ? Number.POSITIVE_INFINITY : 0
decimals: 6
notation: DoubleValidator.StandardNotation
}
valueText: axisValue
Connections
{
target: textField
onActiveFocusChanged:
{
// When this text field loses focus and the entered text is not valid, make sure to recreate the binding to
// show the correct value.
if (!textField.activeFocus && !textField.acceptableInput)
{
valueText = axisValue
}
}
}
editingFinishedFunction: function()
{
var polygon = JSON.parse(propertyProvider.properties.value)
var newValue = parseFloat(valueText.replace(',', '.'))
if (axisName == "x") // x min/x max
{
var start_i1 = (axisMinOrMax == "min") ? 0 : 2
var factor = (axisMinOrMax == "min") ? -1 : 1
polygon[start_i1][0] = newValue * factor
polygon[start_i1 + 1][0] = newValue * factor
polygon[start_i1][0] = newValue
polygon[start_i1 + 1][0] = newValue
}
else // y min/y max
{
var start_i1 = (axisMinOrMax == "min") ? 1 : 0
var factor = (axisMinOrMax == "min") ? -1 : 1
polygon[start_i1][1] = newValue * factor
polygon[start_i1 + 2][1] = newValue * factor
polygon[start_i1][1] = newValue
polygon[start_i1 + 2][1] = newValue
}
var polygon_string = JSON.stringify(polygon)
if (polygon_string != propertyProvider.properties.value)
@ -75,5 +92,8 @@ NumericTextFieldWithUnit
propertyProvider.setPropertyValue("value", polygon_string)
forceUpdateOnChangeFunction()
}
// Recreate the binding to show the correct value.
valueText = axisValue
}
}