aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quickcontrols/wearable/Wearable/WeatherPage.qml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quickcontrols/wearable/Wearable/WeatherPage.qml')
-rw-r--r--examples/quickcontrols/wearable/Wearable/WeatherPage.qml330
1 files changed, 330 insertions, 0 deletions
diff --git a/examples/quickcontrols/wearable/Wearable/WeatherPage.qml b/examples/quickcontrols/wearable/Wearable/WeatherPage.qml
new file mode 100644
index 0000000000..df0b6753e6
--- /dev/null
+++ b/examples/quickcontrols/wearable/Wearable/WeatherPage.qml
@@ -0,0 +1,330 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import WearableStyle
+import "weather.js" as WeatherData
+
+Item {
+ Flickable {
+ id: flick
+ anchors.fill:parent
+ anchors.margins: 15
+ anchors.topMargin: 40 + 15
+ contentWidth: width
+ contentHeight: column.height
+
+ Column {
+ id: column
+ spacing: 10
+
+ Item {
+ width: flick.contentWidth
+ height: 100
+
+ Row {
+ id: townName
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ width: childrenRect.width
+ height: childrenRect.height
+
+ spacing: 10
+ Image {
+ id: sunIcon
+ source: (wDataCntr.weatherData
+ && wDataCntr.weatherData.weather
+ && wDataCntr.weatherData.weather[0]
+ && wDataCntr.weatherData.weather[0].icon) ?
+ UIStyle.iconPath("weather-" + WeatherData.iconSelect(wDataCntr.weatherData.weather[0].icon)) : ""
+ width: 64
+ height: width
+ sourceSize.width: width
+ sourceSize.height: height
+ }
+ Text {
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.name) ?
+ wDataCntr.weatherData.name : ""
+ anchors.verticalCenter: sunIcon.verticalCenter
+ color: UIStyle.textColor
+ font: UIStyle.h1
+ }
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: townName.bottom
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.weather
+ && wDataCntr.weatherData.weather[0]
+ && wDataCntr.weatherData.weather[0].main) ?
+ wDataCntr.weatherData.weather[0].main : ""
+ color: UIStyle.textColor
+ font: UIStyle.h3
+ }
+ }
+
+ ListItem {
+ width: flick.contentWidth
+ height: 92
+
+ Image {
+ id: thermoimage
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.leftMargin: 20
+ anchors.topMargin: 17
+ source: UIStyle.iconPath("thermometer")
+ }
+
+ Text {
+ anchors.left: thermoimage.right
+ anchors.verticalCenter: thermoimage.verticalCenter
+ anchors.leftMargin: 5
+ text: qsTr("Temperature")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+
+ Text {
+ anchors.right: parent.right
+ anchors.verticalCenter: thermoimage.verticalCenter
+ anchors.rightMargin: 20
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.main
+ && wDataCntr.weatherData.main.temp) ?
+ WeatherData.formatTemp(wDataCntr.weatherData.main.temp) : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+
+ Text {
+ id: maxtxt
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 17
+ text: qsTr("Max")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+
+ Text {
+ anchors.left: maxtxt.right
+ anchors.verticalCenter: maxtxt.verticalCenter
+ anchors.leftMargin: 10
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.main
+ && wDataCntr.weatherData.main.temp_max) ?
+ WeatherData.formatTemp(wDataCntr.weatherData.main.temp_max) : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+
+ Text {
+ id: mintxt
+ anchors.horizontalCenter: maxtxt.horizontalCenter
+ anchors.verticalCenter: maxtxt.verticalCenter
+ anchors.horizontalCenterOffset: parent.width / 2
+ text: qsTr("Min")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+
+ Text {
+ anchors.left: mintxt.right
+ anchors.verticalCenter: mintxt.verticalCenter
+ anchors.leftMargin: 10
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.main
+ && wDataCntr.weatherData.main.temp_min) ?
+ WeatherData.formatTemp(wDataCntr.weatherData.main.temp_min) : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+ }
+
+ ListItem {
+ width: flick.contentWidth
+ height: 50
+
+ Image {
+ id: sunriseIcon
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 20
+ anchors.topMargin: 17
+ source: UIStyle.iconPath("sunrise")
+ }
+
+ Text {
+ id: sunriseText
+ anchors.left: sunriseIcon.right
+ anchors.verticalCenter: sunriseIcon.verticalCenter
+ anchors.leftMargin: 5
+ text: qsTr("Sunrise")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+ Text {
+ anchors.left: sunriseText.right
+ anchors.verticalCenter: sunriseText.verticalCenter
+ anchors.leftMargin: 15
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.sys
+ && wDataCntr.weatherData.sys.sunrise) ?
+ WeatherData.getTimeHMS(wDataCntr.weatherData.sys.sunrise) : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+
+ Image {
+ id: sunsetIcon
+ anchors.right: sunsetText.left
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.rightMargin: 5
+ source: UIStyle.iconPath("sunset")
+ }
+
+ Text {
+ id: sunsetText
+ anchors.right: sunsetValue.left
+ anchors.verticalCenter: sunsetIcon.verticalCenter
+ anchors.rightMargin: 15
+ text: qsTr("Sunset")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+
+ Text {
+ id: sunsetValue
+ anchors.right: parent.right
+ anchors.verticalCenter: sunsetText.verticalCenter
+ anchors.rightMargin: 20
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.sys
+ && wDataCntr.weatherData.sys.sunset) ?
+ WeatherData.getTimeHMS(wDataCntr.weatherData.sys.sunset) : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+ }
+
+ ListItem {
+ width: flick.contentWidth
+ height: 50
+
+ Image {
+ id: windIcon
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 20
+ anchors.topMargin: 17
+ source: UIStyle.iconPath("wind")
+ }
+
+ Text {
+ id: windText
+ anchors.left: windIcon.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 5
+ text: qsTr("Wind")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+
+ Text {
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.rightMargin: 20
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.wind
+ && wDataCntr.weatherData.wind.speed) ?
+ Math.round(wDataCntr.weatherData.wind.speed * 1.61) + " km/h" : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+ }
+
+ ListItem {
+ width: flick.contentWidth
+ height: 50
+
+ Image {
+ id: humidityIcon
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 20
+ anchors.topMargin: 17
+ source: UIStyle.iconPath("drop")
+ }
+
+ Text {
+ id: humidityText
+ anchors.left: humidityIcon.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 5
+ text: qsTr("Humidity")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+
+ Text {
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.rightMargin: 20
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.main
+ && wDataCntr.weatherData.main.humidity) ?
+ wDataCntr.weatherData.main.humidity + " %" : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+ }
+
+ ListItem {
+ width: flick.contentWidth
+ height: 50
+
+ Image {
+ id: pressureIcon
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 20
+ anchors.topMargin: 17
+ source: UIStyle.iconPath("pressure")
+ }
+
+ Text {
+ id: pressureText
+ anchors.left: pressureIcon.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: 5
+ text: qsTr("HPA")
+ font: UIStyle.h4
+ color: UIStyle.textColor
+ }
+
+ Text {
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.rightMargin: 20
+ text: (wDataCntr.weatherData
+ && wDataCntr.weatherData.main
+ && wDataCntr.weatherData.main.pressure) ?
+ Math.round(wDataCntr.weatherData.main.pressure) + " hpa" : ""
+ font: UIStyle.h3
+ color: UIStyle.textColor
+ }
+ }
+ }
+ }
+
+ QtObject {
+ id: wDataCntr
+ property var weatherData
+ }
+ Component.onCompleted: {
+ WeatherData.requestWeatherData(wDataCntr)
+ }
+}