Recreate bindings for the text fields

CURA-6690
This commit is contained in:
Lipu Fei 2019-09-19 15:32:58 +02:00
parent c43cdb5c63
commit c661f82756
2 changed files with 24 additions and 2 deletions

View file

@ -156,7 +156,13 @@ UM.TooltipArea
const value = propertyProvider.properties.value const value = propertyProvider.properties.value
return value ? 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() onEditingFinished: editingFinishedFunction()

View file

@ -55,10 +55,23 @@ NumericTextFieldWithUnit
valueText: axisValue 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() editingFinishedFunction: function()
{ {
var polygon = JSON.parse(propertyProvider.properties.value) var polygon = JSON.parse(propertyProvider.properties.value)
var newValue = parseFloat(valueText.replace(',', '.')) var newValue = parseFloat(valueText.replace(',', '.'))
if (axisName == "x") // x min/x max if (axisName == "x") // x min/x max
@ -79,5 +92,8 @@ NumericTextFieldWithUnit
propertyProvider.setPropertyValue("value", polygon_string) propertyProvider.setPropertyValue("value", polygon_string)
forceUpdateOnChangeFunction() forceUpdateOnChangeFunction()
} }
// Recreate the binding to show the correct value.
valueText = axisValue
} }
} }