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 } }