C
Qt Cluster: Rendering and Recovery from Main UI Failure
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
// This file is part of the Qt Safe Renderer module
import QtQuick
import "../functions.js" as Functions
import ClusterDemo
Item {
id: root
property bool updateGeometry: false
property bool showWire: false
property alias rpmValue: rpmGauge.rpmValue
property alias maxValue: rpmGauge.maxValue
Image {
id: bg
source: "image://etc/Gauge_RPM.png"
GaugeFiller {
id: rpmGauge
property real outerRadius: Math.min(width, height) * 0.5
anchors.fill: parent
radius: 177
fillWidth: 10
property real rpmValue: 0
value: startupAnimationStopped ? ValueSource.rpm : rpmValue
minAngle: 90
maxAngle: 270
maxValue: 8000
updateGeometry: root.updateGeometry
doNotFill: root.showWire
// Behavior on value {
// enabled: startupAnimationStopped
// PropertyAnimation { duration: 50 }
// }
}
GaugeFiller {
// Battery
anchors.fill: parent
radius: 177
fillWidth: 10
numVertices: 16
minAngle: 324
maxAngle: 288
maxValue: 100
value: ValueSource.batteryLevel
color: "#464749"
updateGeometry: root.updateGeometry
doNotFill: root.showWire
Behavior on value {
enabled: startupAnimationStopped
PropertyAnimation { duration: 100 }
}
}
GaugeFiller {
// Engine temp
anchors.fill: parent
radius: 177
fillWidth: 10
numVertices: 16
minAngle: 35
maxAngle: 72
minValue: 40
maxValue: 120
value: ValueSource.engineTemperature > 0 ? ValueSource.engineTemperature : minValue
color: "#464749"
updateGeometry: root.updateGeometry
doNotFill: root.showWire
Behavior on value {
enabled: startupAnimationStopped
PropertyAnimation { duration: 100 }
}
}
}
Text {
id: topText
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.verticalCenter
font.pixelSize: Functions.toPixels(0.3, rpmGauge.outerRadius)
color: "white"
text: ValueSource.gearString
}
Image {
id: engineLight
anchors.top: topText.bottom
anchors.topMargin: 10
anchors.left: parent.horizontalCenter
source: ValueSource.batteryLevel > 15 ? "image://etc/Icon_Battery_OFF.png"
: "image://etc/Icon_Battery_ON.png"
z: 3
}
Image {
id: batteryLight
anchors.top: topText.bottom
anchors.topMargin: 10
anchors.right: parent.horizontalCenter
source: ValueSource.engineTemperature > 100 ? "image://etc/Icon_Coolant_ON.png"
: "image://etc/Icon_Coolant_OFF.png"
z: 3
}
}