From e412b716601f96466ca786784facb558e28e92e4 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Tue, 23 May 2017 14:24:35 +0900 Subject: Add icon re-ordering support by hold and move Change-Id: Ieb6bf721932e36e4ea69cd56d59019ed8fed13ba Signed-off-by: Tasuku Suzuki --- homescreen/qml/IconItem.qml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 homescreen/qml/IconItem.qml (limited to 'homescreen/qml/IconItem.qml') diff --git a/homescreen/qml/IconItem.qml b/homescreen/qml/IconItem.qml new file mode 100644 index 0000000..59131c0 --- /dev/null +++ b/homescreen/qml/IconItem.qml @@ -0,0 +1,37 @@ +import QtQuick 2.0 + +Item { + id: main + Image { + id: item; parent: loc + x: main.x + 5; y: main.y + 5 + width: main.width - 10; height: main.height - 10; + source: './images/HMI_AppLauncher_%1_%2-01.png'.arg(model.icon).arg(loc.pressed && (loc.index === model.index || loc.currentId === model.id) ? 'Active' : 'Inactive') + antialiasing: item.state !== '' + Behavior on x { enabled: item.state !== 'active'; NumberAnimation { duration: 400; easing.type: Easing.OutCubic } } + Behavior on y { enabled: item.state !== 'active'; NumberAnimation { duration: 400; easing.type: Easing.OutCubic } } + SequentialAnimation on rotation { + NumberAnimation { to: 5; duration: 100 } + NumberAnimation { to: -5; duration: 200 } + NumberAnimation { to: 0; duration: 100 } + running: loc.currentId !== '' && item.state !== 'active' + loops: Animation.Infinite; alwaysRunToEnd: true + } + states: [ + State { + name: 'active' + when: loc.currentId == model.id + PropertyChanges { target: item; x: loc.mouseX - width/2; y: loc.mouseY - height/2; scale: 1.15; z: 10 } + }, + State { + when: loc.currentId !== '' + PropertyChanges { + target: item + scale: 0.85 + opacity: 0.75 + } + } + ] + transitions: Transition { NumberAnimation { properties: 'scale, opacity, x, y'; duration: 150; easing.type: Easing.OutCubic} } + } +} -- cgit 1.2.3-korg