7d40276d2481eff63a0388269087ed7bbd736c86
[apps/homescreen.git] / homescreen / qml / main.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.Window 2.1
20 import QtQuick.Layouts 1.1
21 import HomeScreen 1.0
22
23 Window {
24     visible: true
25     flags: Qt.FramelessWindowHint
26     width: container.width * container.scale
27     height: container.height * container.scale
28     title: 'HomeScreen'
29
30     Image {
31         id: container
32         anchors.centerIn: parent
33         width: 1080
34         height: 1920
35         scale: screenInfo.scale_factor()
36         source: './images/AGL_HMI_Blue_Background_NoCar-01.png'
37
38         ColumnLayout {
39             anchors.fill: parent
40             spacing: 0
41             TopArea {
42                 id: topArea
43                 Layout.fillWidth: true
44                 Layout.preferredHeight: 218
45             }
46
47             Item {
48                 id: applicationArea
49                 Layout.fillWidth: true
50                 Layout.fillHeight: true
51                 Layout.preferredHeight: 1920 - 218 - 215
52
53                 visible: true
54             }
55
56             MediaArea {
57                 id: mediaArea
58                 Layout.fillWidth: true
59                 Layout.fillHeight: true
60                 Layout.preferredHeight: 215
61             }
62         }
63     }
64
65     Timer {
66         id:informationTimer
67         interval: 3000
68         running: false
69         repeat: true
70         onTriggered: {
71             bottomInformation.visible = false
72         }
73     }
74
75     Item {
76         id: bottomInformation
77         width: parent.width
78         height: 215
79         anchors.bottom: parent.bottom
80         visible: false
81         Text {
82             id: bottomText
83             anchors.centerIn: parent
84             font.pixelSize: 25
85             font.letterSpacing: 5
86             horizontalAlignment: Text.AlignHCenter
87             color: "white"
88             text: ""
89             z:1
90         }
91     }
92
93     Connections {
94         target: homescreenHandler
95         onShowInformation: {
96             bottomText.text = info
97             bottomInformation.visible = true
98             informationTimer.restart()
99         }
100     }
101
102         Timer {
103         id:notificationTimer
104         interval: 3000
105         running: false
106         repeat: true
107         onTriggered: notificationItem.visible = false
108     }
109
110     Item {
111         id: notificationItem
112         x: 0
113         y: 0
114         z: 1
115         width: 1280
116         height: 100
117         opacity: 0.8
118         visible: false
119
120         Rectangle {
121             width: parent.width
122             height: parent.height
123             anchors.fill: parent
124             color: "gray"
125             Image {
126                 id: notificationIcon
127                 width: 70
128                 height: 70
129                 anchors.left: parent.left
130                 anchors.leftMargin: 20
131                 anchors.verticalCenter: parent.verticalCenter
132                 source: ""
133             }
134
135             Text {
136                 id: notificationtext
137                 font.pixelSize: 25
138                 anchors.left: notificationIcon.right
139                 anchors.leftMargin: 5
140                 anchors.verticalCenter: parent.verticalCenter
141                 color: "white"
142                 text: qsTr("")
143             }
144         }
145     }
146
147     Connections {
148         target: homescreenHandler
149         onShowNotification: {
150             notificationIcon.source = icon_path
151             notificationtext.text = text
152             notificationItem.visible = true
153             notificationTimer.restart()
154         }
155     }
156 }