forked from qt-creator/qt-creator
This adds the QML source for the Qt Design Studio Welcome page. The source code was private before. Change-Id: I5dcb900ed9a17b1bc3bbcaf50f649ebeb61cc8bf Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
99 lines
2.6 KiB
QML
99 lines
2.6 KiB
QML
// Copyright (C) 2024 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
import QtQuick
|
|
import QtQuick.Templates as T
|
|
import WelcomeScreen 1.0
|
|
import StudioTheme 1.0 as StudioTheme
|
|
|
|
T.ScrollBar {
|
|
id: control
|
|
|
|
property bool show: false
|
|
property bool otherInUse: false
|
|
property bool isNeeded: control.size < 1.0
|
|
property bool inUse: control.hovered || control.pressed
|
|
property int thickness: control.inUse || control.otherInUse ? 10 : 8
|
|
|
|
property bool scrollBarVisible: parent.childrenRect.height > parent.height
|
|
|
|
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
|
|
implicitContentWidth + leftPadding + rightPadding)
|
|
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
|
implicitContentHeight + topPadding + bottomPadding)
|
|
|
|
hoverEnabled: true
|
|
padding: 0
|
|
minimumSize: orientation === Qt.Horizontal ? height / width : width / height
|
|
|
|
opacity: 0.0
|
|
|
|
contentItem: Rectangle {
|
|
implicitWidth: control.thickness
|
|
implicitHeight: control.thickness
|
|
radius: width / 2
|
|
color: control.inUse ? Constants.currentScrollBarHandle
|
|
: Constants.currentScrollBarHandle_idle
|
|
}
|
|
|
|
background: Rectangle {
|
|
id: controlTrack
|
|
color: Constants.currentScrollBarTrack
|
|
opacity: control.inUse || control.otherInUse ? 0.3 : 0.0
|
|
radius: width / 2
|
|
|
|
Behavior on opacity {
|
|
PropertyAnimation {
|
|
duration: 100
|
|
easing.type: Easing.InOutQuad
|
|
}
|
|
}
|
|
}
|
|
|
|
states: [
|
|
State {
|
|
name: "show"
|
|
when: control.show
|
|
PropertyChanges {
|
|
target: control
|
|
opacity: 1.0
|
|
}
|
|
},
|
|
State {
|
|
name: "hide"
|
|
when: !control.show
|
|
PropertyChanges {
|
|
target: control
|
|
opacity: 0.0
|
|
}
|
|
}
|
|
]
|
|
|
|
transitions: Transition {
|
|
from: "show"
|
|
SequentialAnimation {
|
|
PauseAnimation { duration: 450 }
|
|
NumberAnimation {
|
|
target: control
|
|
duration: 200
|
|
property: "opacity"
|
|
to: 0.0
|
|
}
|
|
}
|
|
}
|
|
|
|
Behavior on thickness {
|
|
PropertyAnimation {
|
|
duration: 100
|
|
easing.type: Easing.InOutQuad
|
|
}
|
|
}
|
|
|
|
Behavior on x {
|
|
PropertyAnimation {
|
|
duration: 100
|
|
easing.type: Easing.InOutQuad
|
|
}
|
|
}
|
|
}
|