Index: sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml =================================================================== diff -u -reb3bbd3e203463dc3634ecb009b8a1390bb87012 -r7e07088a0fe4423b8caa5f81fd0e890ba5a50334 --- sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision eb3bbd3e203463dc3634ecb009b8a1390bb87012) +++ sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision 7e07088a0fe4423b8caa5f81fd0e890ba5a50334) @@ -29,19 +29,8 @@ */ StackItem { id: _root stackView.initialItem : null - enum Step { // All pretreatment steps advanced and standard - Concentrates , - Installation , - SelfTests , - Saline , - Prime , - WaterSample , - CreateRx , - UF , - Connect - } - enum StandardSteps { // standard pre treatment steps + enum Step { Concentrates , Installation , SelfTests , @@ -53,45 +42,15 @@ Connect } - enum AdvancedSteps { // advanced pre treatment steps - Installation , - SelfTests , - Saline , - Prime , - CreateRx , - UF , - Connect - } - - property var stepNamesAdvanced: [ - qsTr("Installation" ), - qsTr("Self-Tests" ), - qsTr("Saline" ), - qsTr("Prime" ), - qsTr("Rx" ), - qsTr("UF" ), - qsTr("Connect" ), - ] - - property var stepNamesStandard: [ - qsTr("Concentrates" ), - qsTr("Installation" ), - qsTr("Self-Tests" ), - qsTr("Saline" ), - qsTr("Prime" ), - qsTr("Water Sample" ), - qsTr("Rx" ), - qsTr("UF" ), - qsTr("Connect" ), - ] - - property var stepNames : vSettings.advancedMode ? stepNamesAdvanced : stepNamesStandard + property var stepNames : [] + property var stepKeys : [] property int stepLineLength : 100 property int stackStepIndex : 0 - readonly property bool isCreateRx : mappedStep() === PreTreatmentStack.Step.CreateRx + readonly property bool isCreateRx : stepKeys[_root.stackStepIndex] === PreTreatmentStack.Step.CreateRx onVisibleChanged: { if (visible) { + rebuildMap() _mainMenu.hidden = true _headerBar.titleText = qsTr("Setup Treatment") _root.stackStepIndex = 0 @@ -102,12 +61,58 @@ } } + // dynamically rebuild map πŸ—ΊοΈ when entering pretreatment. + // { step enum : step name } -- decided to use 2 parallel list for better indexing + function rebuildMap() { + let keys = [] // parallel key list of step enum + let values = [] // parallel step name string list + + // testing defeature... fix later + let enableWaterSample = true + + if ( ! vSettings.advancedMode ) { + keys.push(PreTreatmentStack.Step.Concentrates) + values.push(qsTr("Concentrates")) + } + + keys.push(PreTreatmentStack.Step.Installation) + values.push(qsTr("Installation")) + + keys.push(PreTreatmentStack.Step.SelfTests) + values.push(qsTr("Self-Tests")) + + keys.push(PreTreatmentStack.Step.Saline) + values.push(qsTr("Saline")) + + keys.push(PreTreatmentStack.Step.Prime) + values.push(qsTr("Prime")) + + // TODO update to defeature later.. testing for science πŸ§ͺπŸ”¬ + if (enableWaterSample) { + keys.push(PreTreatmentStack.Step.WaterSample) + values.push(qsTr("Water Sample")) + } + + keys.push(PreTreatmentStack.Step.CreateRx) + values.push(qsTr("Rx")) + + keys.push(PreTreatmentStack.Step.UF) + values.push(qsTr("UF")) + + keys.push(PreTreatmentStack.Step.Connect) + values.push(qsTr("Connect")) + + // πŸ“‹ reassign to notify bindings + stepKeys = keys + stepNames = values + } + // clear create rx parameters function clear(vValue) { if ( ! vValue ) return; _pretreatmentCreate.clear(vValue) } - // handle confirm clicked on any pretreatment page + // handle ⏭️ confirm clicked on any pretreatment page function confirmClicked() { - switch ( mappedStep() ) { + switch ( stepKeys[_root.stackStepIndex] ) { case PreTreatmentStack.Step.Concentrates: page ( _pretreatmentInstallation ) break @@ -122,9 +127,9 @@ } } - // handle back clicked on any pretreatment page + // handle πŸ”™ back clicked on any pretreatment page function backClicked() { - switch ( mappedStep() ) { + switch ( stepKeys[_root.stackStepIndex] ) { case PreTreatmentStack.Step.Concentrates: vPreTreatmentAdjustmentInitTreatment.doCancel() // request standby break @@ -133,8 +138,7 @@ else { page ( _pretreatmentConcentrates ) } break case PreTreatmentStack.Step.CreateRx: - if ( vSettings.advancedMode ) { page ( _pretreatmentInstallationAdv ) } - else { page ( _pretreatmentInstallation ) } + page ( _pretreatmentInstallation ) break default: break @@ -143,7 +147,7 @@ // handle text for the confirm button on any pretreatment page function confirmButtonText() { - switch ( mappedStep() ) { + switch ( stepKeys[_root.stackStepIndex] ) { case PreTreatmentStack.Step.Concentrates: return qsTr("Next") case PreTreatmentStack.Step.Installation: @@ -157,55 +161,6 @@ } } - // method to map each step advanced or standard to an internal normalized step - function mappedStep() { - if ( vSettings.advancedMode ) { - // Advanced - switch ( _root.stackStepIndex ) { - case PreTreatmentStack.AdvancedSteps.Installation: - return PreTreatmentStack.Step.Installation - case PreTreatmentStack.AdvancedSteps.SelfTests: - return PreTreatmentStack.Step.SelfTests - case PreTreatmentStack.AdvancedSteps.Saline: - return PreTreatmentStack.Step.Saline - case PreTreatmentStack.AdvancedSteps.Prime: - return PreTreatmentStack.Step.Prime - case PreTreatmentStack.AdvancedSteps.CreateRx: - return PreTreatmentStack.Step.CreateRx - case PreTreatmentStack.AdvancedSteps.UF: - return PreTreatmentStack.Step.UF - case PreTreatmentStack.AdvancedSteps.Connect: - return PreTreatmentStack.Step.Connect - default: - return -1 - } - } else { - // Standard - switch ( _root.stackStepIndex ) { - case PreTreatmentStack.StandardSteps.Concentrates: - return PreTreatmentStack.Step.Concentrates - case PreTreatmentStack.StandardSteps.Installation: - return PreTreatmentStack.Step.Installation - case PreTreatmentStack.StandardSteps.SelfTests: - return PreTreatmentStack.Step.SelfTests - case PreTreatmentStack.StandardSteps.Saline: - return PreTreatmentStack.Step.Saline - case PreTreatmentStack.StandardSteps.Prime: - return PreTreatmentStack.Step.Prime - case PreTreatmentStack.StandardSteps.WaterSample: - return PreTreatmentStack.Step.WaterSample - case PreTreatmentStack.StandardSteps.CreateRx: - return PreTreatmentStack.Step.CreateRx - case PreTreatmentStack.StandardSteps.UF: - return PreTreatmentStack.Step.UF - case PreTreatmentStack.StandardSteps.Connect: - return PreTreatmentStack.Step.Connect - default: - return -1 - } - } - } - StepNavigationTitleBar { id: _titleBar stepIndex : _root.stackStepIndex anchors { @@ -227,50 +182,42 @@ PreTreatmentBase { id: _pretreatmentConcentrates instructionBased : true - onVisibleChanged : if (visible) { _root.stackStepIndex = PreTreatmentStack.StandardSteps.Concentrates; updateModel() } + onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.Concentrates); updateModel() } } PreTreatmentBase { id: _pretreatmentInstallation instructionBased : true - onVisibleChanged : if (visible) { _root.stackStepIndex = PreTreatmentStack.StandardSteps.Installation; updateModel() } + onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.Installation); updateModel() } } - PreTreatmentBase { id: _pretreatmentInstallationAdv - instructionBased : true - onVisibleChanged : if (visible) { _root.stackStepIndex = PreTreatmentStack.AdvancedSteps.Installation; updateModel() } - } - PreTreatmentCreate { id: _pretreatmentCreate - onVisibleChanged : if (visible) { vSettings.advancedMode ? _root.stackStepIndex = PreTreatmentStack.AdvancedSteps.CreateRx : - _root.stackStepIndex = PreTreatmentStack.StandardSteps.CreateRx } + onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.CreateRx) } } - // TODO in pre treatment story -// PreTreatmentWaterSampleStack{ id: _preTreatmentWaterSampleStack ;objectName: "_preTreatmentWaterSampleStack" } -// PreTreatmentConsumablesStack{ id: _preTreatmentConsumablesStack ;objectName: "_preTreatmentConsumablesStack" } -// PreTreatmentPrimeStack { id: _pretreatmentPrimeStack ;objectName: "_pretreatmentPrimeStack" } -// PreTreatmentConnectionStack { id: _pretreatmentConnectionStack ;objectName: "_pretreatmentConnectionStack " } - Connections { target: vPreTreatmentAdjustmentDisposablesConfirm function onAdjustmentTriggered ( vValue ) { if ( vPreTreatmentAdjustmentDisposablesConfirm.adjustment_Accepted ) { - if ( vSettings.advancedMode ) { _pretreatmentInstallationAdv.informationText = "" } - else { _pretreatmentInstallation.informationText = "" } + _pretreatmentInstallation.informationText = "" + page ( _pretreatmentCreate ) // TODO fix in pre treatment.. Skip to create for now } else { - if ( vSettings.advancedMode ) { _pretreatmentInstallationAdv.informationText = vPreTreatmentAdjustmentDisposablesConfirm.text() } - else { _pretreatmentInstallation.informationText = vPreTreatmentAdjustmentDisposablesConfirm.text() } + _pretreatmentInstallation.informationText = vPreTreatmentAdjustmentDisposablesConfirm.text() } } } Connections { target: vTDOpMode - function onPreTreatmentChanged( vValue ) { if ( vSettings.advancedMode ) { page ( _pretreatmentInstallationAdv , vValue )} + function onPreTreatmentChanged( vValue ) { if ( vSettings.advancedMode ) { page ( _pretreatmentInstallation , vValue )} else { page ( _pretreatmentConcentrates , vValue )} } } - // TODO in pre treatment story + // TODO in pre treatment story --- Clean up in pre treatment story +// PreTreatmentWaterSampleStack{ id: _preTreatmentWaterSampleStack ;objectName: "_preTreatmentWaterSampleStack" } +// PreTreatmentConsumablesStack{ id: _preTreatmentConsumablesStack ;objectName: "_preTreatmentConsumablesStack" } +// PreTreatmentPrimeStack { id: _pretreatmentPrimeStack ;objectName: "_pretreatmentPrimeStack" } +// PreTreatmentConnectionStack { id: _pretreatmentConnectionStack ;objectName: "_pretreatmentConnectionStack " } + // Connections { target: vPreTreatmentStates // function onWaterSampleChanged ( vValue ) { page( _preTreatmentWaterSampleStack , vValue )} // function onSelfTestConsumablesChanged ( vValue ) { page( _preTreatmentConsumablesStack , vValue )}