// Qt
import QtQuick 2.15

//  Qml imports
import "qrc:/globals"
import "qrc:/components"
import "qrc:/compounds"
import "qrc:/pages/settings"
import "qrc:/pages/settings/servicemode"

SettingsBase { id: _root

    readonly property int delegateWidth : parent.width / 2.5
    readonly property int delegateHeight: 80

    property var itemsText      : [
        qsTr("Calibrate Hydraulics"             ),
        qsTr("Calibrate Sensors"                ),
        qsTr("Maintenance"                      ),
        qsTr("Test BP Module"                   ),
        qsTr("Flush Filters"                    ),
        qsTr("Options"                          ),
        qsTr("Service Mode Calibrations"        ),
    ]

    enum ItemsIndex {
        CalibrateHydraulics     ,
        CalibrateSensors        ,
        Maintenance             ,
        TestBPModule            ,
        FlushFilters            ,
        Options                 ,
        Home
    }

    property var itemsVisible  : [
        true        , // CalibrateHydraulics
        true        , // CalibrateSensors
        true        , // Maintenance
        true        , // TestBPModule
        true        , // FlushFilters
        true        , // Options
        false       , // leave last and false align with settings home
    ]

    confirmVisible  : false
    backVisible     : true
    itemIndex       : ServiceModeMainMenu.Home

    contentArea.anchors.topMargin: Variables.defaultMargin * -2

    ServiceModeHydraulics { id: _serviceModeHydraulics }

    contentItem: TouchGrid { id: _serviceModeItems
        itemsText           : _root.itemsText
        colCount            : 2
        rowCount            : 3
        itemWidth           : _root.delegateWidth
        itemHeight          : _root.delegateHeight
        itemsVisible        : _root.itemsVisible

        lineThickness       : 0
        arrowWidth          : Variables.iconButtonSize
        arrowHeight         : Variables.iconButtonSize
        arrowRightMargin    : Variables.defaultMargin
        delegateColor       : Colors.panelBackgroundColor
        delegateBorderWidth : 1
        delegateBorderColor : Colors.panelBorderColor
        itemsHasIndent      : Array(itemsText.length).fill(true) // sets all to true

        onItemClicked       :{
            switch (vIndex) {
            case ServiceModeMainMenu.CalibrateHydraulics    :
                push(_serviceModeHydraulics)
                break

            case ServiceModeMainMenu.CalibrateSensors       :
                print("Calibrate Sensors")
                break

            case ServiceModeMainMenu.Maintenance            :
                print("Maintenance")
                break

            case ServiceModeMainMenu.TestBPModule           :
                print("Test BP Module")
                break

            case ServiceModeMainMenu.FlushFilters           :
                print("Flush Filters")
                break

            case ServiceModeMainMenu.Options                :
                print("Options")
                break
            }
        }
    }
}
