Revision control

++ // Copyright (C) 2024 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++ import QtQuick
++
++ Item {
++ id: fader
++ property real value: 1
++
++ function blink(fadedOutLambda, fadedInLambda, duration) {
++ blinkAnimation.stop()
++ blinkAnimation.fadedOutLambda = fadedOutLambda
++ blinkAnimation.fadedInLambda = fadedInLambda
++ blinkAnimation.duration = duration
++ blinkAnimation.start()
++ }
++
++ SequentialAnimation {
++ id: blinkAnimation
++ property var fadedOutLambda
++ property var fadedInLambda
++ property int duration
++ NumberAnimation {
++ target: fader; property: "value";
++ easing.type: Easing.OutCubic
++ duration: blinkAnimation.duration
++ to: 0
++ }
++ ScriptAction {
++ script: {
++ if (blinkAnimation.fadedOutLambda &&
++ typeof blinkAnimation.fadedOutLambda === "function") {
++ let lambda = ()=>{} //to suppress the linter warning
++ lambda = blinkAnimation.fadedOutLambda
++ lambda();
++ blinkAnimation.fadedOutLambda = null;
++ }
++ }
++ }
++ NumberAnimation {
++ target: fader; property: "value";
++ to: 1
++ duration: blinkAnimation.duration
++ easing.type: Easing.InCubic
++
++ }
++ ScriptAction {
++ script: {
++ if (blinkAnimation.fadedInLambda &&
++ typeof blinkAnimation.fadedInLambda === "function") {
++ let lambda = ()=>{} //to suppress the linter warning
++ lambda = blinkAnimation.fadedInLambda
++ lambda();
++ blinkAnimation.fadedInLambda = null;
++ }
++ }
++ }
++ running: false
++ }
++ }