Index: sources/gui/qml/components/BaseComboBox.qml =================================================================== diff -u -r9c818f9b2600fa0fb9375f5923bf01ffcbb17e0f -r10d95daf091fedda008906727088648f66ae5bac --- sources/gui/qml/components/BaseComboBox.qml (.../BaseComboBox.qml) (revision 9c818f9b2600fa0fb9375f5923bf01ffcbb17e0f) +++ sources/gui/qml/components/BaseComboBox.qml (.../BaseComboBox.qml) (revision 10d95daf091fedda008906727088648f66ae5bac) @@ -28,7 +28,6 @@ property alias dropDownWidth : _popup.width property int delegateWidth : dropDownWidth property int delegateHeight : height - property int actualValue : 0 width : 300 displayText : _root.isActive ? currentText : Variables.emptyEntry @@ -38,14 +37,10 @@ signal clear() - onActivated : _root.isActive = true onClear : { currentIndex = 0 - isActive = false } - function refresh () { currentIndex = actualValue } - contentItem: Text { id: _displayText text : parent.displayText color : Colors.offWhite Index: sources/gui/qml/compounds/ValueAdjuster.qml =================================================================== diff -u -r5d7e02ed6481cc6ae1c944a5ba1687766f7f8375 -r10d95daf091fedda008906727088648f66ae5bac --- sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision 5d7e02ed6481cc6ae1c944a5ba1687766f7f8375) +++ sources/gui/qml/compounds/ValueAdjuster.qml (.../ValueAdjuster.qml) (revision 10d95daf091fedda008906727088648f66ae5bac) @@ -26,10 +26,9 @@ property real value : 0 property real defaultValue: 0 property real step : 0 - property real actualValue : 0 property bool isActive : false property bool editable : true - property bool canOff : false + property bool canOff : false property bool canRefresh : false // fix floating-point precision issue @@ -41,28 +40,38 @@ readonly property bool canDecrement : isActive ? canOff ? value > 0 : value > minimum : true + signal didChange (real vValue) + signal didActiveChange (bool vState) + onIsActiveChanged : { - if ( canRefresh ) { canRefresh = false; return; } + if ( canRefresh ) { canRefresh = false; return; } - if ( isActive ) { _root.value = _root.defaultValue } + if ( isActive ) { didChange(_root.defaultValue) } } - function refresh () { value = actualValue; canRefresh = true } + function refresh() { canRefresh = true } - function clear() { _root.isActive = false } + function clear() { didActiveChange(false) } function increment() { - if ( ! isActive ) { isActive = true; return; } + let tValue = value + if ( ! isActive ) { didActiveChange(true); return; } - if ( canOff ) { value = val < minVal ? minVal : val + stepVal } - else { value += stepVal } + if ( canOff ) { tValue = val < minVal ? minVal : val + stepVal } + else { tValue += stepVal } + + didChange(tValue) + } - function decrement() { - if ( ! isActive ) { isActive = true; return; } + function decrement(vValue) { + let tValue = value + if ( ! isActive ) { didActiveChange(true); return; } - if ( canOff ) { value = val > minVal ? val - stepVal : 0 } - else { value -= stepVal } + if ( canOff ) { tValue = val > minVal ? val - stepVal : 0 } + else { tValue -= stepVal } + + didChange(tValue) } Text { id: _text @@ -122,7 +131,7 @@ pressAndHoldInterval: 0 onClicked: { - if ( _root.editable ) { isActive = true; focus = true } + if ( _root.editable ) { didActiveChange(true); focus = true } _slider.opacity = 0 } @@ -134,7 +143,7 @@ } onPressAndHold: { - if ( _root.editable ) { isActive = true; focus = true } + if ( _root.editable ) { didActiveChange(true); focus = true } _sliderMouseArea.grabbed = true } @@ -146,7 +155,8 @@ _slider.pos = Math.max(0, Math.min(1, mouse.x / parent.width)) let raw = _slider.from + _slider.pos * (_slider.to - _slider.from) let stepped = Math.round((raw - _slider.from) / _root.step) * _root.step + _slider.from - _root.value = stepped + didChange(stepped) +// _root.value = stepped } } @@ -180,6 +190,7 @@ visible : _root.editable iconImageSource : enabled ? "qrc:/images/iArrowLeft" : "qrc:/images/iArrowLeftDisabled" +// onClicked : didDecrement() onClicked : decrement() } @@ -194,6 +205,7 @@ visible : _root.editable iconImageSource : enabled ? "qrc:/images/iArrowRight" : "qrc:/images/iArrowRightDisabled" +// onClicked : didIncrement() onClicked : increment() } } Index: sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml =================================================================== diff -u -r254725cce5518a3fdafa203aeb1e537b9f9898bf -r10d95daf091fedda008906727088648f66ae5bac --- sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml (.../AcidConcentrateAdjustment.qml) (revision 254725cce5518a3fdafa203aeb1e537b9f9898bf) +++ sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml (.../AcidConcentrateAdjustment.qml) (revision 10d95daf091fedda008906727088648f66ae5bac) @@ -89,6 +89,12 @@ step : vTreatmentRanges.acidConcentratePotassiumRes defaultValue : vTreatmentRanges.acidConcentratePotassiumDef decimal : Variables.potassiumPrecision + value : vTreatmentRanges.potassium + isActive : vTreatmentRanges.potassiumSet + onDidActiveChange: function(vState) { vTreatmentRanges.potassiumSet = vState } + onDidChange : function(vValue) { + vTreatmentRanges.potassium = vValue + } } } @@ -110,6 +116,12 @@ step : vTreatmentRanges.acidConcentrateCalciumRes defaultValue : vTreatmentRanges.acidConcentrateCalciumDef decimal : Variables.calciumPrecision + value : vTreatmentRanges.calcium + isActive : vTreatmentRanges.calciumSet + onDidActiveChange: function(vState) { vTreatmentRanges.calciumSet = vState } + onDidChange : function(vValue) { + vTreatmentRanges.calcium = vValue + } } } @@ -149,10 +161,10 @@ function onDidPopulateAcidConcentrate ( vSet ) { if ( vSet ) { + _potassiumValueControl .refresh() + _calciumValueControl .refresh() _potassiumValueControl .isActive = true _calciumValueControl .isActive = true - _calciumValueControl .value = vTreatmentRanges.calcium - _potassiumValueControl .value = vTreatmentRanges.potassium notificationText = qsTr("Duplicate Acid Concentrate Entry") } else { Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml =================================================================== diff -u -r5d7e02ed6481cc6ae1c944a5ba1687766f7f8375 -r10d95daf091fedda008906727088648f66ae5bac --- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision 5d7e02ed6481cc6ae1c944a5ba1687766f7f8375) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision 10d95daf091fedda008906727088648f66ae5bac) @@ -43,18 +43,18 @@ function activateAndRefresh() { refreshAll () // needs to be first - _bloodFlowRateControl .isActive = true - _dialysateFlowRateControl .isActive = true - _durationControl .isActive = true - _heparinDispensingRateControl .isActive = true - _heparinBolusVolumeControl .isActive = true - _heparinStopTimeControl .isActive = true - _acidConcentrateComboBox .isActive = true - _bicarbonateConcentrateComboBox .isActive = true - _dialyzerTypeComboBox .isActive = true - _dialysateTemperatureControl .isActive = true - _salineBolusVolumeControl .isActive = true - _bpMeasurementIntervalControl .isActive = true + vTreatmentCreate.bloodFlowRateSet = true + vTreatmentCreate.dialysateFlowRateSet = true + vTreatmentCreate.treatmentDurationSet = true + vTreatmentCreate.heparinDispensingRateSet = true + vTreatmentCreate.heparinBolusVolumeSet = true + vTreatmentCreate.heparinStopTimeSet = true + vTreatmentCreate.dialysateTempSet = true + vTreatmentCreate.salineBolusVolumeSet = true + vTreatmentCreate.bloodPressureMeasureIntervalSet = true + vTreatmentCreate.acidConcentrateSet = true + vTreatmentCreate.bicarbonateConcentrateSet = true + vTreatmentCreate.dialyzerTypeSet = true } function refreshAll () { @@ -146,8 +146,7 @@ Connections { target: _acidConcentrateAdjustment function onAccepted () { - _acidConcentrateComboBox.currentIndex = vTreatmentCreate.acidConcentrate = _acidConcentrateComboBox.find(_acidConcentrateAdjustment.adjustment) - _acidConcentrateComboBox.isActive = vTreatmentCreate.acidConcentrateSet = true + vTreatmentCreate.acidConcentrate = _acidConcentrateComboBox.find(_acidConcentrateAdjustment.adjustment) } } @@ -266,10 +265,12 @@ maximum : vTreatmentRanges.bloodFlowRateMax step : vTreatmentRanges.bloodFlowRateRes defaultValue : vTreatmentRanges.bloodFlowRateDef - actualValue : vTreatmentCreate.bloodFlowRate - onValueChanged : { + value : vTreatmentCreate.bloodFlowRate + isActive : vTreatmentCreate.bloodFlowRateSet + onDidActiveChange: function(vState) { vTreatmentCreate.bloodFlowRateSet = vState } + onDidChange : function(vValue) { if ( ! _bloodFlowRate.valid ) { vTreatmentCreate.bloodFlowRateRejectReason = Variables.noRejectReason } - vTreatmentCreate.bloodFlowRate = value + vTreatmentCreate.bloodFlowRate = vValue } } } @@ -285,10 +286,12 @@ maximum : vTreatmentRanges.dialysateFlowRateMax step : vTreatmentRanges.dialysateFlowRateRes defaultValue : vTreatmentRanges.dialysateFlowRateDef - actualValue : vTreatmentCreate.dialysateFlowRate - onValueChanged : { + value : vTreatmentCreate.dialysateFlowRate + isActive : vTreatmentCreate.dialysateFlowRateSet + onDidActiveChange: function(vState) { vTreatmentCreate.dialysateFlowRateSet = vState } + onDidChange : function(vValue) { if ( ! _dialysateFlowRate.valid ) { vTreatmentCreate.dialysateFlowRateRejectReason = Variables.noRejectReason } - vTreatmentCreate.dialysateFlowRate = value + vTreatmentCreate.dialysateFlowRate = vValue } } } @@ -304,10 +307,12 @@ maximum : vTreatmentRanges.treatmentDurationMax step : vTreatmentRanges.treatmentDurationRes defaultValue : vTreatmentRanges.treatmentDurationDef - actualValue : vTreatmentCreate.treatmentDuration - onValueChanged : { + value : vTreatmentCreate.treatmentDuration + isActive : vTreatmentCreate.treatmentDurationSet + onDidActiveChange: function(vState) { vTreatmentCreate.treatmentDurationSet = vState } + onDidChange : function(vValue) { if ( ! _duration.valid ) { vTreatmentCreate.treatmentDurationRejectReason = Variables.noRejectReason } - vTreatmentCreate.treatmentDuration = value + vTreatmentCreate.treatmentDuration = vValue // set heparin time to clear when set if ( _heparinStopTimeControl.enabled ) { _heparinStopTimeControl.clear() } @@ -326,12 +331,14 @@ maximum : vTreatmentRanges.heparinBolusVolumeMax step : vTreatmentRanges.heparinBolusVolumeRes defaultValue : vTreatmentRanges.heparinBolusVolumeDef - actualValue : vTreatmentCreate.heparinBolusVolume + value : vTreatmentCreate.heparinBolusVolume decimal : Variables.heparinPrecision canOff : true - onValueChanged : { + isActive : vTreatmentCreate.heparinBolusVolumeSet + onDidActiveChange: function(vState) { vTreatmentCreate.heparinBolusVolumeSet = vState } + onDidChange : function(vValue) { if ( ! _heparinBolusVolume.valid ) { vTreatmentCreate.heparinBolusVolumeRejectReason = Variables.noRejectReason } - vTreatmentCreate.heparinBolusVolume = value + vTreatmentCreate.heparinBolusVolume = vValue } } } @@ -347,27 +354,29 @@ maximum : vTreatmentRanges.heparinDispensingRateMax step : vTreatmentRanges.heparinDispensingRateRes defaultValue : vTreatmentRanges.heparinDispensingRateDef - actualValue : vTreatmentCreate.heparinDispensingRate + value : vTreatmentCreate.heparinDispensingRate decimal : Variables.heparinPrecision canOff : true - onValueChanged : { + isActive : vTreatmentCreate.heparinDispensingRateSet + onDidActiveChange: function(vState) { vTreatmentCreate.heparinDispensingRateSet = vState } + onDidChange : function(vValue) { if ( ! _heparinDispensingRate.valid ) { vTreatmentCreate.heparinDispensingRateRejectReason = Variables.noRejectReason } // set heparin time to clear when set OFF to value - if ( ! vTreatmentCreate.heparinDispensingRate && value ) { _heparinStopTimeControl.clear() } + if ( ! vTreatmentCreate.heparinDispensingRate && vValue ) { _heparinStopTimeControl.clear() } - vTreatmentCreate.heparinDispensingRate = value + vTreatmentCreate.heparinDispensingRate = vValue // if set to OFF set heparin stop time 0 if ( ! vTreatmentCreate.heparinDispensingRate ) { - _heparinStopTimeControl.isActive = true - _heparinStopTimeControl.value = 0 + vTreatmentCreate.heparinStopTimeSet = true + vTreatmentCreate.heparinStopTime = 0 } } onIsActiveChanged: { if ( ! vTreatmentCreate.heparinDispensingRate && isActive ) { - _heparinStopTimeControl.isActive = true - _heparinStopTimeControl.value = 0 + vTreatmentCreate.heparinStopTimeSet = true + vTreatmentCreate.heparinStopTime = 0 } } } @@ -384,12 +393,14 @@ maximum : _durationControl.value step : _durationControl.step defaultValue : _durationControl.value - actualValue : vTreatmentCreate.heparinStopTime + value : vTreatmentCreate.heparinStopTime enabled : vTreatmentCreate.heparinDispensingRate canOff : true - onValueChanged : { + isActive : vTreatmentCreate.heparinStopTimeSet + onDidActiveChange: function(vState) { vTreatmentCreate.heparinStopTimeSet = vState } + onDidChange : function(vValue) { if ( ! _heparinStopTime.valid ) { vTreatmentCreate.heparinStopTimeRejectReason = Variables.noRejectReason } - vTreatmentCreate.heparinStopTime = value + vTreatmentCreate.heparinStopTime = vValue } } } @@ -430,11 +441,10 @@ anchors.leftMargin : anchors.rightMargin anchors.topMargin : Variables.defaultMargin / 2 anchors.bottomMargin: anchors.topMargin - isActive : false + isActive : vTreatmentCreate.acidConcentrateSet enabled : _root.editingEnabled currentIndex : vTreatmentCreate.acidConcentrate model : vTreatmentRanges.acidConcentrateOptions - actualValue : vTreatmentCreate.acidConcentrate onClear : { vTreatmentRanges.doClearAcidConcentrate(vTreatmentCreate.acidConcentrateSet) vTreatmentCreate.acidConcentrateSet = false @@ -458,11 +468,10 @@ anchors.leftMargin : anchors.rightMargin anchors.topMargin : Variables.defaultMargin / 2 anchors.bottomMargin: anchors.topMargin - isActive : false + isActive : vTreatmentCreate.bicarbonateConcentrateSet enabled : _root.editingEnabled currentIndex : vTreatmentCreate.bicarbonateConcentrate model : vTreatmentRanges.bicarbonateConcentrateOptions - actualValue : vTreatmentCreate.bicarbonateConcentrate onClear : vTreatmentCreate.bicarbonateConcentrateSet = false onActivated : { if ( ! _bicarbonateConcentrate.valid ) { vTreatmentCreate.bicarbonateConcentrateRejectReason = Variables.noRejectReason } @@ -482,11 +491,10 @@ anchors.leftMargin : anchors.rightMargin anchors.topMargin : Variables.defaultMargin / 2 anchors.bottomMargin: anchors.topMargin - isActive : false + isActive : vTreatmentCreate.dialyzerTypeSet enabled : _root.editingEnabled currentIndex : vTreatmentCreate.dialyzerType model : vTreatmentRanges.dialyzerTypeOptions - actualValue : vTreatmentCreate.dialyzerType onClear : vTreatmentCreate.dialyzerTypeSet = false onActivated : { if ( ! _dialyzerType.valid ) { vTreatmentCreate.dialyzerTypeRejectReason = Variables.noRejectReason } @@ -507,11 +515,13 @@ maximum : vTreatmentRanges.dialysateTempMax step : vTreatmentRanges.dialysateTempRes defaultValue : vTreatmentRanges.dialysateTempDef - actualValue : vTreatmentCreate.dialysateTemp + value : vTreatmentCreate.dialysateTemp decimal : Variables.dialysateTempPrecision - onValueChanged : { + isActive : vTreatmentCreate.dialysateTempSet + onDidActiveChange: function(vState) { vTreatmentCreate.dialysateTempSet = vState } + onDidChange : function(vValue) { if ( ! _dialysateTemperature.valid ) { vTreatmentCreate.dialysateTempRejectReason = Variables.noRejectReason } - vTreatmentCreate.dialysateTemp = value + vTreatmentCreate.dialysateTemp = vValue } } } @@ -527,10 +537,12 @@ maximum : vTreatmentRanges.salineBolusVolumeMax step : vTreatmentRanges.salineBolusVolumeRes defaultValue : vTreatmentRanges.salineBolusVolumeDef - actualValue : vTreatmentCreate.salineBolusVolume - onValueChanged : { + value : vTreatmentCreate.salineBolusVolume + isActive : vTreatmentCreate.salineBolusVolumeSet + onDidActiveChange: function(vState) { vTreatmentCreate.salineBolusVolumeSet = vState } + onDidChange : function(vValue) { if ( ! _salineBolusVolume.valid ) { vTreatmentCreate.salineBolusVolumeRejectReason = Variables.noRejectReason } - vTreatmentCreate.salineBolusVolume = value + vTreatmentCreate.salineBolusVolume = vValue } } } @@ -546,11 +558,13 @@ maximum : vTreatmentRanges.bloodPressureMeasureIntervalMax step : vTreatmentRanges.bloodPressureMeasureIntervalRes defaultValue : vTreatmentRanges.bloodPressureMeasureIntervalDef - actualValue : vTreatmentCreate.bloodPressureMeasureInterval + value : vTreatmentCreate.bloodPressureMeasureInterval canOff : true - onValueChanged : { + isActive : vTreatmentCreate.bloodPressureMeasureIntervalSet + onDidActiveChange: function(vState) { vTreatmentCreate.bloodPressureMeasureIntervalSet = vState } + onDidChange : function(vValue) { if ( ! _bpMeasurementInterval.valid ) { vTreatmentCreate.bloodPressureMeasureIntervalRejectReason = Variables.noRejectReason } - vTreatmentCreate.bloodPressureMeasureInterval = value + vTreatmentCreate.bloodPressureMeasureInterval = vValue } } } Index: sources/view/VTreatmentCreate.h =================================================================== diff -u -r6992763b4202285e647a9aafbdf6752e5707bfe2 -r10d95daf091fedda008906727088648f66ae5bac --- sources/view/VTreatmentCreate.h (.../VTreatmentCreate.h) (revision 6992763b4202285e647a9aafbdf6752e5707bfe2) +++ sources/view/VTreatmentCreate.h (.../VTreatmentCreate.h) (revision 10d95daf091fedda008906727088648f66ae5bac) @@ -125,7 +125,6 @@ TRIGGER(quint32 , rinsebackVolumeRejectReason , 0) TRIGGER(quint32 , trancembrncPressureLimitWindowRejectReason , 0) - VIEW_DEC_CLASS(VTreatmentCreate) VIEW_DEC_SLOT(AdjustParametersValidationResponseData) VIEW_DEC_SLOT(AdjustSerialNumberTDResponseData) Index: sources/view/hd/data/VTreatmentRanges.h =================================================================== diff -u -r254725cce5518a3fdafa203aeb1e537b9f9898bf -r10d95daf091fedda008906727088648f66ae5bac --- sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision 254725cce5518a3fdafa203aeb1e537b9f9898bf) +++ sources/view/hd/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision 10d95daf091fedda008906727088648f66ae5bac) @@ -54,8 +54,8 @@ RANGESET( quint32 , salineBolusVolume , 0) RANGESET( float , acidConcentratePotassium , 0) RANGESET( float , acidConcentrateCalcium , 0) - PROPERTY( float , potassium , 0) - PROPERTY( float , calcium , 0) + VALUESET( float , potassium , 0) + VALUESET( float , calcium , 0) READONLY( QStringList , heparinTypeOptions ,{}) READONLY( QStringList , acidConcentrateOptions ,{})