blob: 0b60d5cdbe0baabc4a03b9eb257ff50fa5234428 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/*
* Copyright (C) 2020 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Extras 1.4
Window {
id: root
width: 1000
height: 1000
color: '#00000000'
visible: true
flags: Qt.FramelessWindowHint
Component.onCompleted: {
// Center window
root.x = root.screen.virtualX + root.screen.width / 2 - root.width / 2;
root.y = root.screen.virtualY + root.screen.height / 2 - root.height / 2;
}
BodyTemplateDialog {
id: bodyTemplate
anchors.centerIn: parent
visible: false
property string title: ""
property string subtitle: ""
property string textContent: ""
property url imageContentSource: ""
}
WeatherTemplateDialog {
id: weatherTemplate
anchors.centerIn: parent
visible: false
property string title: ""
property string subtitle: ""
property string currentTemperature: ""
property url currentWeatherIconSource: ""
property string lowTemperature: ""
property url lowTemperatureArrowSource: ""
property string highTemperature: ""
property url highTemperatureArrowSource: ""
}
Connections {
target: GuiMetadata
onRenderTemplate: {
console.log("Received renderTemplate, type = " + GuiMetadata.type)
if(GuiMetadata.type == "BodyTemplate1" || GuiMetadata.type == "BodyTemplate2") {
// Normally setting the target to visible would be after changes to the
// content, but I was seeing better behavior during testing by doing it
// here. Further investigation is required, and likely hooking up
// loading indication on the Images in the template dialogs.
weatherTemplate.visible = false
bodyTemplate.visible = true
bodyTemplate.title = GuiMetadata.title
bodyTemplate.subtitle = GuiMetadata.subtitle
bodyTemplate.textContent = GuiMetadata.bodyText
if(GuiMetadata.type == "BodyTemplate1") {
bodyTemplate.imageContentSource = ""
} else {
bodyTemplate.imageContentSource = GuiMetadata.bodyImageSmallUrl
}
} else if(GuiMetadata.type == "WeatherTemplate") {
console.log("Received weather template")
bodyTemplate.visible = false
weatherTemplate.visible = true
weatherTemplate.title = GuiMetadata.title
weatherTemplate.subtitle = GuiMetadata.subtitle
weatherTemplate.currentTemperature = GuiMetadata.weatherCurrentTemperature
weatherTemplate.currentWeatherIconSource = GuiMetadata.weatherCurrentWeatherIconMediumDarkBgUrl
weatherTemplate.lowTemperature = GuiMetadata.weatherLowTemperature
weatherTemplate.lowTemperatureArrowSource = GuiMetadata.weatherLowTemperatureArrowMediumDarkBgUrl
weatherTemplate.highTemperature = GuiMetadata.weatherHighTemperature
weatherTemplate.highTemperatureArrowSource = GuiMetadata.weatherHighTemperatureArrowMediumDarkBgUrl
} else {
// Should not happen, but just in case
console.log("Received Unsupported Template?")
bodyTemplate.title = "Unsupported Template"
bodyTemplate.subtitle = ""
bodyTemplate.textContent = "The display template for this response is currently unsupported."
bodyTemplate.imageContentSource = ""
weatherTemplate.visible = false
bodyTemplate.visible = false
}
}
onClearTemplate: {
console.log("Received clearTemplate!")
bodyTemplate.clear()
weatherTemplate.clear()
hide()
}
}
// Functions
function hide() {
console.log("hiding window!")
homescreen.deactivate_app("alexa-viewer")
}
}
|