Index: sources/gui/qml/components/SliderCreateTreatment.qml =================================================================== diff -u -r9327fae7b109203ca698d361b113a81d139a0cf9 -rdb92783a0a9dab0ddf2b68c51d15b1ae1cb3ddcc --- sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision 9327fae7b109203ca698d361b113a81d139a0cf9) +++ sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision db92783a0a9dab0ddf2b68c51d15b1ae1cb3ddcc) @@ -25,87 +25,102 @@ * \brief Slider component with a title and the currently selected value */ Rectangle { id: _root + property Flickable flickable: null - property alias text: _text.text - property var units: "" - property alias min: _slider.minimum - property alias max: _slider.maximum - property alias value: _slider.value - property alias diameter: _slider.diameter - property alias selectedValue: _selected_value - property alias step: _slider.step - property alias stepSnap: _slider.stepSnap - property alias sliderWidth: _slider.width - property alias isActive: _slider.isActive + property alias label : _label.text + property alias minimum : _slider.minimum + property alias maximum : _slider.maximum + property alias value : _slider.value + property alias step : _slider.step - signal pressed() + property string zeroLabel : qsTr("OFF") + + property string unit : "" + property bool active : false + property bool valid : true + + signal pressed () signal released() - height: Variables.createTreatmentSliderHeight - width: Variables.createTreatmentSliderWidth + height : Variables.createTreatmentSliderHeight + width : Variables.createTreatmentSliderWidth + color : "transparent" + anchors.horizontalCenter: parent.horizontalCenter - color: "transparent" - function setValid(valid) { - if (valid) { - _selected_value.color = Colors.textMain - _text.color = Colors.textMain - } else { - _selected_value.color = Colors.createTreatmentInvalidParam - _text.color = Colors.createTreatmentInvalidParam + function setColor() { + let color = Colors.textDisableButton + if ( _root.active ) { + if ( _root.valid ) { + color = Colors.textMain + } + else { + color = Colors.createTreatmentInvalidParam + } } + return color } - Text { - id: _text - text: "" - anchors.top: parent.top - anchors.left: parent.left - font.pixelSize: Fonts.fontPixelFluidText - color: Colors.textMain + function setValue() { + let value = "__" + let unit = " " + _root.unit + if ( _root.active ) { + if ( _slider.value ) { + value = _slider.value + } + else { + if ( zeroLabel ) { + return _root.zeroLabel + } + } + } + return value + unit + } + function setInteractive( vInteractive ) { + if (_root.flickable) { + _root.flickable.interactive = vInteractive + } } - Text { id: _selected_value - objectName: _root.objectName + "Value" - anchors.top: parent.top - anchors.right: parent.right - text: qsTr("__") + " " + _root.units - font.pixelSize: Fonts.fontPixelFluidUnit - color: Colors.textDisableButton + function setActiveValid() { + _root.active = _root.valid = true } + Text { id: _label + text : "" + anchors.top : parent.top + anchors.left : parent.left + font.pixelSize : Fonts.fontPixelFluidText + color : _root.setColor() + } + + Text { id: _value + objectName : _root.objectName + "Value" + text : _root.setValue() + anchors.top : parent.top + anchors.right : parent.right + font.pixelSize : Fonts.fontPixelFluidUnit + color : _root.setColor() + } + Slider { id : _slider - objectName: _root.objectName + "Slider" + objectName : _root.objectName + "Slider" anchors.horizontalCenter: parent.horizontalCenter anchors.bottom : parent.bottom - width : Variables.createTreatmentSliderWidth - diameter : Variables.sliderCircleDiameter - color : Colors.createTreatmentInactive - handlerColor: Colors.createTreatmentInactive - touchMargin : Variables.createTreatmentSliderMargin - height : 5 - isActive : false - ticks : true - onValueChanged: { - if (isActive) - _selected_value.text = value + " " + _root.units - } - onActiveChanged: { - if (isActive) { - _selected_value.text = value + " " + _root.units - _selected_value.color = Colors.textMain - _text.color = Colors.textMain - } else { - _selected_value.color = Colors.textDisableButton - _text.color = Colors.textDisableButton - } - } - onProgressRectClicked : { setActive (true); setValid(true); } - onProgressRectDragged : { setActive (true); setValid(true); } - onPressed : { _root.pressed ( ); } - onReleased : { _root.released ( ); } - onDragged : { setActive (true); setValid(true); } - onClicked : { setActive (true); setValid(true); } + width : Variables.createTreatmentSliderWidth + diameter : Variables.sliderCircleDiameter + touchMargin : Variables.createTreatmentSliderMargin + color : Colors.createTreatmentInactive + handlerColor : Colors.createTreatmentInactive + height : Variables.progressbarFluidHeight + isActive : _root.active + ticks : true + onPressed : { setInteractive(false) ; _root.pressed ( ) ; setActiveValid( ) } + onDragged : { setInteractive(false) ; ; setActiveValid( ) } + onReleased : { setInteractive(true ) ; _root.released( ) ; } + onClicked : { ; ; setActiveValid( ) } + onProgressRectClicked : { ; ; setActiveValid( ) } + onProgressRectDragged : { ; ; setActiveValid( ) } } }