summaryrefslogtreecommitdiffstats
path: root/app/Main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'app/Main.qml')
-rw-r--r--app/Main.qml121
1 files changed, 121 insertions, 0 deletions
diff --git a/app/Main.qml b/app/Main.qml
new file mode 100644
index 0000000..7060b9b
--- /dev/null
+++ b/app/Main.qml
@@ -0,0 +1,121 @@
+/*
+ * 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: 1080
+ height: 1488
+ color: '#00000000'
+
+ visible: true
+ flags: Qt.FramelessWindowHint
+
+ BodyTemplateDialog {
+ id: bodyTemplate
+ anchors.centerIn: parent
+ visible: true
+
+ 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") {
+ 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
+ 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.hideWindow("alexa-viewer")
+ }
+}