Index: sources/gui/qml/pages/MainStack.qml =================================================================== diff -u -r821bf955d0ba7e028bccfee7c04ca77cf80a0bd4 -r4f8cbe0045e2a06a67a44894bb02b41a02eca5dd --- sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision 821bf955d0ba7e028bccfee7c04ca77cf80a0bd4) +++ sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision 4f8cbe0045e2a06a67a44894bb02b41a02eca5dd) @@ -20,9 +20,11 @@ // Qml imports import "qrc:/globals" import "qrc:/components" +import "qrc:/pages/disinfect" import "qrc:/pages/pretreatment" import "qrc:/pages/pretreatment/create" import "qrc:/pages/treatment" +import "qrc:/pages/endtreatment" import "qrc:/pages/posttreatment" /*! @@ -32,28 +34,32 @@ * is selected from the main menu. */ StackItem { id : _root - stackView.initialItem : _mainHome + stackView.initialItem : _initialModeScreen + function doSettingsDisinfect() { + _mainMenu.currentIndex = 0 + page( _disinfectStack ) + _disinfectStack.doSettingsDisinfect() + } + // Standby / Disinfection + DisinfectStack { id: _disinfectStack } // Pre Treatment PreTreatmentCreateStack { id: _preTreatmentCreateStack } - PreTreatmentMainStack { id: _preTreatmentMainStack } + PreTreatmentStack { id: _preTreatmentStack } // In TreatmentStack - TreatmentStack { id: _treatmentStack - // please be careful about the _root.pop. - // since TreatmentStack is a stack, just calling a pop will call the pop function of the TreatmentStack not MainStack. - // but _mainHome belongs to MainStack. - onBackClicked: _root.pop ( _mainHome ) - } + TreatmentStack { id: _treatmentStack } + // End Treatment + EndTreatmentRinsebackStack { id: _endTreatmentRinsebackStack } + EndTreatmentRecirculateStack { id: _endTreatmentRecirculateStack } + EndTreatmentEndStack { id: _endTreatmentEndStack } + // Post Treatment - PostTreatmentBloodPrime { id: _postTreatmentBloodPrime } // only one page, no stack for now. - PostTreatmentRinsebackStack { id: _postTreatmentRinsebackStack } - PostTreatmentRecirculateStack { id: _postTreatmentRecirculateStack } - PostTreatmentEndStack { id: _postTreatmentEndStack } + PostTreatmentStack { id: _postTreatmentStack } - ScreenItem { id: _faultModeScreen + // we recently decided to not change the screen on fault and stay on current(whatever are we on currently) screen. PlaceHolderText { screenName: qsTr("FAULT MODE") } onVisibleChanged: if (visible) _mainMenu.hidden = true } @@ -64,43 +70,93 @@ } ScreenItem { id: _initialModeScreen - PlaceHolderText { screenName: qsTr("INITIAL MODE") } - onVisibleChanged: if (visible) _mainMenu.hidden = true + onVisibleChanged: + if (visible) { + _mainMenu.hidden = true + } + Image { id: _dialityLogo + Behavior on opacity { OpacityAnimator { duration: 1000 } } + opacity : _initialModeScreen.visible ? 1 : 0 + anchors.centerIn: parent + source : "qrc:/images/iLogoDiality" + } + + ProgressBar { + minimum : 0 + maximum : vHDPOSTData.itemCount + value : vHDPOSTData.itemIndex + width : _dialityLogo.width + 50 + height : 3 + minText .visible: false + maxText .visible: false + marker .visible: false + anchors { + top: _dialityLogo.bottom + topMargin : 15 + horizontalCenter: parent.horizontalCenter + } + } + + WaitDone { id: _hdWaitdone + diameter: 100 + anchors { + top: _dialityLogo.bottom + topMargin: 100 + horizontalCenter: parent.horizontalCenter + } + visible : true + // HD will pause for a few seconds before changing to stand-by mode + // So we can show that POST has completed + fail : ! vHDPOSTData.doneResult + done : vHDPOSTData.done + pause : ! _initialModeScreen.visible + } } - MainHome { id: _mainHome - onStartTreatment : { page( _treatmentStack )} - onCreateTreatment : { vPreTreatmentAdjustmentInitTreatment.doInitiate() } + MainHome { id: _mainHome + onStartTreatment : { page( _treatmentStack )} + onCreateTreatment : { vPreTreatmentAdjustmentInitTreatment.doInitiate() } + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = false // initially our landing screen is _initialModeScreen which should not have the Main menu. + } + } } Connections { target: vHDOperationMode - onFaultChanged : { page( _faultModeScreen , vfault )} - onServiceChanged : { page( _serviceModeScreen , vservice )} - onInitChanged : { page( _initialModeScreen , vinit )} - onStandbyChanged : { page( _mainHome , vstandby )} - onValidateParametersChanged : { page( _preTreatmentCreateStack , vvalidateParameters )} - onPreTreatmentChanged : { page( _preTreatmentMainStack , vpreTreatment )} - onInTreatmentChanged : { page( _treatmentStack , vinTreatment )} - onPostTreatmentChanged : { page( null , vpostTreatment )} - onInvalidModeChanged : { page( null , vinvalidMode )} - } + // onFaultChanged : { page( _faultModeScreen , vfault )} // may needed later. + onServiceChanged : { page( _serviceModeScreen , vservice )} + onInitChanged : { page( _initialModeScreen , vinit ) + if ( vinit ) vHDPOSTData.reset() // better to reset on vinit = true because the rest makes the screen animation to run + } + onHomeChanged : { page( _mainHome , vhome )} + onStandbyChanged : { /* It depends on the subModes of the standBy. Handled by onHome. */ } + onStandbyStartChanged : { /* It depends on the subModes of the standBy. Handled by onHome. */ } + onStandbyWaitTreatmentChanged : { /* It depends on the subModes of the standBy. Handled by onHome. */ } + onStandbyWaitDisinfectChanged : { page( _disinfectStack , vstandbyWaitDisinfect )} + onValidateParametersChanged : { page( _preTreatmentCreateStack , vvalidateParameters )} + onPreTreatmentChanged : { page( _preTreatmentStack , vpreTreatment )} + onInTreatmentChanged : { page( _treatmentStack , vinTreatment )} + onPostTreatmentChanged : { page( _postTreatmentStack , vpostTreatment )} + onInvalidModeChanged : { page( null , vinvalidMode )} + } + // the page function is more flixible regarding our current design // and it's easier(or may not need) to modify later if required. // and is more optimized and will never leave screen empty // also with what ever order they have been push with the reverse/correct animation will be poped or pushed. Connections { target: vHDTreatmentStates // Blood Prime - onTxBloodPrimeChanged : { page( _postTreatmentBloodPrime , vtxBloodPrime )} onBpRampChanged : { page( null , vbpRamp )} // in-Treatmet onTxDialysisChanged : { page( _treatmentStack , vtxDialysis )} - onTxRinsebackChanged : { page( _postTreatmentRinsebackStack , vtxRinseback )} - onTxRecirculateChanged : { page( _postTreatmentRecirculateStack , vtxRecirculate )} - onTxEndChanged : { page( _postTreatmentEndStack , vtxEnd )} + onTxRinsebackChanged : { page( _endTreatmentRinsebackStack , vtxRinseback )} + onTxRecirculateChanged : { page( _endTreatmentRecirculateStack , vtxRecirculate )} + onTxEndChanged : { page( _endTreatmentEndStack , vtxEnd )} // Treatment Stop onTxStopChanged : { page( _treatmentStack , vtxStop )} @@ -115,13 +171,4 @@ // _mainHome.reasonText = vPreTreatmentAdjustmentInitTreatment.text() } } - - onVisibleChanged: { - if (visible) { - _mainMenu.hidden = false - } - else { - stackView.initialItem = null - } - } }