Revision control

++ // Copyright (C) 2025 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ import QtQuick
++ import QtQuick.Effects
++ import QtQuick.Controls.Basic
++
++ Item {
++ id: control
++
++ property alias text: checkBox.text
++ property alias checked: checkBox.checked
++
++ property real animatedPressed: checkBox.down ? 1.0 : 0.0
++ property real animatedChecked: checkBox.checked ? 1.0 : 0.0
++ Behavior on animatedPressed {
++ NumberAnimation {
++ duration: 200
++ easing.type: Easing.InOutQuad
++ }
++ }
++
++ x: 10 * dp
++ width: checkBox.width
++ height: checkBox.height
++ opacity: enabled ? 1.0 : 0.5
++
++ CheckBox {
++ id: checkBox
++ spacing: 10
++ indicator: Rectangle {
++ implicitWidth: 26
++ implicitHeight: 26
++ x: checkBox.leftPadding
++ y: parent.height / 2 - height / 2
++ opacity: enabled ? 1 : 0.3
++ radius: height * 0.5
++ color: Qt.lighter(mainWindow.mainColor, 0.3)
++ border.width: 1
++ border.color: Qt.lighter(mainWindow.mainColor, 0.1)
++ RectangularShadow {
++ // Inner Glow
++ anchors.fill: parent
++ anchors.margins: blur
++ radius: height * 0.4
++ blur: height * 0.2
++ color: Qt.lighter(mainWindow.mainColor, 0.4 + animatedPressed * 0.2 + animatedChecked * 0.6)
++ }
++ RectangularShadow {
++ // Glow
++ anchors.fill: parent
++ z: -1
++ radius: height * 0.4
++ blur: 20
++ opacity: 0.1 + animatedPressed * 0.4
++ color: Qt.lighter(mainWindow.mainColor, 1.2)
++ }
++ }
++
++ contentItem: Text {
++ text: checkBox.text
++ opacity: enabled ? 1.0 : 0.3
++ verticalAlignment: Text.AlignVCenter
++ leftPadding: checkBox.indicator.width + checkBox.spacing
++ color: "#e0e0e0"
++ font.pixelSize: 16 * dp
++ }
++ }
++ }