Index: sources/gui/qml/components/Slider.qml =================================================================== diff -u -r8610e83160b703fb1762bd6a50b920b39cccea68 -r6179111114213085810211b7311c033605c9d448 --- sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 8610e83160b703fb1762bd6a50b920b39cccea68) +++ sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 6179111114213085810211b7311c033605c9d448) @@ -25,6 +25,7 @@ */ RangeRect { id: _root property real value : _progressRect.value + property real defaultValue : _root.minimum property real step : 1 property bool stepSnap : false @@ -57,10 +58,7 @@ signal handleSelected() signal sliderSelected() - QtObject { id: _private - property bool hasDefaultValue : false - property real defaultValue : _root.value - } + onDefaultValueChanged: refreshValue() // this function shall be used in case that any external value is forced to be set for the slider // like the OFF switch wants to externally set the slider value and bypass slider controlls and checks. @@ -70,12 +68,6 @@ _progressRect.value = vValue } - function setDefaultValue(vValue) { - reset(vValue) - _private.hasDefaultValue = true - _private.defaultValue = vValue - } - function incrementValue (vInStepSegments) { updateValue(vInStepSegments, true) } @@ -119,23 +111,29 @@ } } - onIsActiveChanged: { - setActiveVisuals(isActive) - - // A slider can have a default value that is used in place of the minimum in cases - // where the slider is not inactive zero or just got activated - let defaultValue = (_private.hasDefaultValue) ? _private.defaultValue : minimum - + /* + refreshValue() re-evaluates the _root.value and _progressRect.value based on the + current active state. This function is used when the defaultValue property or + isActive property changes. + */ + function refreshValue() { // value is assigned a different value based on active-ness of the slider // This is to resolve the use of slider with a switch and arrows enabled. // It allows correct behavior when using arrow on a first initialize increment of // the slider when the slider has inActiveZero to true. if(!isActive) { - _root.value = inActiveZero ? 0 : defaultValue + _root.value = inActiveZero ? 0 : _root.defaultValue } else { - _root.value = _progressRect.value = defaultValue + _root.value = _root.defaultValue } + // need to set the value of progressRect to reflect handle position + _progressRect.value = _root.defaultValue + } + + onIsActiveChanged: { + setActiveVisuals(isActive) + refreshValue () // re-evaluate values activeChanged() // emit } Index: sources/gui/qml/components/SliderCreateTreatment.qml =================================================================== diff -u -r8610e83160b703fb1762bd6a50b920b39cccea68 -r6179111114213085810211b7311c033605c9d448 --- sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision 8610e83160b703fb1762bd6a50b920b39cccea68) +++ sources/gui/qml/components/SliderCreateTreatment.qml (.../SliderCreateTreatment.qml) (revision 6179111114213085810211b7311c033605c9d448) @@ -33,6 +33,7 @@ property alias minimum : _slider.minimum property alias maximum : _slider.maximum property alias value : _slider.value + property alias defaultValue : _slider.defaultValue property alias step : _slider.step property alias inActiveZero: _slider.inActiveZero @@ -57,10 +58,6 @@ _slider.reset(vValue) } - function setDefaultValue (vValue) { - _slider.setDefaultValue(vValue) - } - function setColor() { let color = Colors.textMain if ( ! _root.valid ) { color = Colors.createTreatmentInvalidParam ; return color } Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml =================================================================== diff -u -r8610e83160b703fb1762bd6a50b920b39cccea68 -r6179111114213085810211b7311c033605c9d448 --- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml (.../PreTreatmentCreate.qml) (revision 8610e83160b703fb1762bd6a50b920b39cccea68) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml (.../PreTreatmentCreate.qml) (revision 6179111114213085810211b7311c033605c9d448) @@ -120,6 +120,7 @@ maximum : vTreatmentRanges.bloodFlowRateMax step : vTreatmentRanges.bloodFlowRateRes value : vTreatmentRanges.bloodFlowRateDef + defaultValue: vTreatmentRanges.bloodFlowRateDef valid : !vTreatmentCreate.bloodFlowRateRejectReason onValueChanged : { // Reset the valid state to allow repositioning to the next invalid parameter @@ -139,6 +140,7 @@ maximum : vTreatmentRanges.dialysateFlowRateMax step : vTreatmentRanges.dialysateFlowRateRes value : vTreatmentRanges.dialysateFlowRateDef + defaultValue: vTreatmentRanges.dialysateFlowRateDef valid : !vTreatmentCreate.dialysateFlowRateRejectReason onValueChanged : { // Reset the valid state to allow repositioning to the next invalid parameter @@ -158,6 +160,7 @@ maximum : vTreatmentRanges.treatmentDurationMax step : vTreatmentRanges.treatmentDurationRes value : vTreatmentRanges.treatmentDurationDef + defaultValue: vTreatmentRanges.treatmentDurationDef valid : !vTreatmentCreate.treatmentDurationRejectReason onValueChanged: { // Reset the valid state to allow repositioning to the next invalid parameter @@ -204,6 +207,7 @@ maximum : vTreatmentRanges.heparinDispensingRateMax step : vTreatmentRanges.heparinDispensingRateRes value : vTreatmentRanges.heparinDispensingRateDef + defaultValue: vTreatmentRanges.heparinDispensingRateDef valid : !vTreatmentCreate.heparinDispensingRateRejectReason adjustable : _heparinDispensingRateSwitch.checked inActiveZero : true @@ -284,6 +288,7 @@ maximum : vTreatmentRanges.heparinBolusVolumeMax step : vTreatmentRanges.heparinBolusVolumeRes value : vTreatmentRanges.heparinBolusVolumeDef + defaultValue: vTreatmentRanges.heparinBolusVolumeDef valid : !vTreatmentCreate.heparinBolusVolumeRejectReason adjustable : _heparinBolusVolumeSwitch.checked inActiveZero : true @@ -360,6 +365,7 @@ maximum : vTreatmentRanges.heparinStopTimeMax step : vTreatmentRanges.heparinStopTimeRes value : vTreatmentRanges.heparinStopTimeDef + defaultValue: vTreatmentRanges.heparinStopTimeDef valid : !vTreatmentCreate.heparinStopTimeRejectReason enabled : false // this switch depends on the heparin dispencing adjustable : false // this switch depends on the heparin dispencing @@ -382,6 +388,7 @@ maximum : vTreatmentRanges.salineBolusVolumeMax step : vTreatmentRanges.salineBolusVolumeRes value : vTreatmentRanges.salineBolusVolumeDef + defaultValue: vTreatmentRanges.salineBolusVolumeDef valid : !vTreatmentCreate.salineBolusVolumeRejectReason onValueChanged: { // Reset the valid state to allow repositioning to the next invalid parameter @@ -462,17 +469,9 @@ maximum : vTreatmentRanges.dialysateTempMax step : vTreatmentRanges.dialysateTempRes value : vTreatmentRanges.dialysateTempDef + defaultValue: vTreatmentRanges.dialysateTempDef valid : !vTreatmentCreate.dialysateTempRejectReason - Connections{ - target: vTreatmentRanges - function onDialysateTempDefChanged(){ - // Once the default value is loaded from configurations, - // set the slider to reflect default value - _dialysateTemperature.setDefaultValue(vTreatmentRanges.dialysateTempDef) - } - } - onValueChanged: { // Reset the valid state to allow repositioning to the next invalid parameter if(!valid) { @@ -747,6 +746,7 @@ maximum : vTreatmentRanges.bloodPressureMeasureIntervalMax step : vTreatmentRanges.bloodPressureMeasureIntervalRes value : vTreatmentRanges.bloodPressureMeasureIntervalDef + defaultValue: vTreatmentRanges.bloodPressureMeasureIntervalDef valid : !vTreatmentCreate.bloodPressureMeasureIntervalRejectReason adjustable : _bloodPressureIntervalSwitch.checked inActiveZero: true @@ -824,6 +824,7 @@ maximum : vTreatmentRanges.rinsebackFlowRateMax step : vTreatmentRanges.rinsebackFlowRateRes value : vTreatmentRanges.rinsebackFlowRateDef + defaultValue: vTreatmentRanges.rinsebackFlowRateDef valid : !vTreatmentCreate.rinsebackFlowRateRejectReason onValueChanged: { // Reset the valid state to allow repositioning to the next invalid parameter