-
Notifications
You must be signed in to change notification settings - Fork 1
/
Logo.qml
131 lines (109 loc) · 2.74 KB
/
Logo.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import QtQuick 2.7
import QtQuick.Controls 2.4
import QtQuick.Controls.Material 2.3
import QtQuick.Layouts 1.3
import Qt.labs.settings 1.0
import QtGraphicalEffects 1.0
import QtQuick.Controls.Universal 2.3
Item {
id: logo
property bool themeLight: Universal.theme == Universal.Light
height: parent.height / 4
width: height
z: 10
// anchors.fill: parent
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
property bool locked : true
state: locked ? "" : "unlocked"
onLockedChanged: glowAnim.start()
states: [
State {
name: "unlocked"
PropertyChanges {
target: logo;
height: parent / 4
}
PropertyChanges {
target: logo;
scale: .4
}
AnchorChanges {
target: logo;
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.top: undefined
anchors.horizontalCenter: undefined
}
}
]
transitions: Transition {
// smoothly reanchor myRect and move into new position
AnchorAnimation {
duration: 2000
easing.type: Easing.OutQuart
}
}
scale: 1
Behavior on scale {
NumberAnimation {
duration: 2000
easing.type: Easing.InOutQuad
}
}
Image {
id: bg
source: themeLight ? "": "images/icons/logo.png"
fillMode: Image.PreserveAspectFit
anchors.fill: parent
}
Glow {
id: glow
anchors.fill: bg
source: bg
color: Universal.foreground
radius: 10
Behavior on radius {
NumberAnimation {
duration: 2000
easing {
type: Easing.OutQuart
overshoot: 50
}
}
}
// contrast: 0.9
}
MouseArea {
anchors.fill: parent
onClicked: {
// glow.radius = 50;
// scale = 1;
// logo.locked = !logo.locked;
}
}
SequentialAnimation {
id: glowAnim
NumberAnimation {
target: glow
property: "radius"
duration: 1000
easing.type: Easing.OutQuad
to: 100
}
NumberAnimation {
target: glow
property: "radius"
duration: 1000
easing.type: Easing.OutQuad
to: 10
}
NumberAnimation {
target: logo
property: "opacity"
duration: 1000
easing.type: Easing.OutQuad
to: 0.0
}
}
}