Index: sources/gui/qml/components/SliderCreateTreatment.qml =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -rf3a336a173b0fc1198a2e13d9da36d06dc911fcc --- sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision f3a336a173b0fc1198a2e13d9da36d06dc911fcc) @@ -42,12 +42,15 @@ property bool active : false property bool valid : true + property bool showAdjustButtons : true + property real adjustButtonDiameter : Variables.sliderAdjustButtonDiameter + signal pressed () signal released() height : Variables.createTreatmentSliderHeight width : Variables.createTreatmentSliderWidth - color : "transparent" + color : Colors.transparent anchors.horizontalCenter: parent.horizontalCenter @@ -124,4 +127,50 @@ onProgressRectClicked : { ; ; setActiveValid( ) } onProgressRectDragged : { ; ; setActiveValid( ) } } + + Row { id: _adjustValueButtonsContainer + width : 200 + height : parent.height + anchors.verticalCenter : _slider.verticalCenter + anchors.left : _slider.right + anchors.leftMargin : Variables.sliderAdjustButtonSpacing + spacing : Variables.sliderAdjustButtonSpacing + CircleButton { id: _decrementValueButton + buttonSymbol: "<" + onPressed: _slider.decrementValue(true) + onPressAndHold: { + _sliderAdjustValueTimer.isIncrementing = false + _sliderAdjustValueTimer.restart() + } + onReleased: _sliderAdjustValueTimer.stop() + } + CircleButton { id: _incrementValueButton + buttonSymbol: ">" + onPressed: _slider.incrementValue(true) + onPressAndHold: { + _sliderAdjustValueTimer.isIncrementing = true + _sliderAdjustValueTimer.restart() + } + onReleased: _sliderAdjustValueTimer.stop() + } + } + Timer { id: _sliderAdjustValueTimer + property bool isIncrementing : true + interval: 250 //ms + running : false + repeat : true + onTriggered: { + if(isIncrementing) + _slider.incrementValue(true) + else + _slider.decrementValue(true) + + // for optimizing purposes, stop timer when max or min value reached + if ((_root.value == maximum) || (_root.value == minimum)) { + _sliderAdjustValueTimer.stop() + } + + //DEBUG console.log("timer triggered " + _root.value) + } + } }