Revision control

++ // Copyright (C) 2021 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick
++
++ Item {
++ id: rootItem
++ property real showState: 1.0
++
++ default property alias content: settingsArea.children
++
++ width: settingsArea.width
++ height: settingsArea.height
++ x: parent.width - showState * width + (1 - showState) * 30
++
++ Behavior on showState {
++ NumberAnimation {
++ duration: 800
++ easing.type: Easing.InOutQuad
++ }
++ }
++
++ // Background
++ Rectangle {
++ anchors.fill: settingsArea
++ anchors.margins: -10
++ color: "#80404040"
++ border.color: "#000000"
++ border.width: 1
++ opacity: 0.8
++ MouseArea {
++ anchors.fill: parent
++ onPressed: {}
++ }
++ }
++
++ Item {
++ anchors.right: parent.left
++ anchors.rightMargin: 30
++ anchors.top: parent.top
++ width: 16 + Math.max(rootItem.width, rootItem.height) * 0.05
++ height: width
++ opacity: rootItem.showState * 0.6 + 0.4
++ visible: opacity
++ Image {
++ anchors.centerIn: parent
++ width: parent.width * 0.3
++ height: width
++ source: "images/icon_settings.png"
++ mipmap: true
++ }
++ MouseArea {
++ anchors.fill: parent
++ onClicked: {
++ settings.showSettingsView = !settings.showSettingsView; // qmllint disable unqualified
++ }
++ }
++ }
++
++ Column {
++ id: settingsArea
++ anchors.top: parent.top
++ anchors.topMargin: 20
++ anchors.right: parent.right
++ anchors.rightMargin: 20
++ }
++ }