summaryrefslogtreecommitdiffstats
path: root/homescreen/qml/ShortcutIcon.qml
diff options
context:
space:
mode:
Diffstat (limited to 'homescreen/qml/ShortcutIcon.qml')
-rw-r--r--homescreen/qml/ShortcutIcon.qml49
1 files changed, 41 insertions, 8 deletions
diff --git a/homescreen/qml/ShortcutIcon.qml b/homescreen/qml/ShortcutIcon.qml
index 2fb653f..1100a7c 100644
--- a/homescreen/qml/ShortcutIcon.qml
+++ b/homescreen/qml/ShortcutIcon.qml
@@ -17,6 +17,7 @@
import QtQuick 2.2
import QtQuick.Controls 2.0
+import QtGraphicalEffects 1.0
MouseArea {
id: root
@@ -24,15 +25,27 @@ MouseArea {
height: 216.8
property string name: 'Home'
property bool active: false
- Image {
+ Item {
id: icon
+ property real desaturation: 0
anchors.fill: parent
- source: './images/Shortcut/%1.svg'.arg(root.name.toLowerCase())
- }
- Image {
- anchors.fill: parent
- source: './images/Shortcut/%1_active.svg'.arg(root.name.toLowerCase())
- opacity: 1.0 - icon.opacity
+ Image {
+ id: inactiveIcon
+ anchors.fill: parent
+ source: './images/Shortcut/%1.svg'.arg(root.name.toLowerCase())
+ }
+ Image {
+ id: activeIcon
+ anchors.fill: parent
+ source: './images/Shortcut/%1_active.svg'.arg(root.name.toLowerCase())
+ opacity: 0.0
+ }
+ layer.enabled: true
+ layer.effect: Desaturate {
+ id: desaturate
+ desaturation: icon.desaturation
+ cached: true
+ }
}
Label {
id: name
@@ -48,11 +61,26 @@ MouseArea {
}
states: [
State {
- when: root.active
+ when: launcher.launching
+ PropertyChanges {
+ target: root
+ enabled: false
+ }
PropertyChanges {
target: icon
+ desaturation: 1.0
+ }
+ },
+ State {
+ when: root.active
+ PropertyChanges {
+ target: inactiveIcon
opacity: 0.0
}
+ PropertyChanges {
+ target: activeIcon
+ opacity: 1.0
+ }
}
]
@@ -60,8 +88,13 @@ MouseArea {
Transition {
NumberAnimation {
properties: 'opacity'
+ duration: 500
easing.type: Easing.OutExpo
}
+ NumberAnimation {
+ properties: 'desaturation'
+ duration: 250
+ }
}
]
}