Index: sources/gui/qml/components/SliderCreateTreatment.qml =================================================================== diff -u -r95a840fc93f1a2cd65732d835fad2aca0f03f28e -rf813d68fd04134b788273466fbf754b8996b4ac2 --- sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision 95a840fc93f1a2cd65732d835fad2aca0f03f28e) +++ sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision f813d68fd04134b788273466fbf754b8996b4ac2) @@ -1,15 +1,15 @@ /*! * - * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * Copyright (c) 2020-2023 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 SliderCreateTreatment.qml - * \author (last) Peter Lucia - * \date (last) 06-Oct-2020 - * \author (original) Peter Lucia - * \date (original) 07-Jul-2020 + * \file SliderCreateTreatment.qml + * \author (last) Behrouz NematiPour + * \date (last) 21-Oct-2022 + * \author (original) Peter Lucia + * \date (original) 07-Jul-2020 * */ @@ -24,94 +24,122 @@ /*! * \brief Slider component with a title and the currently selected value */ -Rectangle { - id: _root +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 sliderObjectName: _slider.objectName - property alias selectedValueObjectName: _selected_value.objectName + property bool adjustable : true + property alias label : _label.text + property alias decimal : _slider.decimal + property alias minimum : _slider.minimum + property alias maximum : _slider.maximum + property alias value : _slider.value + property alias step : _slider.step + property alias inActiveZero: _slider.inActiveZero - signal pressed() + property string zeroLabel : "" + + property string unit : "" + property bool active : false + property bool valid : true + + property alias showAdjustButtons : _sliderArrows.visible + + signal pressed () signal released() - height: Variables.createTreatmentSliderHeight - width: Variables.createTreatmentSliderWidth + height : Variables.createTreatmentSliderHeight + width : Variables.createTreatmentSliderWidth + color : Colors.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 mValue = "__" + let unit = " " + _root.unit + if ( _root.active ) { + if ( _slider.value === 0 && zeroLabel !== "" ) { + return _root.zeroLabel + } + mValue = _slider.value + } + return mValue + unit + } + function setInteractive( vInteractive ) { + if (_root.flickable) { + _root.flickable.interactive = vInteractive + } } - Text { - id: _selected_value - anchors.top: parent.top - anchors.right: parent.right - text: "-- " + _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 - 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 - minimum : 100 - maximum : 500 - unit : qsTr("") - step : Variables.bloodFlowResolution - ticks : true - onValueChanged: { - _selected_value.text = value + " " + _root.units - } + objectName : _root.objectName + "Slider" + enabled : _root.adjustable + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom : parent.bottom + width : Variables.createTreatmentSliderWidth + diameter : Variables.sliderCircleDiameter + touchMargin : Variables.createTreatmentSliderMargin + color : Colors.createTreatmentInactive + handlerColor : Colors.createTreatmentInactive + handlerVisible : _root.adjustable + 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( ) } + } - onActiveChanged: { - if (isActive) { - _selected_value.color = Colors.textMain - _text.color = Colors.textMain - } else { - _selected_value.color = Colors.textDisableButton - _text.color = Colors.textDisableButton - } - } + SliderArrows{ id:_sliderArrows + visible : true + anchors.verticalCenter : _slider.verticalCenter + anchors.left : _slider.right + anchors.leftMargin : Variables.sliderAdjustButtonLeftMargin - 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); } + onIncrementValue : { + setActiveValid() + _slider.incrementValue(true) + } + onDecrementValue : { + setActiveValid() + _slider.decrementValue(true) + } } }