From fe5893feb69056e6068277cd2f4b3f46a38f0c1d Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Thu, 6 Jul 2023 16:07:40 +0200 Subject: [PATCH] SpinBox fixed for values above the max value Spinbox now doesn't take values above the designated maximum Fixes CURA-10096 --- resources/qml/SpinBox.qml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/resources/qml/SpinBox.qml b/resources/qml/SpinBox.qml index 038125111c..e22777335d 100644 --- a/resources/qml/SpinBox.qml +++ b/resources/qml/SpinBox.qml @@ -54,9 +54,20 @@ Item from: Math.floor(base.from / base.stepSize) to: Math.floor(base.to / base.stepSize) + function clamp(value, min, max) + { + return Math.max((Math.min(value, max)), min); + } + valueFromText: function(text) { - return parseFloat(text.substring(prefix.length, text.length - suffix.length).replace(",", ".")) / base.stepSize; + + var value = parseFloat(text.substring(prefix.length, text.length - suffix.length).replace(",", ".")) / base.stepSize ; + if (Number.isNaN(value)) + { + value = from + } + return clamp(value, from, to); } textFromValue: function(value) @@ -69,6 +80,7 @@ Item onValueModified: { base.value = value * base.stepSize; + spinBoxText.text = spinBox.textFromValue(value); } // This forces TextField to commit typed values before incrementing with buttons. @@ -87,6 +99,7 @@ Item contentItem: Cura.TextField { + id: spinBoxText text: spinBox.textFromValue(spinBox.value, spinBox.locale) validator: base.validator @@ -97,6 +110,13 @@ Item base.editingFinished(); } } + + onTextChanged: + { + var value = spinBox.valueFromText(spinBoxText.text); + spinBoxText.text = spinBox.textFromValue(value); + spinBox.value = value; + } } down.indicator: Rectangle