/*!
 *
 * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved.
 * \copyright
 * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
 * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
 *
 * \file    PreTreatmentMainStack.qml
 * \author  (last)      Behrouz NematiPour
 * \date    (last)      28-Feb-2021
 * \author  (original)  Behrouz NematiPour
 * \date    (original)  28-Feb-2021
 *
 */

// Qt
import QtQuick 2.12

// Project
//  Qml imports
import "qrc:/globals"
import "qrc:/components"
import "qrc:/pages/pretreatment/sample" // Water Sample
import "qrc:/pages/pretreatment/consumables"
import "qrc:/pages/pretreatment/disposables" // No Cartridge SelfTest
import "qrc:/pages/pretreatment/prime"
/*!
 * \brief   the pre treatment prime stack screen
 */
StackItem { id: _root
    objectName: "_PreTreatmentMainStack"

    stackView.initialItem   : null

    PreTreatmentSampleStack     { id: _preTreatmentSampleStack          }
    PreTreatmentConsumablesStack{ id: _preTreatmentConsumablesStack     }
    PreTreatmentDisposablesStack{ id: _preTreatmentDisposablesStack     }
    PreTreatmentPrimeStack      { id: _pretreatmentPrimeStack           }
    PreTreatmentUltrafiltration { id: _pretreatmentUltrafiltration      }

    Connections { target: vTreatmentAdjustmentUltrafiltrationInit
        onAdjustmentTriggered   : {
            // the maximum ultrafiltration volume has to be set/revert regardless
            vTreatmentUltrafiltration.maximum = vTreatmentAdjustmentUltrafiltrationInit.volume
            _pretreatmentUltrafiltration.ufVolume          = vTreatmentAdjustmentUltrafiltrationInit.volume
            // but only if it has been accepted it will navigate
            if (vTreatmentAdjustmentUltrafiltrationInit.adjustment_Accepted) {
                vTreatmentCreate.doStartTreatment()
            }
            else {
                _pretreatmentUltrafiltration.reasonText  = vTreatmentAdjustmentUltrafiltrationInit.text()
            }
        }
    }

    Connections { target: vPreTreatmentStates
        onStartChanged              : { if ( vstart               ) { console.debug("vstart              ")}}
        onWaterSampleChanged        : { if ( vwaterSample         ) { page( _preTreatmentSampleStack      )}}
        onSelfTestConsumablesChanged: { if ( vselfTestConsumables ) { page( _preTreatmentConsumablesStack )}}
        onSelfTestNoCartridgeChanged: { if ( vselfTestNoCartridge ) { page( _preTreatmentDisposablesStack )}}
        onInstallationChanged       : { if ( vinstallation        ) { console.debug("vinstallation       ")}}
        onSelfTestDryChanged        : { if ( vselfTestDry         ) { page( _pretreatmentPrimeStack       )}}
        onPrimeChanged              : { if ( vprime               ) { console.debug("vprime              ")}}
        onRecirculateChanged        : { if ( vrecirculate         ) { console.debug("vrecirculate        ")}}
        onPatientConnectionChanged  : { if ( vpatientConnection   ) { console.debug("vpatientConnection  ")}}
    }

    Connections { target: _pretreatmentUltrafiltration
        onBackClicked               : {vTreatmentCreate.doRequestPop()      }
        onStartClicked              : {vTreatmentAdjustmentUltrafiltrationInit.doAdjustment(_pretreatmentUltrafiltration.ufVolume) }
    }

    onVisibleChanged: {
        if (visible) {
            _mainMenu.hidden = true
        }
    }
}
