fix issue,call tap_shortcut carelessly
[apps/launcher.git] / launcher / qml / Launcher.qml
1 /*
2  * Copyright (C) 2016 The Qt Company Ltd.
3  * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
4  * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 import QtQuick 2.6
19 import QtQuick.Layouts 1.1
20 import QtQuick.Controls 2.0
21 import AppModel 1.0
22
23 ApplicationWindow {
24     width: container.width * container.scale
25     height: container.height * container.scale
26
27     property int pid: -1
28
29     Item {
30         id: container
31         anchors.centerIn: parent
32         width: 1080
33         height: 1488
34         scale: screenInfo.scale_factor()
35
36         Image {
37           anchors.centerIn: parent
38           source: './images/AGL_HMI_Blue_Background_Car-01.png'
39         }
40
41     GridView {
42         id: grid
43         anchors {
44           topMargin: 60; bottomMargin: 0 
45           leftMargin: 60; rightMargin: 60
46           fill: parent
47         }
48         contentHeight: 320
49         flickableDirection: Flickable.AutoFlickDirection
50         snapMode: GridView.SnapOneRow
51         visible: true
52         cellWidth: 320
53         cellHeight: 320
54         interactive: false
55
56         model: ApplicationModel { id: applicationModel }
57         delegate: IconItem {
58             width: grid.cellWidth
59             height: grid.cellHeight
60         }
61
62         MouseArea {
63             id: loc
64             anchors.fill: parent
65             property string currentId: ''
66             property int newIndex: -1
67             property int index: grid.indexAt(loc.mouseX, loc.mouseY)
68             x: 62
69             y: 264
70             onPressAndHold: currentId = applicationModel.id(newIndex = index)
71             onReleased: {
72                 if(loc.index < 0) {
73                     return
74                 }
75                 if (currentId === '') {
76                     pid = launcher.launch(applicationModel.id(loc.index))
77                     if (1 < pid) {
78                         homescreenHandler.tapShortcut(applicationModel.name(loc.index))
79                     }
80                     else {
81                         console.warn("app cannot be launched!")
82                     }
83                 } else {
84                     currentId = ''
85                 }
86             }
87             onPositionChanged: {
88                 if (loc.currentId === '') return
89                 if (index < 0) return
90                 if (index === newIndex) return
91                     applicationModel.move(newIndex, newIndex = index)
92             }
93         }
94     }
95 }
96 }