Index: sources/gui/qml/compounds/CheckListView.qml =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -rca43b0285ec853d03be20103c6e0e0d9af86fd0a --- sources/gui/qml/compounds/CheckListView.qml (.../CheckListView.qml) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/gui/qml/compounds/CheckListView.qml (.../CheckListView.qml) (revision ca43b0285ec853d03be20103c6e0e0d9af86fd0a) @@ -47,12 +47,80 @@ } } } - function setItem(vIndex, vEntered) { - let model = _listView.itemAt(vIndex) - if ( vEntered ) model.stepStart = true - else model.stepDone = true + + property int pIndex:-1 + function setClear (vModel) { vModel.stepStart = false ; vModel.stepDone = false } + function setWait (vModel) { vModel.stepStart = true ; vModel.stepDone = false } + function setDone (vModel) { vModel.stepStart = true ; vModel.stepDone = true } + function setItemExt (vIndex, vEntered) { + let goBak = pIndex > vIndex + let goTop = pIndex < vIndex + // if ( pIndex === vIndex && !vEntered ) return + + for ( let i = 0; i < _listView.count; i++ ) { + let model = _listView.itemAt(i) + console.log(i, pIndex, vEntered?"I":"O", vIndex/*, goBak?"B":" ", goTop?"T":" "*/) + if ( i < vIndex ) { + if ( goTop ) { + // Do nothing + } + else { + // setDone(model) + } + } + if ( i > vIndex ) { + setClear(model) + } + if ( i === vIndex ) { + if ( vEntered ) { + setWait(model) + } + else { + if ( goTop ) { + setClear(model) + } + else { + if ( goBak ) { + setClear(model) + } + else { + setDone(model) + } + } + } + } + } + pIndex = vIndex + console.log("-----") } + //DEBUG Test function for investigation + function setItemExt2 (vIndex, vValue, vMode) { + for ( let i = 0; i < _listView.count; i++ ) { + let model = _listView.itemAt(i) + if ( i < vIndex ) { + setDone(model) + continue + } + if ( i > vIndex ) { + setClear(model) + continue + } + if ( vMode === 0 ) // enter + setWait(model) + if ( vMode === 1 ) // in Progress + setWait(model) + if ( vMode === 2 ) // exit + setDone(model) + if ( vMode === 9 ){// depending on value + if ( vValue ) setWait(model) + else setDone(model) + } + + } + + } + width : _root.delegateWidth height : _root.delegateHeight * _root.stepNames.length Index: sources/gui/qml/pages/pretreatment/PreTreatmentPrimeStack.qml =================================================================== diff -u -re8a6b6eaa4360f9d4272371bbb7c026ce9c13081 -rca43b0285ec853d03be20103c6e0e0d9af86fd0a --- sources/gui/qml/pages/pretreatment/PreTreatmentPrimeStack.qml (.../PreTreatmentPrimeStack.qml) (revision e8a6b6eaa4360f9d4272371bbb7c026ce9c13081) +++ sources/gui/qml/pages/pretreatment/PreTreatmentPrimeStack.qml (.../PreTreatmentPrimeStack.qml) (revision ca43b0285ec853d03be20103c6e0e0d9af86fd0a) @@ -102,7 +102,7 @@ checkListStepNames : [ qsTr("Blood Circuit Priming" ), qsTr("Dialysate Circuit Priming"), - qsTr("Wet Self Tests" ), + qsTr("Wet Self Tests" ) ] } @@ -129,18 +129,37 @@ Connections { target: vPreTreatmentStates function onPrimeChanged ( vValue ) { page( _preTreatmentDisposablesPrime , vValue )} function onPrime_waitUserStartEntered ( vValue ) {} - function onPrime_salineSetupEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItem(0, true )} + function onPrime_salineSetupEntered ( vValue ) {} function onPrime_salinePurgeAirEntered ( vValue ) {} - function onPrime_salineCirculateBloodCircuitEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItem(0, vValue )} - function onPrime_reservoiOneFillCompleteEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItem(1, true )} + function onPrime_salineCirculateBloodCircuitEntered ( vValue ) {} + function onPrime_reservoiOneFillCompleteEntered ( vValue ) {} function onPrime_dialysateDialyzerEntered ( vValue ) {} function onPrime_salineDialyzerSetupEntered ( vValue ) {} function onPrime_salineDialyzerEntered ( vValue ) {} function onPrime_reservoirTwoFillCompleteEntered ( vValue ) {} - function onPrime_dialysateBypassEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItem(1, vValue )} - function onPrime_wetSelfTestsEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItem(2, vValue )} + function onPrime_dialysateBypassEntered ( vValue ) {} + function onPrime_wetSelfTestsEntered ( vValue ) {} function onPrime_pauseEntered ( vValue ) {} function onPrime_completeEntered ( vValue ) {} + + //TODO this way of handling the states are new for states which can reset to the previous states + // if it is successfull I may use everywhere. + // 1 - it uses new setItemExt + // 2 - bundles the states of FW in UI states + // setitem differences. + // old: + // 1 - the start FW state of the UI state set to true + // 2 - the end FW state fo the UI state set with vValue + // 3 - nothing for the FW in-states of the UI states + // new: + // - all set with vValue and use the setItemExt + // Unkown missbehavior: + // - the only misbehavior is if the FW changes the FW state in the middle (in one of in-states), + // since UI budles the FW states, it assumes it is done and checks the state which may not be ideal. + // as an example if during the Dyalysate FW changes th state to the pause, UI may not show the Dialysaate done (probably!). + function onPrime__BloodCircuitEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItemExt(0, vValue )} + function onPrime__DialysateCircuitEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItemExt(1, vValue )} + function onPrime__WetSelfTestsEntered ( vValue ) { _preTreatmentDisposablesPrime .checkList.setItemExt(2, vValue )} } Connections { target: vPreTreatmentAdjustmentDisposablesPrime Index: sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp =================================================================== diff -u -raf8d98b36b427e2b5f4d6659fcf3b58ee79eab6a -rca43b0285ec853d03be20103c6e0e0d9af86fd0a --- sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp (.../VPreTreatmentStatesData.cpp) (revision af8d98b36b427e2b5f4d6659fcf3b58ee79eab6a) +++ sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp (.../VPreTreatmentStatesData.cpp) (revision ca43b0285ec853d03be20103c6e0e0d9af86fd0a) @@ -122,6 +122,19 @@ prime_wetSelfTests ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_WET_SELF_TESTS_STATE ); prime_pause ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_PAUSE ); prime_complete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_COMPLETE ); + + prime__BloodCircuit ( _prime_salineSetup || + _prime_salinePurgeAir || + _prime_salineCirculateBloodCircuit); + prime__DialysateCircuit ( _prime_reservoiOneFillComplete || + _prime_dialysateDialyzer || + _prime_salineDialyzerSetup || + _prime_salineDialyzer || + _prime_reservoirTwoFillComplete || + _prime_dialysateBypass ); + prime__WetSelfTests ( _prime_wetSelfTests ); + + } prime(mPrime); // it's the main even so moved last to have all the sub-states updated prior to. Index: sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h =================================================================== diff -u -raf8d98b36b427e2b5f4d6659fcf3b58ee79eab6a -rca43b0285ec853d03be20103c6e0e0d9af86fd0a --- sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h (.../VPreTreatmentStatesData.h) (revision af8d98b36b427e2b5f4d6659fcf3b58ee79eab6a) +++ sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h (.../VPreTreatmentStatesData.h) (revision ca43b0285ec853d03be20103c6e0e0d9af86fd0a) @@ -121,6 +121,11 @@ STATE ( bool , prime_pause , false ) ///< HD_PRIME_PAUSE , Prime pause state, waits to be resumed STATE ( bool , prime_complete , false ) ///< HD_PRIME_COMPLETE , Prime complete state + STATE ( bool , prime__BloodCircuit , false ) + STATE ( bool , prime__DialysateCircuit , false ) + STATE ( bool , prime__WetSelfTests , false ) + + // Re-circulate blood and dialysate circuits state PROPERTY( bool , recirculate_start , false ) ///< PRE_TREATMENT_RECIRC_STATE , Pre-treatment recirculate state. PROPERTY( bool , recirculate_stopped , false ) ///< PRE_TREATMENT_RECIRC_STOPPED_STATE , Pre-treatment recirculate stopped state.