2023-04-09 13:35:35 +08:00
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
2023-03-20 14:53:56 +08:00
|
|
|
|
import QtQuick
|
|
|
|
|
import QtQuick.Layouts
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
id: splash
|
|
|
|
|
color: "#EEEEEE"
|
|
|
|
|
z: 100
|
|
|
|
|
|
|
|
|
|
property bool loading: true
|
|
|
|
|
property alias animationRunning: animation.running
|
|
|
|
|
|
|
|
|
|
signal disappearing
|
|
|
|
|
signal disappeared
|
|
|
|
|
|
|
|
|
|
Grid {
|
|
|
|
|
id: main
|
|
|
|
|
anchors.centerIn: parent
|
|
|
|
|
rows: splash.width >= splash.height ? 1 : 2
|
|
|
|
|
columns: splash.width >= splash.height ? 2 : 1
|
|
|
|
|
horizontalItemAlignment: Grid.AlignHCenter
|
|
|
|
|
verticalItemAlignment: Grid.AlignVCenter
|
|
|
|
|
spacing: 25
|
|
|
|
|
|
|
|
|
|
Image {
|
|
|
|
|
id: logo
|
|
|
|
|
source: AppPath + "/image/icon.png"
|
|
|
|
|
width: 96
|
|
|
|
|
height: width
|
|
|
|
|
opacity: 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Column {
|
|
|
|
|
spacing: 6
|
|
|
|
|
|
|
|
|
|
Text {
|
|
|
|
|
id: fktext
|
|
|
|
|
text: "FreeKill"
|
|
|
|
|
// color: "#ffffff"
|
|
|
|
|
font.pixelSize: 40
|
|
|
|
|
opacity: 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
|
width: parent.width
|
|
|
|
|
spacing: 8
|
|
|
|
|
|
|
|
|
|
Text {
|
|
|
|
|
id: free
|
|
|
|
|
text: qsTr("Free")
|
|
|
|
|
// color: "#ffffff"
|
|
|
|
|
font.pixelSize: 20
|
|
|
|
|
opacity: 0
|
|
|
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Text {
|
|
|
|
|
id: open
|
|
|
|
|
text: qsTr("Open")
|
|
|
|
|
// color: "#ffffff"
|
|
|
|
|
font.pixelSize: 20
|
|
|
|
|
opacity: 0
|
|
|
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Text {
|
|
|
|
|
id: flexible
|
|
|
|
|
text: qsTr("Flexible")
|
|
|
|
|
// color: "#ffffff"
|
|
|
|
|
font.pixelSize: 20
|
|
|
|
|
opacity: 0
|
|
|
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Text {
|
|
|
|
|
id: text
|
|
|
|
|
text: qsTr("Press Any Key...")
|
|
|
|
|
// color: "#ffffff"
|
|
|
|
|
opacity: 0
|
|
|
|
|
font.pointSize: 15
|
|
|
|
|
horizontalAlignment: Text.AlignHCenter
|
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
|
y: (main.y + main.height + parent.height - height) / 2
|
|
|
|
|
SequentialAnimation on opacity {
|
|
|
|
|
id: textAni
|
|
|
|
|
running: false
|
|
|
|
|
loops: Animation.Infinite
|
|
|
|
|
NumberAnimation { from: 0; to: 1; duration: 1600; easing.type: Easing.InOutQuad; }
|
|
|
|
|
NumberAnimation { from: 1; to: 0; duration: 1600; easing.type: Easing.InOutQuad; }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SequentialAnimation {
|
|
|
|
|
id: animation
|
|
|
|
|
running: true
|
|
|
|
|
|
|
|
|
|
PauseAnimation {
|
|
|
|
|
duration: 400
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ParallelAnimation {
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
target: fktext
|
|
|
|
|
property: "opacity"
|
|
|
|
|
duration: 500
|
|
|
|
|
easing.type: Easing.InOutQuad
|
|
|
|
|
to: 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
target: logo
|
|
|
|
|
property: "opacity"
|
|
|
|
|
duration: 500
|
|
|
|
|
easing.type: Easing.InOutQuad
|
|
|
|
|
to: 1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
target: free
|
|
|
|
|
property: "opacity"
|
|
|
|
|
duration: 400
|
|
|
|
|
easing.type: Easing.InOutQuad
|
|
|
|
|
to: 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
target: open
|
|
|
|
|
property: "opacity"
|
|
|
|
|
duration: 400
|
|
|
|
|
easing.type: Easing.InOutQuad
|
|
|
|
|
to: 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
target: flexible
|
|
|
|
|
property: "opacity"
|
|
|
|
|
duration: 400
|
|
|
|
|
easing.type: Easing.InOutQuad
|
|
|
|
|
to: 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ScriptAction { script: textAni.start(); }
|
|
|
|
|
|
|
|
|
|
PropertyAction { target: splash; property: "loading"; value: false }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Text {
|
2023-05-19 07:45:21 +08:00
|
|
|
|
text: "常用联机IP:175.178.66.93\nFK联机交流群:531553435"
|
2023-03-20 14:53:56 +08:00
|
|
|
|
font.pixelSize: 20
|
|
|
|
|
anchors.bottom: parent.bottom
|
2023-05-19 07:45:21 +08:00
|
|
|
|
anchors.bottomMargin: 20
|
2023-03-20 14:53:56 +08:00
|
|
|
|
anchors.right: parent.right
|
2023-05-19 07:45:21 +08:00
|
|
|
|
anchors.rightMargin: 20
|
|
|
|
|
horizontalAlignment: Text.AlignRight
|
2023-03-20 14:53:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------Disappear--------------
|
|
|
|
|
Behavior on opacity {
|
|
|
|
|
SequentialAnimation {
|
|
|
|
|
NumberAnimation { duration: 1200; easing.type: Easing.InOutQuad }
|
|
|
|
|
ScriptAction { script: disappeared() }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
MouseArea {
|
|
|
|
|
acceptedButtons: Qt.AllButtons
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
onClicked: {
|
|
|
|
|
disappear();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Keys.onPressed: {
|
|
|
|
|
disappear();
|
|
|
|
|
event.accepted = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
id: logoMover
|
|
|
|
|
target: logo
|
|
|
|
|
property: "x"
|
|
|
|
|
to: -splash.width
|
|
|
|
|
duration: 1000
|
|
|
|
|
easing.type: Easing.InOutQuad
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function disappear() {
|
|
|
|
|
disappearing();
|
|
|
|
|
logoMover.start();
|
|
|
|
|
opacity = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|