First integration of new HMI design
[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 import HomeScreen 1.0
21
22 Item {
23     id: root
24     width: 785
25     height: 218
26
27     ApplicationLauncher {
28         id: launcher
29     }
30
31     LayoutHandler {
32         id: layoutHandler
33     }
34
35     ListModel {
36         id: applicationModel
37         ListElement {
38             name: 'Home'
39             application: 'webapps-rabbit@0.0'
40         }
41         ListElement {
42             name: 'Multimedia'
43             application: 'smarthome@0.1'
44         }
45         ListElement {
46             name: 'HVAC'
47             application: 'hvac'
48         }
49         ListElement {
50             name: 'Navigation'
51             application: 'navigation'
52         }
53     }
54
55     property int currentIndex: -1 // TODO: to be moved to whereever right
56     property int pid: -1
57
58     RowLayout {
59         anchors.fill: parent
60         spacing: 2
61         Repeater {
62             model: applicationModel
63             delegate: ShortcutIcon {
64                 Layout.fillWidth: true
65                 Layout.fillHeight: true
66                 name: model.name
67                 active: model.index === root.currentIndex
68                 onClicked: {
69                     root.currentIndex = active ? -1 : model.index
70                     pid = launcher.launch(model.application)
71                     layoutHandler.makeMeVisible(pid)
72                 }
73             }
74         }
75     }
76 }