~aacid/unity8/dashSepartmentsListTweaks

« back to all changes in this revision

Viewing changes to qml/Stages/SwitchingApplicationImage.qml

  • Committer: Albert Astals
  • Date: 2014-07-30 07:41:30 UTC
  • mfrom: (1080.1.10 unity8)
  • Revision ID: albert.astals@canonical.com-20140730074130-85zm1elq0w3u2phh
Merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright 2014 Canonical Ltd.
3
 
 *
4
 
 * This program is free software; you can redistribute it and/or modify
5
 
 * it under the terms of the GNU Lesser General Public License as published by
6
 
 * the Free Software Foundation; version 3.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful,
9
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
 
 * GNU Lesser General Public License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU Lesser General Public License
14
 
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15
 
 *
16
 
 * Authors: Michael Zanetti <michael.zanetti@canonical.com>
17
 
*/
18
 
 
19
 
import QtQuick 2.0
20
 
import Ubuntu.Components 0.1
21
 
 
22
 
Rectangle {
23
 
    id: root
24
 
    implicitHeight: image.implicitHeight
25
 
    implicitWidth: image.implicitWidth
26
 
    color: "black"
27
 
 
28
 
    property var application
29
 
 
30
 
    signal switched()
31
 
 
32
 
    function switchTo(application) {
33
 
        if (root.application == application) {
34
 
            root.switched();
35
 
            return;
36
 
        }
37
 
 
38
 
        priv.newApplication = application
39
 
        root.visible = true;
40
 
        switchToAnimation.start()
41
 
    }
42
 
 
43
 
    QtObject {
44
 
        id: priv
45
 
        property var newApplication
46
 
    }
47
 
 
48
 
    Image {
49
 
        id: newImage
50
 
        anchors.bottom: parent.bottom
51
 
        width: root.width
52
 
        source: priv.newApplication ? priv.newApplication.screenshot : ""
53
 
    }
54
 
 
55
 
    Image {
56
 
        id: image
57
 
        visible: true
58
 
        source: root.application ? root.application.screenshot : ""
59
 
        width: root.width
60
 
        height: sourceSize.height
61
 
        anchors.bottom: parent.bottom
62
 
 
63
 
    }
64
 
 
65
 
    SequentialAnimation {
66
 
        id: switchToAnimation
67
 
        ParallelAnimation {
68
 
            UbuntuNumberAnimation { target: image; property: "x"; from: 0; to: root.width; duration: UbuntuAnimation.SlowDuration }
69
 
            UbuntuNumberAnimation { target: newImage; property: "scale"; from: 0.7; to: 1; duration: UbuntuAnimation.SlowDuration }
70
 
        }
71
 
        ScriptAction {
72
 
            script: {
73
 
                image.x = 0
74
 
                root.application = priv.newApplication
75
 
                root.visible = false;
76
 
                priv.newApplication = null
77
 
                root.switched();
78
 
            }
79
 
        }
80
 
    }
81
 
}