From 514c3404213629814387949f277889c72bb3283f Mon Sep 17 00:00:00 2001 From: Andrew O'Doherty Date: Wed, 1 Nov 2017 13:25:47 +0100 Subject: iot-sensortag: Adapt demo to the screen size of a smartwatch mainSmall.qml requires a SwipeView since the smartwatch screen is too small too display all the charts. The charts have been scaled to smaller size and some alignment adjustments have been made Change-Id: I229b6150135c8a1a65bc8114f430904a15397b1e Reviewed-by: Maurice Kalinowski --- .../iot-sensortag/resources/base/BaseChart.qml | 3 +- .../iot-sensortag/resources/base/TopToolbar.qml | 6 + tradeshow/iot-sensortag/resources/base/main.qml | 8 +- .../iot-sensortag/resources/small/StyleSmall.qml | 5 + .../iot-sensortag/resources/watch/MainWatch.qml | 240 +++++++++++++++++++++ .../iot-sensortag/resources/watch/StyleWatch.qml | 64 ++++++ .../resources/watch/images/Toolbar/exit_button.png | Bin 0 -> 1262 bytes 7 files changed, 322 insertions(+), 4 deletions(-) create mode 100644 tradeshow/iot-sensortag/resources/watch/MainWatch.qml create mode 100644 tradeshow/iot-sensortag/resources/watch/StyleWatch.qml create mode 100644 tradeshow/iot-sensortag/resources/watch/images/Toolbar/exit_button.png (limited to 'tradeshow/iot-sensortag/resources') diff --git a/tradeshow/iot-sensortag/resources/base/BaseChart.qml b/tradeshow/iot-sensortag/resources/base/BaseChart.qml index 7c846a5..bc850fc 100644 --- a/tradeshow/iot-sensortag/resources/base/BaseChart.qml +++ b/tradeshow/iot-sensortag/resources/base/BaseChart.qml @@ -74,7 +74,7 @@ Item { Image { id: titleIcon - + visible: Style.uiStyle == "small" anchors.top: parent.top source: pathPrefix + "General/icon_sensor.png" } @@ -148,6 +148,7 @@ Item { axis.z: 0 angle: rightSide ? 180 : 0 } + visible: Style.uiStyle == "small" } MouseArea { diff --git a/tradeshow/iot-sensortag/resources/base/TopToolbar.qml b/tradeshow/iot-sensortag/resources/base/TopToolbar.qml index 69722b7..3c92c05 100644 --- a/tradeshow/iot-sensortag/resources/base/TopToolbar.qml +++ b/tradeshow/iot-sensortag/resources/base/TopToolbar.qml @@ -57,6 +57,9 @@ Item { height: 100 width: implicitWidth + property alias topbar: topbar + property alias date: dateLabel + SensorSettings { id: sensorList @@ -130,6 +133,7 @@ Item { } Text { + id: dateLabel property bool showAddress : false text: showAddress ? mainWindow.addresses : Qt.formatDateTime(new Date, "dddd, MMMM d, yyyy") color: "white" @@ -168,6 +172,7 @@ Item { } Text { + id: utcGmt text: "UTC/GMT" color: "white" anchors.left: timeLabel.right @@ -187,6 +192,7 @@ Item { } Image { + id: topbar anchors.bottom: parent.bottom anchors.bottomMargin: -18 source: pathPrefix + "Toolbar/topbar_all.png" diff --git a/tradeshow/iot-sensortag/resources/base/main.qml b/tradeshow/iot-sensortag/resources/base/main.qml index c756c6d..05b0f21 100644 --- a/tradeshow/iot-sensortag/resources/base/main.qml +++ b/tradeshow/iot-sensortag/resources/base/main.qml @@ -48,11 +48,13 @@ ** ****************************************************************************/ import QtQuick 2.6 +import QtQuick.Controls 1.4 import QtQuick.Window 2.0 import SensorTag.DataProvider 1.0 import SensorTag.SeriesStorage 1.0 +import Style 1.0 -Window { +ApplicationWindow { id: mainWindow property var singleSensorSource : null @@ -73,8 +75,8 @@ Window { } // Size defaults to the small display - width: 1920 - height: 1080 + width: Style.width + height: Style.height visible: true color: "black" diff --git a/tradeshow/iot-sensortag/resources/small/StyleSmall.qml b/tradeshow/iot-sensortag/resources/small/StyleSmall.qml index e4d439d..aa19262 100644 --- a/tradeshow/iot-sensortag/resources/small/StyleSmall.qml +++ b/tradeshow/iot-sensortag/resources/small/StyleSmall.qml @@ -56,4 +56,9 @@ QtObject { property int topToolbarSmallFontSize: 20 property int topToolbarLargeFontSize: 62 + + property int height: 1080 + property int width: 1920 + + property string uiStyle: "small" // "watch",... } diff --git a/tradeshow/iot-sensortag/resources/watch/MainWatch.qml b/tradeshow/iot-sensortag/resources/watch/MainWatch.qml new file mode 100644 index 0000000..801c38b --- /dev/null +++ b/tradeshow/iot-sensortag/resources/watch/MainWatch.qml @@ -0,0 +1,240 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of Qt for Device Creation. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 2.7 +import QtQuick.Layouts 1.3 +import QtQuick.Controls 2.2 +import SensorTag.DataProvider 1.0 +import "../base" + +Item { + id: main + + function startRescan(sensor) { + // ### Only do this magic when a local device is connected +// if (sensor.state === SensorTagData.NotFound) +// dataProviderPool.startScanning(); +// else if (sensor.state === SensorTagData.Scanning) +// dataProviderPool.disconnectProvider(sensor.providerId) +// else if (sensor.state !== SensorTagData.Connected) +// sensor.startServiceScan(); + } + + anchors.fill: parent + + Component.onCompleted: { + localProviderPool.startScanning(); + remoteProviderPool.startScanning(); + } + + property int titleFontSize: 22 + + SwipeView { + id: swipePane + currentIndex: 5 + anchors.left: main.left + anchors.leftMargin: 8 + anchors.top: topToolbar.bottom + anchors.bottom: main.bottom + width: main.width + height: main.height + + Item { + RotationPage { + scale: 0.35 + width: swipePane.width + height: swipePane.height + } + } + + Item { + Text { + text: qsTr("Ambient Temperature") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + TemperatureChart { + id: ambientTemp + width: swipePane.width + height: swipePane.height + onClicked: main.startRescan(sensor) + scale: 0.85 + title: "" + } + } + + Item { + Text { + text: qsTr("Object Temperature") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + ObjectTemperatureChart { + id: objectTemp + anchors.fill: parent + anchors.leftMargin: -40 + onClicked: main.startRescan(sensor) + scale: 0.8 + title: "" + } + } + + Item { + Text { + text: qsTr("Humidity") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + HumidityChart { + id: humidity + onClicked: main.startRescan(sensor) + title: "" + scale: 0.80 + anchors.fill: parent + anchors.leftMargin: -40 + anchors.topMargin: 17 + } + } + + Item { + Text { + text: qsTr("Altitude") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + AltitudeChart { + id: airPressure + width: swipePane.width + height: swipePane.height + onClicked: main.startRescan(sensor) + title: "" + scale: 0.80 + } + } + + Item { + Text { + text: qsTr("Light Intensity") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + LightChart { + id: light + height: swipePane.height + width: swipePane.width*1.1 + scale: 0.70 + onClicked: main.startRescan(sensor) + title: "" + } + } + + Item { + Text { + text: qsTr("Magnetometer") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + MagnetometerChart { + id: magnetometer + width: swipePane.width + height: swipePane.height + onClicked: main.startRescan(sensor) + title: "" + } + } + + Item { + Text { + text: qsTr("Gyroscope") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + GyroChart { + id: rotation + width: swipePane.width + height: swipePane.height + onClicked: main.startRescan(sensor) + title: "" + } + } + + Item { + Text { + text: qsTr("Accelometer") + anchors.fill: parent + color: "white" + font.pixelSize: titleFontSize + } + AccelChart { + id: accelometer + width: swipePane.width + height: swipePane.height + onClicked: main.startRescan(sensor) + title: "" + } + } + } + + TopToolbar { + id: topToolbar + anchors.top: main.top + anchors.left: main.left + anchors.right: main.right + height: 48 + topbar.visible: false + date.visible: false + } +} diff --git a/tradeshow/iot-sensortag/resources/watch/StyleWatch.qml b/tradeshow/iot-sensortag/resources/watch/StyleWatch.qml new file mode 100644 index 0000000..857b0f1 --- /dev/null +++ b/tradeshow/iot-sensortag/resources/watch/StyleWatch.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of Qt for Device Creation. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +pragma Singleton +import QtQuick 2.0 + +QtObject { + property int indicatorTitleFontSize: 22 + property int indicatorTitleSize: 20 + + property int topToolbarSmallFontSize: 10 + property int topToolbarLargeFontSize: 30 + + property int height: 320 + property int width: 320 + + property string uiStyle: "watch" +} diff --git a/tradeshow/iot-sensortag/resources/watch/images/Toolbar/exit_button.png b/tradeshow/iot-sensortag/resources/watch/images/Toolbar/exit_button.png new file mode 100644 index 0000000..06f2ebe Binary files /dev/null and b/tradeshow/iot-sensortag/resources/watch/images/Toolbar/exit_button.png differ -- cgit v1.2.3