e891c991256ba1d08c1519dc5f8a25b6284b3083
[apps/homescreen.git] / homescreen / qml / ShortcutIcon.qml
1 /*
2  * Copyright (C) 2016 The Qt Company Ltd.
3  * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 import QtQuick 2.2
19 import QtQuick.Controls 2.0
20 import QtGraphicalEffects 1.0
21
22 MouseArea {
23     id: root
24     width: 195
25     height: 216.8
26     property string name: 'Home'
27     property string icon:'./images/Shortcut/'
28     property bool active: false
29     property bool isBlank: false
30
31     Item {
32         id: icon
33         property real desaturation: 0
34         anchors.fill: parent
35         Image {
36             id: inactiveIcon
37             anchors.fill: parent
38             source: './images/Shortcut/blank.svg'
39 //            source: isBlank ? './images/Shortcut/blank.svg' : root.icon
40             property string initial: root.name.substring(0,1).toUpperCase()
41             Label {
42                 style: Text.Outline
43                 styleColor: '#00FFFF'
44                 color: 'transparent'
45                 font.pixelSize: 75
46                 anchors.centerIn: parent
47                 text: inactiveIcon.initial
48                 visible: root.isBlank
49             }
50         }
51         Image {
52             id: activeIcon
53             anchors.fill: parent
54             source: './images/Shortcut/blank_active.svg'
55 //            source: isBlank ? './images/Shortcut/blank_active.svg' : root.icon
56             property string initial: root.name.substring(0,1).toUpperCase()
57             Label {
58                 style: Text.Outline
59                 styleColor: '#00FFFF'
60                 color: 'transparent'
61                 font.pixelSize: 75
62                 anchors.centerIn: parent
63                 text: activeIcon.initial
64                 visible: root.isBlank
65             }
66             opacity: 0.0
67         }
68         Image {
69             id: sourceIcon
70             anchors.fill: parent
71             source: isBlank ? null : root.icon
72         }
73
74         layer.enabled: true
75         layer.effect: Desaturate {
76             id: desaturate
77             desaturation: icon.desaturation
78             cached: true
79         }
80     }
81
82     Label {
83         id: name
84         y: 160
85         width: root.width - 10
86         font.pixelSize: 15
87         font.letterSpacing: 5
88         // wrapMode: Text.WordWrap
89         anchors.horizontalCenter: parent.horizontalCenter
90         horizontalAlignment: Text.AlignHCenter
91         color: "white"
92         text: qsTr((root.name === "launcher" ? "home" : root.name).toUpperCase())
93     }
94
95     states: [
96         State {
97             when: root.active
98             PropertyChanges {
99                 target: inactiveIcon
100                 opacity: 0.0
101             }
102             PropertyChanges {
103                 target: activeIcon
104                 opacity: 1.0
105             }
106         }
107     ]
108 }