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 ClusterDemo import Qt.SafeRenderer import "gauges" DashboardForm { id: dashboardEntity state: "start" meterOpacity: 0.0 anchors.fill: parent property real timeScaleMultiplier: 1.5 property bool startupAnimationsFinished: false //onNeedleRotationChanged: speedometer.speedometerNeedleRotation = needleRotation / 40. property bool animationStopped: ValueSource.runningInDesigner ? true : startupAnimationsFinished speedometer.actualValue: animationStopped ? ValueSource.kph : -needleRotation / 40 tachometer.actualValue: animationStopped ? ValueSource.rpm : -needleRotation speedText.text: speedometer.actualValue.toFixed().toString() property color iconRed: "#e41e25" property color iconGreen: "#5caa15" property color iconYellow: "#face20" property color iconDark: "transparent" //hide icons turnIndicatorLeft.source: "qrc:/images/Icon_TurnLeft_OFF_small.png" turnIndicatorRight.source: "qrc:/images/Icon_TurnRight_OFF_small.png" iconCoolant.color: dashboardEntity.iconDark iconBattery.color: dashboardEntity.iconDark iconFuel.color: dashboardEntity.iconDark iconParkingBrake.color: dashboardEntity.iconDark iconLights.color: dashboardEntity.iconDark iconTyre.color: dashboardEntity.iconDark iconLamp.color: dashboardEntity.iconDark iconSeatbelt.color: dashboardEntity.iconDark safeText.visible: false speedText.visible: false // // Startup animations // SequentialAnimation { id: speedometerStartupAnimations running: true PauseAnimation { duration: 1000 } ScriptAction { script: bottompanel.visible = true } SmoothedAnimation { target: dashboardEntity property: "bottomPanelY" from: 720 to: 720 - 138 duration: 1000 * timeScaleMultiplier easing.type: Easing.InCirc } PauseAnimation { duration: 1000 } NumberAnimation { target: dashboardEntity property: "meterOpacity" from: 0 to: 1 duration: 2000 } SmoothedAnimation { target: dashboardEntity property: "needleRotation" from: 0.0 to: -8000.0 duration: 1000 * timeScaleMultiplier easing.type: Easing.InCubic } SmoothedAnimation { target: dashboardEntity property: "needleRotation" from: -8000.0 to: 0.0 duration: 1000 * timeScaleMultiplier easing.type: Easing.OutCubic } ScriptAction { script: startupAnimationsFinished = true } } function stopAll() { speedometerStartupAnimations.stop() } }