9be3fd09ca697a4ee2f1664e1aac1a6ef865ff0d
[apps/homescreen.git] / homescreen / qml / ShortcutArea.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.Layouts 1.1
20
21 Item {
22     id: root
23     width: 785
24     height: 218
25
26
27     ListModel {
28         id: applicationModel
29         ListElement {
30             name: 'Home'
31             application: ''
32         }
33         ListElement {
34             name: 'Multimedia'
35             application: 'mediaplayer@0.1'
36         }
37         ListElement {
38             name: 'HVAC'
39             application: 'hvac@0.1'
40         }
41         ListElement {
42             name: 'Navigation'
43             application: 'navigation@0.1'
44         }
45     }
46
47     property int pid: -1
48
49     RowLayout {
50         anchors.fill: parent
51         spacing: 2
52         Repeater {
53             model: applicationModel
54             delegate: ShortcutIcon {
55                 Layout.fillWidth: true
56                 Layout.fillHeight: true
57                 name: model.name
58                 active: model.application === launcher.current
59                 onClicked: {
60                     if (0 === model.index) {
61                         appLauncherAreaLauncher.visible = true
62                         applicationArea.visible = false
63                         layoutHandler.hideAppLayer()
64                         launcher.current = ''
65                     }
66                     else {
67                         pid = launcher.launch(model.application)
68                         if (1 < pid) {
69                             applicationArea.visible = true
70                             appLauncherAreaLauncher.visible = false
71                             layoutHandler.makeMeVisible(pid)
72                             layoutHandler.showAppLayer(model.application, pid)
73                         }
74                         else {
75                             console.warn("app cannot be launched!")
76                         }
77                     }
78                 }
79             }
80         }
81     }
82 }