Launch navigation@0.1 when pressing NAVIGATION button
[staging/HomeScreen.git] / HomeScreen / qml / ShortcutArea.qml
1 /*
2  * Copyright (C) 2016 The Qt Company Ltd.
3  * Copyright (C) 2016 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: 'home@0.1'
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 currentIndex: -1 // TODO: to be moved to whereever right
48     property int pid: -1
49
50     RowLayout {
51         anchors.fill: parent
52         spacing: 2
53         Repeater {
54             model: applicationModel
55             delegate: ShortcutIcon {
56                 Layout.fillWidth: true
57                 Layout.fillHeight: true
58                 name: model.name
59                 active: model.index === root.currentIndex
60                 onClicked: {
61                     root.currentIndex = active ? -1 : model.index
62                     if (0 === model.index) {
63                         appLauncherAreaLauncher.visible = true
64                         applicationArea.visible = false
65                         layoutHandler.hideAppLayer()
66                     }
67                     else {
68                         pid = launcher.launch(model.application)
69                         if (1 < pid) {
70                             applicationArea.visible = true
71                             appLauncherAreaLauncher.visible = false
72                             layoutHandler.makeMeVisible(pid)
73                             layoutHandler.showAppLayer(pid)
74                         }
75                         else {
76                             console.warn("app cannot be launched!")
77                         }
78                     }
79                 }
80             }
81         }
82     }
83 }