Index: sources/gui/qml/compounds/ValueAdjuster.qml =================================================================== diff -u -rda2dbdbd92d099e44d11bbfb2b794d5ee19a0f0a -r02f5bd9c52c936b9849e0ce686dc75840101ec64 --- sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision da2dbdbd92d099e44d11bbfb2b794d5ee19a0f0a) +++ sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision 02f5bd9c52c936b9849e0ce686dc75840101ec64) @@ -36,23 +36,28 @@ property bool allowOff : false + // fix floating-point precision issue + readonly property real stepVal : Math.round(step * 10) / 10 + readonly property real minVal : Math.round(minimum * 10) / 10 + readonly property real val : Math.round(value * 10) / 10 + onActiveChanged : if ( active ) { _root.value = _root.defaultValue } function clear() { _root.active = false } function increment() { - if ( ! active ) { active = true } + if ( ! active ) { active = true } else { - if ( allowOff ) { _root.value = value < minimum ? minimum : _root.value + _root.step} - else { _root.value += _root.step } + if ( allowOff ) { value = val < minVal ? minVal : val + stepVal } + else { value += stepVal } } } function decrement() { - if ( ! active ) { active = true } + if ( ! active ) { active = true } else { - if ( allowOff ) { _root.value = value > minimum ? _root.value - _root.step : 0 } - else { _root.value -= _root.step } + if ( allowOff ) { value = val > minVal ? val - stepVal : 0 } + else { value -= stepVal } } }