C

Qt Quick Ultralite Thermostat Demo

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial

import QtQuick 2.15
import ThermoConfiguration 1.0
import Thermo 1.0

Item {
    id: root

    opacity: 0.95
    readonly property int transitionSlideX: Configuration.enableFadingAnimations ? 5 : 0

    x: GlobalState.selectedIndex > GlobalState.previousSelectedIndex ? transitionSlideX : -transitionSlideX

    Behavior on opacity {
        enabled: Configuration.enableFadingAnimations
        NumberAnimation {}
    }
    Behavior on x {
        NumberAnimation {
            onRunningChanged: {
                if(!running) {
                    GlobalState.loadNext()
                }
            }
        }
    }

    states: [
        State {
            id: selected
            name: "selected"
            when: GlobalState.selectedIndex == GlobalState.currentViewIndex
            PropertyChanges { target: root; opacity: 1 }
            PropertyChanges { target: root; x: 0 }
        },
        State {
            id: notSelected
            name: "notSelected"
            when: GlobalState.selectedIndex != GlobalState.previousSelectedIndex
            PropertyChanges { target: root; opacity: 0 }
            PropertyChanges { target: root; x: GlobalState.selectedIndex > GlobalState.previousSelectedIndex ? -100 : 100 }
        }
    ]
}