Index: sources/gui/qml/components/Slider.qml =================================================================== diff -u -r4fab8841b1040c8eaa406713ff9bdc8c65b7b6ac -rcb5477be624b09e13d5fc4498634ca621722fd0e --- sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 4fab8841b1040c8eaa406713ff9bdc8c65b7b6ac) +++ sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision cb5477be624b09e13d5fc4498634ca621722fd0e) @@ -1,16 +1,16 @@ /*! - * + * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. - * + * * \file Slider.qml * \author (last) Peter Lucia * \date (last) 15-Oct-2020 * \author (original) Behrouz NematiPour * \date (original) 18-Mar-2020 - * + * */ // Qt @@ -24,33 +24,35 @@ * \brief Denali project ProgressBar */ RangeRect { id: _root - property alias value : _progressRect.value + property alias value : _progressRect.value - property real step : 1 - property bool stepSnap : false + property real step : 1 + property bool stepSnap : false - property bool ticks : false + property bool ticks : false - property alias color : _progressRect.color - property alias bgColor : _root.color + property alias color : _progressRect.color + property alias bgColor : _root.color - property alias handler : _handler + property alias handler : _handler + property alias handlerColor : _handler.color - property alias diameter : _handler.diameter - property alias knobColor : _handler.color - property bool isActive : false; + property alias diameter : _handler.diameter + property bool isActive : false + property alias progressRectMargin : _progressRect.margin + signal progressRectClicked() signal progressRectDragged() signal activeChanged() function setActive(active) { if (active) { color = Colors.createTreatmentActive - knobColor = Colors.createTreatmentActive + handlerColor = Colors.createTreatmentActive } else { color = Colors.createTreatmentInactive - knobColor = Colors.createTreatmentInactive + handlerColor = Colors.createTreatmentInactive } if (active !== isActive) { @@ -110,16 +112,16 @@ var start = 0 if ( ! stepSnap ) start = minimum - value = Math.round((value - start) / step) * step + start + let decimals = Math.round(-Math.log10(step)) + if (decimals >= 0) value = value.toFixed(decimals) if ( value < minimum ) { value = minimum; return; } if ( value > maximum ) { value = maximum; return; } } ProgressRect { id: _progressRect color : Colors.highlightProgressBar - touchMargin : parent.touchMargin decimal : _root.decimal minimum : _root.minimum maximum : _root.maximum @@ -133,9 +135,14 @@ setValue(vMouseEvent.x) progressRectClicked() } - onPressChanged: { - _root.pressChanged() + onPressed: { + setValue(vMouseEvent.x) + _root.pressed(vMouseEvent) } + onReleased: { + setValue(vMouseEvent.x) + _root.released(vMouseEvent) + } } // used loader for performance since it may not always be required. @@ -159,6 +166,12 @@ onClicked: { setValue(vMouseEvent.x) } + onPressed: { + setValue(vMouseEvent.x) + } + onReleased: { + setValue(vMouseEvent.x) + } Rectangle { id: _handler property real diameter : Variables.progressbarHandler