import QtQuick 2.9
import QtMultimedia 5.8
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0
import "../components"


StackView {
    id: control
    property int delegateHeight: height * 0.25
    property int rowSpacing: height * 0.01
    initialItem: settings

    /*-----start page of the settings-----*/
    Component {
        id: settings

        StartPage {
            id: settings_col
            parentObj: control
        }

    }

    /*-----Page to setup automatc start sequence-----*/
    Component {
        id: autostart

        SettingsStartSequencePage {
            id: autostart_col
            parentObj: control
        }

    }

    /*-----Page to connect to the base station -----*/
    Component {
        id: connect

        SettingsBaseStationPage{
            id: connectCol
            parentObj: control
        }

    }

    Component {
        id: extensions

        ExtensionOverview {
            property string title: qsTr("extensions")
            delegateHeight: control.delegateHeight
            backgroundColor: appTheme.theme.colors.view
        }
    }

    Component {
        id: baseStationSettings

        SettingsBaseStationSettingsPage {
            parentObj: control
        }
    }

    /*-----Custom animations-----*/
    pushEnter: Transition {
        NumberAnimation {
            property: "opacity"
            from: 0
            to: 1
            duration: 300
            easing.type: Easing.InOutQuad
        }

        NumberAnimation {
            property: "x"
            from: width * 0.1
            to: 0
            duration: 300
        }
    }
    pushExit: Transition {
        NumberAnimation {
            property: "opacity"
            from: 1
            to: 0
            duration: 300
            easing.type: Easing.InOutQuad
        }

        NumberAnimation {
            property: "x"
            to: -width * 0.1
            from: 0
            duration: 300
        }
    }

    popExit: Transition {
        NumberAnimation {
            property: "opacity"
            from: 1
            to: 0
            duration: 300
            easing.type: Easing.InOutQuad
        }
        NumberAnimation {
            property: "x"
            to: width * 0.1
            from: 0
            duration: 300
        }
    }
    popEnter: Transition {
        NumberAnimation {
            property: "opacity"
            from: 0
            to: 1
            duration: 300
            easing.type: Easing.InOutQuad
        }
        NumberAnimation {
            property: "x"
            from: -width * 0.1
            to: 0
            duration: 300
        }
    }
}

