Index: sources/gui/qml/components/Slider.qml =================================================================== diff -u -r44a85c96ab55e424866ec4cca0270aa218355f82 -r328e186fe0f8b6fe4dbe0e14bac6a302e37edb76 --- sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 44a85c96ab55e424866ec4cca0270aa218355f82) +++ sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 328e186fe0f8b6fe4dbe0e14bac6a302e37edb76) @@ -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) Behrouz NemaiPour * \date (last) 04-Jun-2020 * \author (original) Behrouz NematiPour * \date (original) 18-Mar-2020 - * + * */ // Qt @@ -36,7 +36,37 @@ property alias handler : _handler + property alias diameter : _handler.diameter + property alias knobColor : _handler.color + property bool isActive : false; + signal progressRectClicked() + signal progressRectDragged() + signal activeChanged() + + function setActive(active) { + if (active) { + color = Colors.createTreatmentActive + knobColor = Colors.createTreatmentActive + } else { + color = Colors.createTreatmentInactive + knobColor = Colors.createTreatmentInactive + } + + if (active !== isActive) { + isActive = active; + activeChanged() + } + } + + onIsActiveChanged: { + setActive(isActive) + if (!isActive) { + value = minimum + } + activeChanged() + } + height : Variables.progressbarHeight touchMargin : 25 @@ -97,10 +127,15 @@ // propagation is not working on drag ! onDragged: { setValue(vMouseEvent.x) + progressRectDragged() } onClicked: { setValue(vMouseEvent.x) + progressRectClicked() } + onPressChanged: { + _root.pressChanged() + } } // used loader for performance since it may not always be required.