Index: sources/gui/qml/components/RangeSlider.qml =================================================================== diff -u -race4047d1007962c136fa32d0531102e22073f32 -r7d94ca3afb7db039014cfda226a5bc708fa02db9 --- sources/gui/qml/components/RangeSlider.qml (.../RangeSlider.qml) (revision ace4047d1007962c136fa32d0531102e22073f32) +++ sources/gui/qml/components/RangeSlider.qml (.../RangeSlider.qml) (revision 7d94ca3afb7db039014cfda226a5bc708fa02db9) @@ -60,9 +60,9 @@ maxValue = minimum } onMaximumChanged: { - if (minValue < maximum ) + if (minValue > maximum ) minValue = maximum - if (maxValue < maximum ) + if (maxValue > maximum ) maxValue = maximum } @@ -84,39 +84,22 @@ return ( x * ( maximum - minimum ) ) / width + minimum } - function _setValue_(x) { - if ( x < 0 ) { value = minimum; return; } - if ( x > width ) { value = maximum; return; } - - value = getValueOfX(x) - - if ( step === 1 ) { /* keep the value and return */ return; } - - var start = 0 - if ( ! stepSnap ) start = minimum - - value = Math.round((value - start) / step) * step + start - - if ( value < minimum ) { value = minimum; return; } - if ( value > maximum ) { value = maximum; return; } - } - function setValue(x) { var value = 0 - if ( x < 0 ) { value = minimum; return value; } - if ( x > width ) { value = maximum; return value; } + if ( x < 0 ) { value = minimum; return value; } + if ( x > width ) { value = maximum; return value; } value = getValueOfX(x) - if ( step === 1 ) { return value; } + if ( step === 1 ) { return value; } var start = 0 if ( ! stepSnap ) start = minimum value = Math.round((value - start) / step) * step + start - if ( value < minimum ) { value = minimum; return value; } - if ( value > maximum ) { value = maximum; return value; } + if ( value < minimum ) { value = minimum; return value; } + if ( value > maximum ) { value = maximum; return value; } return value; } @@ -148,17 +131,16 @@ } RangeRect { id: _rangeRect - property int lowerBound : 0 - property int upperBound : 0 + property alias lowerBound : _rangeRect.minimum + property alias upperBound : _rangeRect.maximum + property real minmaxDiff : parent.maximum - parent.minimum - x : ((parent.width * (lowerBound - parent.minimum)) / (parent.maximum - parent.minimum)) + x : minmaxDiff ? ((parent.width * (lowerBound - parent.minimum)) / minmaxDiff) : minmaxDiff + width : minmaxDiff ? ((parent.width * (upperBound - lowerBound )) / minmaxDiff) : minmaxDiff height : parent.height - width : ((parent.width * (upperBound - lowerBound)) / (parent.maximum - parent.minimum)) radius: 0 decimal: _root.decimal - minimum: lowerBound - maximum: upperBound minText.visible: true maxText.visible: true