C
Qt Quick Ultralite Thermostat Demo
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
import QtQuick 2.15
import QtQuickUltralite.Extras 2.0
import Thermo 1.0
ThermoView {
id: root
property int cardSizeWithSpacing: Theme.cardRowSpacing + Theme.cardWidth
property int pageCount: 6
Component.onCompleted: {
GlobalState.placesLoaded = true
}
Flickable {
id: swipeView
interactive: GlobalState.showMain
anchors.fill: parent
contentWidth: root.pageCount * root.cardSizeWithSpacing + 2 * Theme.cardRowOffset
contentHeight: swipeView.height
contentX: GlobalState.cardX
onContentXChanged: GlobalState.cardX = swipeView.contentX
CardRow {
id: cardRow
x: Theme.cardRowOffset
y: 30
spacing: Theme.cardRowSpacing
}
}
property real delta: swipeView.contentX / (swipeView.contentWidth - swipeView.width + 0.001) // ensure range is [0..1)
Row {
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
anchors.bottomMargin: Theme.cardRowIndicatorBottomMargin
spacing: Theme.cardRowIndicatorSpacing
Repeater {
model: 4
delegate: ColorizedImage {
required property int index
property bool isCurrent: Math.floor(4 * root.delta) == index
source: "page-indicator.png"
color: isCurrent ? ColorStyle.greyMedium2 : ColorStyle.greyDark1
}
}
}
}