From 612ea53f2b21fcedd169b6c7270268ef212e0b39 Mon Sep 17 00:00:00 2001 From: Wolfgang Beck Date: Thu, 12 Jan 2012 14:15:57 +1000 Subject: Examples for SDK Team Change-Id: I93f92a85419f0519f887ccd12a39bf61d7db7aae Sanity-Review: Qt Sanity Bot Reviewed-by: Lincoln Ramsay Reviewed-by: Wolfgang Beck --- examples/sensors/maze/Button.qml | 82 +--- examples/sensors/maze/Maze.qml | 180 ++++---- .../maze/images/button_background_disabled.png | Bin 0 -> 579 bytes .../maze/images/button_background_normal.png | Bin 0 -> 901 bytes .../maze/images/button_background_pressed.png | Bin 0 -> 334 bytes examples/sensors/maze/maze.qdoc | 57 +++ examples/sensors/qmlqtsensors/Button.qml | 75 ++++ examples/sensors/qmlqtsensors/RadioButton.qml | 87 ++++ examples/sensors/qmlqtsensors/icon.png | Bin 0 -> 2122 bytes .../images/button_background_disabled.png | Bin 0 -> 579 bytes .../images/button_background_normal.png | Bin 0 -> 901 bytes .../images/button_background_pressed.png | Bin 0 -> 334 bytes .../qmlqtsensors/images/listitem_select.png | Bin 0 -> 156 bytes .../images/radiobutton_background_checked.png | Bin 0 -> 473 bytes .../images/radiobutton_background_disabled.png | Bin 0 -> 447 bytes .../radiobutton_background_disabled_checked.png | Bin 0 -> 629 bytes .../images/radiobutton_background_unchecked.png | Bin 0 -> 568 bytes examples/sensors/qmlqtsensors/info.json | 14 + examples/sensors/qmlqtsensors/main.qml | 491 +++++++++++++++++++++ examples/sensors/qmlqtsensors/qmlqtsensors.qdoc | 68 +++ .../sensors/qmlqtsensors/qmlqtsensors.qmlproject | 18 + examples/sensors/qmlqtsensors5/Button.qml | 74 ---- examples/sensors/qmlqtsensors5/SelectionButton.qml | 77 ---- examples/sensors/qmlqtsensors5/checked.gif | Bin 246 -> 0 bytes examples/sensors/qmlqtsensors5/icon.png | Bin 2030 -> 0 bytes examples/sensors/qmlqtsensors5/info.json | 14 - examples/sensors/qmlqtsensors5/main.qml | 370 ---------------- .../sensors/qmlqtsensors5/qmlqtsensors5.qmlproject | 18 - examples/sensors/qmlqtsensors5/unchecked.gif | Bin 170 -> 0 bytes .../sensors/sensor_explorer/sensor_explorer.qdoc | 95 ++++ 30 files changed, 1016 insertions(+), 704 deletions(-) create mode 100644 examples/sensors/maze/images/button_background_disabled.png create mode 100644 examples/sensors/maze/images/button_background_normal.png create mode 100644 examples/sensors/maze/images/button_background_pressed.png create mode 100644 examples/sensors/maze/maze.qdoc create mode 100644 examples/sensors/qmlqtsensors/Button.qml create mode 100644 examples/sensors/qmlqtsensors/RadioButton.qml create mode 100755 examples/sensors/qmlqtsensors/icon.png create mode 100644 examples/sensors/qmlqtsensors/images/button_background_disabled.png create mode 100644 examples/sensors/qmlqtsensors/images/button_background_normal.png create mode 100644 examples/sensors/qmlqtsensors/images/button_background_pressed.png create mode 100644 examples/sensors/qmlqtsensors/images/listitem_select.png create mode 100644 examples/sensors/qmlqtsensors/images/radiobutton_background_checked.png create mode 100644 examples/sensors/qmlqtsensors/images/radiobutton_background_disabled.png create mode 100644 examples/sensors/qmlqtsensors/images/radiobutton_background_disabled_checked.png create mode 100644 examples/sensors/qmlqtsensors/images/radiobutton_background_unchecked.png create mode 100644 examples/sensors/qmlqtsensors/info.json create mode 100644 examples/sensors/qmlqtsensors/main.qml create mode 100644 examples/sensors/qmlqtsensors/qmlqtsensors.qdoc create mode 100644 examples/sensors/qmlqtsensors/qmlqtsensors.qmlproject delete mode 100644 examples/sensors/qmlqtsensors5/Button.qml delete mode 100644 examples/sensors/qmlqtsensors5/SelectionButton.qml delete mode 100644 examples/sensors/qmlqtsensors5/checked.gif delete mode 100755 examples/sensors/qmlqtsensors5/icon.png delete mode 100644 examples/sensors/qmlqtsensors5/info.json delete mode 100644 examples/sensors/qmlqtsensors5/main.qml delete mode 100644 examples/sensors/qmlqtsensors5/qmlqtsensors5.qmlproject delete mode 100644 examples/sensors/qmlqtsensors5/unchecked.gif create mode 100644 examples/sensors/sensor_explorer/sensor_explorer.qdoc (limited to 'examples') diff --git a/examples/sensors/maze/Button.qml b/examples/sensors/maze/Button.qml index 96ed2d7d..2ae8f772 100644 --- a/examples/sensors/maze/Button.qml +++ b/examples/sensors/maze/Button.qml @@ -45,85 +45,31 @@ import QtQuick 2.0 Item { id: button width: 30 - height: 30 - property alias buttonText: innerText.text; - property color color: "white" - property color hoverColor: "#aaaaaa" - property color pressColor: "slategray" - property int fontSize: 10 - property int borderWidth: 1 - property int borderRadius: 2 - scale: state === "Pressed" ? 0.96 : 1.0 - onEnabledChanged: state = "" + height: 100 + property alias text: innerText.text signal clicked - //define a scale animation - Behavior on scale { - NumberAnimation { - duration: 100 - easing.type: Easing.InOutQuad - } - } - - //Rectangle to draw the button - Rectangle { - id: rectangleButton + Image { + id: backgroundImage anchors.fill: parent - radius: borderRadius - color: button.enabled ? button.color : "grey" - border.width: borderWidth - border.color: "black" - - Text { - id: innerText - font.pointSize: fontSize - anchors.centerIn: parent - } + source: (button.enabled ? "images/button_background_normal.png" : "images/button_background_disabled.png") } - //change the color of the button in differen button states - states: [ - State { - name: "Hovering" - PropertyChanges { - target: rectangleButton - color: hoverColor - } - }, - State { - name: "Pressed" - PropertyChanges { - target: rectangleButton - color: pressColor - } - } - ] - - //define transmission for the states - transitions: [ - Transition { - from: ""; to: "Hovering" - ColorAnimation { duration: 200 } - }, - Transition { - from: "*"; to: "Pressed" - ColorAnimation { duration: 10 } - } - ] + Text { + id: innerText + anchors.centerIn: parent + color: "white" + font.bold: true + } //Mouse area to react on click events MouseArea { - hoverEnabled: true anchors.fill: button - onEntered: { button.state='Hovering'} - onExited: { button.state=''} onClicked: { button.clicked();} - onPressed: { button.state="Pressed" } + onPressed: { + backgroundImage.source = "images/button_background_pressed.png" } onReleased: { - if (containsMouse) - button.state="Hovering"; - else - button.state=""; + backgroundImage.source = (button.enabled ? "images/button_background_normal.png" : "images/button_background_disabled.png") } } } diff --git a/examples/sensors/maze/Maze.qml b/examples/sensors/maze/Maze.qml index c8f3051e..90c22a6f 100644 --- a/examples/sensors/maze/Maze.qml +++ b/examples/sensors/maze/Maze.qml @@ -51,27 +51,29 @@ import "lib.js" as Lib /* Layout mainWnd / -------------------------------/ +------------------------------/ gameRect +| / +|-----------------------------/ +||---------------------------| +||||M| || +||| \ || +||| mouseCtrl || +||| || +||| || +||| Labyrinth || +||| || +||| || +||| cheeseSquare || +||| \ || +||| |C||| +||---------------------------| +|----------------------------- | |----------------------------- -|||M| | -|| \ | -|| mouseCtrl | -|| | -|| | -|| Labyrinth | -|| | -|| | -|| cheeseSquare | -|| \ | -|| |C|| +|| || | |----------------------------- -| -|---------- -------------- -|| | | | -|---------- -------------- -| \ \ -| \ timePlayingLabel +| \ \ +| \ timePlayingLabel | newGameButton ------------------------------ @@ -80,85 +82,95 @@ import "lib.js" as Lib Rectangle { id: mainWnd x: 0 - y: 30 + y: 0 width: 320 - height: 440 - color: "white" + height: 480 + color: "#ececec" property Mouse mouseCtrl; property LabyrinthSquare cheeseSquare; property Congratulation congratulation; - //timer for starting the labyrinth game - Timer { - id: startTimer - interval: 50; running: true; repeat: false - onTriggered: { + Rectangle { + id: gameRect + x: (mainWnd.width - width) / 2 + y: 25 + width: Lib.dimension * Lib.cellDimension + height: Lib.dimension * Lib.cellDimension + color: "transparent" + border.width: 2 - //reset game time - timePlayingLabel.text = "--"; - Lib.sec = 0.0; - Lib.createLabyrinth(); + //timer for starting the labyrinth game + Timer { + id: startTimer + interval: 50; running: true; repeat: false + onTriggered: { - //create labyrinth elements (only at the first time) - var needloadcomponent = false; - if (Lib.objectArray === null){ - needloadcomponent = true; - Lib.objectArray = new Array(Lib.dimension * Lib.dimension); - } - var idx = 0; - for (var y = 0; y < Lib.dimension; y++ ){ - for (var x = 0; x < Lib.dimension; x++ ){ - var component = null; + //reset game time + timePlayingLabel.text = "--"; + Lib.sec = 0.0; + Lib.createLabyrinth(); - //create labyrinth components (only at the first time) - if (needloadcomponent){ - component = Qt.createComponent("LabyrinthSquare.qml"); - if (component.status == Component.Ready) { - var square = component.createObject(parent); - square.x = x * square.width; - square.y = y * square.height; - square.val = Lib.labyrinth[x][y]; - square.updateImage(); - Lib.objectArray[idx] = square; - if (x == (Lib.dimension - 1) && y == (Lib.dimension - 1)){ - cheeseSquare = square; - var component1 = Qt.createComponent("Congratulation.qml"); - if (component1.status == Component.Ready) { - congratulation = component1.createObject(parent); - congratulation.visible = false; + //create labyrinth elements (only at the first time) + var needloadcomponent = false; + if (Lib.objectArray === null){ + needloadcomponent = true; + Lib.objectArray = new Array(Lib.dimension * Lib.dimension); + } + var idx = 0; + for (var y = 0; y < Lib.dimension; y++ ){ + for (var x = 0; x < Lib.dimension; x++ ){ + var component = null; + + //create labyrinth components (only at the first time) + if (needloadcomponent){ + component = Qt.createComponent("LabyrinthSquare.qml"); + if (component.status == Component.Ready) { + var square = component.createObject(parent); + square.x = x * square.width; + square.y = y * square.height; + square.val = Lib.labyrinth[x][y]; + square.updateImage(); + Lib.objectArray[idx] = square; + if (x == (Lib.dimension - 1) && y == (Lib.dimension - 1)){ + cheeseSquare = square; + var component1 = Qt.createComponent("Congratulation.qml"); + if (component1.status == Component.Ready) { + congratulation = component1.createObject(parent); + congratulation.visible = false; + } } } } - } - else{ - Lib.objectArray[idx].val = Lib.labyrinth[x][y]; - Lib.objectArray[idx].updateImage(); - if (x == (Lib.dimension - 1) && y == (Lib.dimension - 1)){ - cheeseSquare = Lib.objectArray[idx]; - congratulation.visible = false; + else{ + Lib.objectArray[idx].val = Lib.labyrinth[x][y]; + Lib.objectArray[idx].updateImage(); + if (x == (Lib.dimension - 1) && y == (Lib.dimension - 1)){ + cheeseSquare = Lib.objectArray[idx]; + congratulation.visible = false; + } } + idx++; } - idx++; } - } - //Lib.printLab(); //this is for debug. Labyrinth will be printed out in the console + //Lib.printLab(); //this is for debug. Labyrinth will be printed out in the console - //Create the mouse control (only at the first time) - if (mouseCtrl === null){ - var component = Qt.createComponent("Mouse.qml"); - if (component.status == Component.Ready) { - mouseCtrl = component.createObject(parent); + //Create the mouse control (only at the first time) + if (mouseCtrl === null){ + var component = Qt.createComponent("Mouse.qml"); + if (component.status == Component.Ready) { + mouseCtrl = component.createObject(parent); + } } - } - mouseCtrl.x = 0; - mouseCtrl.y = 0; - newGameButton.enabled = true; + mouseCtrl.x = 0; + mouseCtrl.y = 0; + newGameButton.enabled = true; - //Start the Tilt reader timer - tiltTimer.running = true; - tiltSensor.calibrate(); + //Start the Tilt reader timer + tiltTimer.running = true; + tiltSensor.calibrate(); + } } } @@ -263,11 +275,12 @@ Rectangle { //Button to start a new Game Button{ id: newGameButton - x: 0 - y: mainWnd.x + (Lib.dimension * Lib.cellDimension) + 10 + anchors.left: gameRect.left + anchors.top: gameRect.bottom + anchors.topMargin: 5 height: 30 width: 100 - buttonText: "new game" + text: "new game" enabled: false; onClicked: { newGameButton.enabled = false; @@ -278,8 +291,9 @@ Rectangle { //Label to print out the game time Text{ id: timePlayingLabel - x: newGameButton.x + newGameButton.width + 20 - y: newGameButton.y + 10 + anchors.right: gameRect.right + anchors.top: gameRect.bottom + anchors.topMargin: 5 } } diff --git a/examples/sensors/maze/images/button_background_disabled.png b/examples/sensors/maze/images/button_background_disabled.png new file mode 100644 index 00000000..62a00b9a Binary files /dev/null and b/examples/sensors/maze/images/button_background_disabled.png differ diff --git a/examples/sensors/maze/images/button_background_normal.png b/examples/sensors/maze/images/button_background_normal.png new file mode 100644 index 00000000..1fecad5b Binary files /dev/null and b/examples/sensors/maze/images/button_background_normal.png differ diff --git a/examples/sensors/maze/images/button_background_pressed.png b/examples/sensors/maze/images/button_background_pressed.png new file mode 100644 index 00000000..149529e1 Binary files /dev/null and b/examples/sensors/maze/images/button_background_pressed.png differ diff --git a/examples/sensors/maze/maze.qdoc b/examples/sensors/maze/maze.qdoc new file mode 100644 index 00000000..f24222ad --- /dev/null +++ b/examples/sensors/maze/maze.qdoc @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms +** and conditions contained in a signed written agreement between you +** and Nokia. +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example sensors/maze + \title Maze example + \ingroup qtsensors-examples + \brief The Maze example demonstrates the TiltSensor QML element. + \image maze.jpg + +\section1 Overview + To write a QML application that will use the TiltSensor QML sensors element you need to do the following steps: + + Import the QtSensors 5.x declarative plugin: + +\snippet ../examples/sensors/maze/Maze.qml 0 + + Add the Sensor QML elements into your qml file. + + In this example we use the TiltSensor with values based in degrees and an accuracy of 5 degree: + +\snippet ../examples/sensors/maze/Maze.qml 1 + + Starting the sensor can be done by setting the 'enabled' property to true: + +\snippet ../examples/sensors/maze/Maze.qml 2 + + To determine the walk direction of the mouse we use the following if -else statements: + +\snippet ../examples/sensors/maze/Maze.qml 3 + +*/ + diff --git a/examples/sensors/qmlqtsensors/Button.qml b/examples/sensors/qmlqtsensors/Button.qml new file mode 100644 index 00000000..ce8feb3f --- /dev/null +++ b/examples/sensors/qmlqtsensors/Button.qml @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtSensors module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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 Nokia Corporation and its Subsidiary(-ies) 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 the declarative plugins +import QtQuick 2.0 + +//Implementation of the Button control. +Item { + id: button + width: 30 + height: 100 + property alias text: innerText.text + signal clicked + + Image { + id: backgroundImage + anchors.fill: parent + source: (button.enabled ? "images/button_background_normal.png" : "images/button_background_disabled.png") + } + + Text { + id: innerText + anchors.centerIn: parent + color: "white" + font.bold: true + } + + //Mouse area to react on click events + MouseArea { + anchors.fill: button + onClicked: { button.clicked();} + onPressed: { + backgroundImage.source = "images/button_background_pressed.png" } + onReleased: { + backgroundImage.source = (button.enabled ? "images/button_background_normal.png" : "images/button_background_disabled.png") + } + } +} diff --git a/examples/sensors/qmlqtsensors/RadioButton.qml b/examples/sensors/qmlqtsensors/RadioButton.qml new file mode 100644 index 00000000..d7ed8747 --- /dev/null +++ b/examples/sensors/qmlqtsensors/RadioButton.qml @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtSensors module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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 Nokia Corporation and its Subsidiary(-ies) 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.0 + +Rectangle { + id: button + width: 100 + height: 30 + property alias text: innerText.text + property bool checked + signal clicked + color: "transparent" + + Image{ + id: image + width: button.height + height: button.height + anchors.right: button.right + source: (button.checked == true ? (button.enabled ? + "images/radiobutton_background_checked.png" : "images/radiobutton_background_disabled_checked.png") : + (button.enabled ? + "images/radiobutton_background_unchecked.png" : "images/radiobutton_background_disabled.png")) + } + + Text{ + id: innerText + anchors.fill: parent + enabled: button.enabled + color: "black" + verticalAlignment: Text.AlignVCenter + + onEnabledChanged: { + (enabled ? innerText.color = "black" : innerText.color = "gray"); + } + } + + MouseArea{ + anchors.fill: button + onClicked: { + setCheck(true); + button.clicked(); + } + } + + function setCheck(val) + { + checked = val; + } +} diff --git a/examples/sensors/qmlqtsensors/icon.png b/examples/sensors/qmlqtsensors/icon.png new file mode 100755 index 00000000..d3243c5b Binary files /dev/null and b/examples/sensors/qmlqtsensors/icon.png differ diff --git a/examples/sensors/qmlqtsensors/images/button_background_disabled.png b/examples/sensors/qmlqtsensors/images/button_background_disabled.png new file mode 100644 index 00000000..62a00b9a Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/button_background_disabled.png differ diff --git a/examples/sensors/qmlqtsensors/images/button_background_normal.png b/examples/sensors/qmlqtsensors/images/button_background_normal.png new file mode 100644 index 00000000..1fecad5b Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/button_background_normal.png differ diff --git a/examples/sensors/qmlqtsensors/images/button_background_pressed.png b/examples/sensors/qmlqtsensors/images/button_background_pressed.png new file mode 100644 index 00000000..149529e1 Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/button_background_pressed.png differ diff --git a/examples/sensors/qmlqtsensors/images/listitem_select.png b/examples/sensors/qmlqtsensors/images/listitem_select.png new file mode 100644 index 00000000..def234f1 Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/listitem_select.png differ diff --git a/examples/sensors/qmlqtsensors/images/radiobutton_background_checked.png b/examples/sensors/qmlqtsensors/images/radiobutton_background_checked.png new file mode 100644 index 00000000..a5c7ef31 Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/radiobutton_background_checked.png differ diff --git a/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled.png b/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled.png new file mode 100644 index 00000000..2fce913a Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled.png differ diff --git a/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled_checked.png b/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled_checked.png new file mode 100644 index 00000000..46b56378 Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled_checked.png differ diff --git a/examples/sensors/qmlqtsensors/images/radiobutton_background_unchecked.png b/examples/sensors/qmlqtsensors/images/radiobutton_background_unchecked.png new file mode 100644 index 00000000..b09b5d9f Binary files /dev/null and b/examples/sensors/qmlqtsensors/images/radiobutton_background_unchecked.png differ diff --git a/examples/sensors/qmlqtsensors/info.json b/examples/sensors/qmlqtsensors/info.json new file mode 100644 index 00000000..797dd6f0 --- /dev/null +++ b/examples/sensors/qmlqtsensors/info.json @@ -0,0 +1,14 @@ +{ + "info-version": "1.0", + "dict": { + "Category": "application", + "Runtime": "qml", + "DisplayName": "QtSensors", + "Subcategory": "utility", + "MainQML": "main.qml", + "Version": "1.0", + "Identifier": "com.nokia.mt.qmlqtsensors.demo", + "Summary": "QML QtSensors demo", + "Author": "Qt" + } +} diff --git a/examples/sensors/qmlqtsensors/main.qml b/examples/sensors/qmlqtsensors/main.qml new file mode 100644 index 00000000..44481b6e --- /dev/null +++ b/examples/sensors/qmlqtsensors/main.qml @@ -0,0 +1,491 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtSensors module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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 Nokia Corporation and its Subsidiary(-ies) 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 the declarative plugins +import QtQuick 2.0 + +//! [0] +import QtSensors 5.0 +//! [0] + +/* Layout + mainWnd + / +--------------------------------------------------------------------------------- +|-------------------------------------------------------------------------------- +|| labelTitle | +|-------------------------------------------------------------------------------- +|-------------------------------------------------------------------------------- <---- tiltLine +|-------------------------------------------------------------------------------- +|| labelTilt | +|-------------------------------------------------------------------------------- +| / accuracyRect / speedRect +|-------------------------------------------||----------------------------------| +|| Accuracy <----- textAccuracy || Speed <-----textSpeed | +|| @ 0 Degree <- selButton0DegreeAccuracy || @ Slow <- selButtonSlowSpeed | +|| O 1 Degree <- selButton1DegreeAccuracy || O Medium <- selButtonMediumSpeed | +|| O 5 Degree <- selButton5DegreeAccuracy || O Fast <- selButtonFastSpeed | +|------------------------------------------ ||----------------------------------| +| ----------- +| |Calibrate| <------------------ calibrate +| ----------- +| --------- +| |Degree | <-------------------- useRadian X Rotation: 0 <------------------ xrottext +| --------- +| --------- +| |Start | <-------------------- tiltStart Y Rotation: 0 <------------------ yrottext +| --------- +|-------------------------------------------------------------------------------- <---- ambientlightLine +|-------------------------------------------------------------------------------- +|| labelAmbientLight | +|-------------------------------------------------------------------------------- +| --------- +| |Start | <-------------------- ablStart Ambient light: - <--------------- abltext +| --------- +|-------------------------------------------------------------------------------- <---- proximityLine +|-------------------------------------------------------------------------------- +|| labelProximityLight | +|-------------------------------------------------------------------------------- +| --------- +| |Start | <-------------------- proxiStart Proximity: - <--------------- proxitext +| --------- +------------------------------------------------------------------------------ + +*/ + +Rectangle { + id: mainWnd + x: 0 + y: 0 + width: 320 + height: 480 + color: "#ececec" + + Text { + id: labelTitle + anchors.top: mainWnd.top + anchors.topMargin: 25 + anchors.left: mainWnd.left + anchors.right: mainWnd.right + + horizontalAlignment: Text.AlignHCenter + font.pixelSize: 30 + font.bold: true + text: "QML QtSensors" + } + + //Tile region + + Rectangle { + id: tiltLine + anchors.top: labelTitle.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.leftMargin: 5 + anchors.right: mainWnd.right + anchors.rightMargin: 5 + border.width: 1 + height: 1 + border.color: "#888888" + } + + Text { + id: labelTilt + anchors.top: tiltLine.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.right: mainWnd.right + + horizontalAlignment: Text.AlignHCenter + font.bold: true + text: "TiltSensor" + } + +//! [1] + TiltSensor { + id: tilt + unit: TiltSensor.Degrees + enabled: false + accuracy: 1.0 + } +//! [1] + + Rectangle{ + id: accuracyRect + anchors.top: labelTilt.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.leftMargin: 5 + anchors.right: mainWnd.right + anchors.rightMargin: mainWnd.width / 2 + height: 110 + color: "transparent" + + Text{ + id: textAccuracy + anchors.top: accuracyRect.top + anchors.left: accuracyRect.left + text: "Accuracy" + font.bold: true + } + + RadioButton{ + id: selButton0DegreeAccuracy + anchors.top: textAccuracy.bottom + anchors.left: accuracyRect.left + anchors.right: accuracyRect.right + anchors.rightMargin: 10 + checked: true + text: "0 Degree" + + onClicked:{ + selButton1DegreeAccuracy.setCheck(false); + selButton5DegreeAccuracy.setCheck(false); + tilt.accuracy = 0.0; + } + } + + RadioButton{ + id: selButton1DegreeAccuracy + anchors.top: selButton0DegreeAccuracy.bottom + anchors.left: accuracyRect.left + anchors.right: accuracyRect.right + anchors.rightMargin: 10 + checked: false + text: "1 Degree" + + onClicked:{ + selButton0DegreeAccuracy.setCheck(false); + selButton5DegreeAccuracy.setCheck(false); + tilt.accuracy = (tilt.unit == TiltSensor.Degrees ? 1.0 : (3.14 / 180.0)); + } + } + + RadioButton{ + id: selButton5DegreeAccuracy + anchors.top: selButton1DegreeAccuracy.bottom + anchors.left: accuracyRect.left + anchors.right: accuracyRect.right + anchors.rightMargin: 10 + checked: false + text: "5 Degree" + + onClicked:{ + selButton0DegreeAccuracy.setCheck(false); + selButton1DegreeAccuracy.setCheck(false); + tilt.accuracy = (tilt.unit == TiltSensor.Degrees ? 5.0 : (5.0 * 3.14 / 180.0)); + } + } + } + + Rectangle{ + id: speedRect + anchors.top: labelTilt.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.leftMargin: mainWnd.width / 2 + anchors.right: mainWnd.right + anchors.rightMargin: 5 + height: 110 + color: "transparent" + + Text{ + id: textSpeed + anchors.top: speedRect.top + anchors.left: speedRect.left + text: "Speed" + font.bold: true + } + + RadioButton{ + id: selButtonSlowSpeed + anchors.top: textSpeed.bottom + anchors.left: speedRect.left + anchors.right: speedRect.right + anchors.rightMargin: 10 + checked: true + text: "Slow" + + onClicked:{ + selButtonMediumSpeed.setCheck(false); + selButtonFastSpeed.setCheck(false); + tilt.speed = TiltSensor.Slow; + } + } + + + RadioButton{ + id: selButtonMediumSpeed + anchors.top: selButtonSlowSpeed.bottom + anchors.left: speedRect.left + anchors.right: speedRect.right + anchors.rightMargin: 10 + checked: false + text: "Medium" + + onClicked:{ + selButtonSlowSpeed.setCheck(false); + selButtonFastSpeed.setCheck(false); + tilt.speed = TiltSensor.Medium; + } + } + + + RadioButton{ + id: selButtonFastSpeed + anchors.top: selButtonMediumSpeed.bottom + anchors.left: speedRect.left + anchors.right: speedRect.right + anchors.rightMargin: 10 + checked: false + text: "Fast" + + onClicked:{ + selButtonSlowSpeed.setCheck(false); + selButtonMediumSpeed.setCheck(false); + tilt.speed = TiltSensor.Fast; + } + } + } + + + Button{ + id: calibrate + anchors.left: mainWnd.left + anchors.leftMargin: 5 + anchors.top: accuracyRect.bottom + height: 30 + width: 80 + text: "Calibrate" + + onClicked:{ + tilt.calibrate(); + } + } + + Button{ + id: useRadian + anchors.top: calibrate.bottom + anchors.left: mainWnd.left + anchors.leftMargin: 5 + height: 30 + width: 80 + text: (tilt !== null ? tilt.unit === TiltSensor.Radians ? "Degree" : "Radians" : "Degree") + + onClicked:{ + tilt.unit = (useRadian.text === "Radians" ? TiltSensor.Radians : TiltSensor.Degrees); + } + } + + Button{ + id: tiltStart + anchors.top: useRadian.bottom + anchors.left: mainWnd.left + anchors.leftMargin: 5 + height: 30 + width: 80 + text: tilt.enabled ? "Stop" : "Start" + + onClicked:{ +//! [2] + tilt.enabled = (tiltStart.text === "Start" ? true: false); +//! [2] + } + } + + Text { + id: xrottext + anchors.right: mainWnd.right + anchors.rightMargin: 5 + anchors.left: useRadian.right + anchors.leftMargin: 15 + anchors.top: useRadian.top + anchors.bottom: useRadian.bottom + verticalAlignment: Text.AlignVCenter +//! [3] + text: "X Rotation: " + tilt.xRotation + (tilt.unit === TiltSensor.Radians ? " rad" : "°") +//! [3] + } + + Text { + id: yrottext + anchors.right: mainWnd.right + anchors.rightMargin: 5 + anchors.left: tiltStart.right + anchors.leftMargin: 15 + anchors.top: tiltStart.top + anchors.bottom: tiltStart.bottom + verticalAlignment: Text.AlignVCenter +//! [4] + text: "Y Rotation: " + tilt.yRotation + (tilt.unit === TiltSensor.Radians ? " rad" : "°") +//! [4] + } + + //Ambient Light region + + Rectangle { + id: ambientlightLine + anchors.top: tiltStart.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.leftMargin: 5 + anchors.right: mainWnd.right + anchors.rightMargin: 5 + border.width: 1 + height: 1 + border.color: "#888888" + } + + Text { + id: labelAmbientLight + anchors.top: ambientlightLine.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.right: mainWnd.right + + horizontalAlignment: Text.AlignHCenter + font.bold: true + text: "AmbientLightSensor" + } + + AmbientLightSensor { + id: ambientlight + enabled: false +//! [5] + onLightLevelChanged:{ + if (ambientlight.lightLevel == AmbientLightSensor.Unknown) + ambientlighttext.text = "Ambient light: Unknown"; + else if (ambientlight.lightLevel == AmbientLightSensor.Dark) + ambientlighttext.text = "Ambient light: Dark"; + else if (ambientlight.lightLevel == AmbientLightSensor.Twilight) + ambientlighttext.text = "Ambient light: Twilight"; + else if (ambientlight.lightLevel == AmbientLightSensor.Light) + ambientlighttext.text = "Ambient light: Light"; + else if (ambientlight.lightLevel == AmbientLightSensor.Bright) + ambientlighttext.text = "Ambient light: Bright"; + else if (ambientlight.lightLevel == AmbientLightSensor.Sunny) + ambientlighttext.text = "Ambient light: Sunny"; + } +//! [5] + } + + Button{ + id: ambientlightStart + anchors.top: labelAmbientLight.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.leftMargin: 5 + height: 30 + width: 80 + text: ambientlight.enabled ? "Stop" : "Start" + + onClicked:{ + ambientlight.enabled = (ambientlightStart.text === "Start" ? true: false); + } + } + + Text { + id: ambientlighttext + anchors.left: ambientlightStart.right + anchors.leftMargin: 15 + anchors.top: ambientlightStart.top + anchors.bottom: ambientlightStart.bottom + verticalAlignment: Text.AlignVCenter + text: "Ambient light: -" + } + + //Proximity region + + Rectangle { + id: proximityLine + anchors.top: ambientlightStart.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.leftMargin: 5 + anchors.right: mainWnd.right + anchors.rightMargin: 5 + border.width: 1 + height: 1 + border.color: "#888888" + } + + Text { + id: labelProximityLight + anchors.top: proximityLine.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.right: mainWnd.right + horizontalAlignment: Text.AlignHCenter + font.bold: true + text: "ProximitySensor" + } + + ProximitySensor { + id: proxi + enabled: false + } + + Button{ + id: proxiStart + anchors.top: labelProximityLight.bottom + anchors.topMargin: 5 + anchors.left: mainWnd.left + anchors.leftMargin: 5 + height: 30 + width: 80 + text: proxi.enabled ? "Stop" : "Start" + + onClicked:{ + proxi.enabled = (proxiStart.text === "Start" ? true: false); + } + } + + Text { + id: proxitext + anchors.left: proxiStart.right + anchors.leftMargin: 15 + anchors.top: proxiStart.top + anchors.bottom: proxiStart.bottom + verticalAlignment: Text.AlignVCenter +//! [6] + text: "Proximity: " + (proxi.near ? "near" : "far") +//! [6] + } +} diff --git a/examples/sensors/qmlqtsensors/qmlqtsensors.qdoc b/examples/sensors/qmlqtsensors/qmlqtsensors.qdoc new file mode 100644 index 00000000..37318b82 --- /dev/null +++ b/examples/sensors/qmlqtsensors/qmlqtsensors.qdoc @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms +** and conditions contained in a signed written agreement between you +** and Nokia. +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example sensors/qmlqtsensors + \title QML QtSensors example + \ingroup qtsensors-examples + \brief The QML QtSensors example demonstrates the QML sensors elements in the QtSensors 5 import. + \image qmlqtsensors.jpg + +\section1 Overview + To write a QML application that will use the QML sensors elements in the QtSensors 5 import you need to to the following steps: + + Import the QtSensors 5.x declarative plugin: + +\snippet ../examples/sensors/qmlqtsensors/main.qml 0 + + Add the Sensor QML elements into your qml file. + + In this example we use the TiltSensor: + +\snippet ../examples/sensors/qmlqtsensors/main.qml 1 + + The Tilt-, AmbientLight- and the Proximity QML element sensor have the 'enabled' property in common. + To start or stop the sensor set this property to true or false. + +\snippet ../examples/sensors/qmlqtsensors/main.qml 2 + + Reading the data can be done for each sensor type like following: + + \l {QtSensors5::TiltSensor} {TiltSensor} + +\snippet ../examples/sensors/qmlqtsensors/main.qml 3 +\snippet ../examples/sensors/qmlqtsensors/main.qml 4 + + \l {QtSensors5::AmbientLightSensor} {AmbientLightSensor} + +\snippet ../examples/sensors/qmlqtsensors/main.qml 5 + + \l {QtSensors5::ProximitySensor} {ProximitySensor} + +\snippet ../examples/sensors/qmlqtsensors/main.qml 6 +*/ + diff --git a/examples/sensors/qmlqtsensors/qmlqtsensors.qmlproject b/examples/sensors/qmlqtsensors/qmlqtsensors.qmlproject new file mode 100644 index 00000000..4d32f758 --- /dev/null +++ b/examples/sensors/qmlqtsensors/qmlqtsensors.qmlproject @@ -0,0 +1,18 @@ +import QmlProject 1.1 + +Project { + mainFile: "main.qml" + + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ "../exampleplugin" ] +} diff --git a/examples/sensors/qmlqtsensors5/Button.qml b/examples/sensors/qmlqtsensors5/Button.qml deleted file mode 100644 index 390dd1c4..00000000 --- a/examples/sensors/qmlqtsensors5/Button.qml +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtSensors module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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 Nokia Corporation and its Subsidiary(-ies) 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.0 - -Rectangle { - id: button - width: 100 - height: 20 - property alias text: t.text - property bool checked - signal clicked - property color checkColor; - property color unCheckColor; - border.width: 1 - radius: 2 - - Text{ - x: 0 - id: t - anchors.fill: button - } - - MouseArea{ - anchors.fill: button - onClicked: { - setCheck(!button.checked); - button.clicked(); - } - } - - function setCheck(val) - { - checked = val; - button.color = (button.checked == true ? checkColor : unCheckColor); - } -} diff --git a/examples/sensors/qmlqtsensors5/SelectionButton.qml b/examples/sensors/qmlqtsensors5/SelectionButton.qml deleted file mode 100644 index 014f965e..00000000 --- a/examples/sensors/qmlqtsensors5/SelectionButton.qml +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtSensors module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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 Nokia Corporation and its Subsidiary(-ies) 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.0 - -Rectangle { - id: button - width: 100 - height: 25 - property alias text: t.text - property bool checked - signal clicked - - Image{ - id: image - x: 0 - width: 15 - height: 15 - source: (button.checked == true ? "checked.gif" : "unchecked.gif") - } - - Text{ - x: image.x + image.width + 10 - id: t - } - - MouseArea{ - anchors.fill: button - onClicked: { - setCheck(true); - button.clicked(); - } - } - - function setCheck(val) - { - checked = val; - image.source = (button.checked == true ? "checked.gif" : "unchecked.gif"); - } -} diff --git a/examples/sensors/qmlqtsensors5/checked.gif b/examples/sensors/qmlqtsensors5/checked.gif deleted file mode 100644 index a4216f2c..00000000 Binary files a/examples/sensors/qmlqtsensors5/checked.gif and /dev/null differ diff --git a/examples/sensors/qmlqtsensors5/icon.png b/examples/sensors/qmlqtsensors5/icon.png deleted file mode 100755 index 27657129..00000000 Binary files a/examples/sensors/qmlqtsensors5/icon.png and /dev/null differ diff --git a/examples/sensors/qmlqtsensors5/info.json b/examples/sensors/qmlqtsensors5/info.json deleted file mode 100644 index 4061fcd2..00000000 --- a/examples/sensors/qmlqtsensors5/info.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "info-version": "1.0", - "dict": { - "Category": "application", - "Runtime": "qml", - "DisplayName": "Sensors2", - "Subcategory": "utility", - "MainQML": "main.qml", - "Version": "1.0", - "Identifier": "com.nokia.mt.qmlsensors2.demo", - "Summary": "QML Sensors2 demo", - "Author": "Qt" - } -} diff --git a/examples/sensors/qmlqtsensors5/main.qml b/examples/sensors/qmlqtsensors5/main.qml deleted file mode 100644 index 5da5b939..00000000 --- a/examples/sensors/qmlqtsensors5/main.qml +++ /dev/null @@ -1,370 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtSensors module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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 Nokia Corporation and its Subsidiary(-ies) 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 the declarative plugins -import QtQuick 2.0 - -//! [0] -import QtSensors 5.0 -//! [0] - -/* Layout - tiltrect - / -----------------------------------------------------------------------------/ -| Accuracy <----- textAccuracy -| @ 0 Degree <- selButton0DegreeAccuracy @ Slow <- selButtonSlowSpeed -| O 1 Degree <- selButton1DegreeAccuracy O Medium <- selButtonMediumSpeed -| O 5 Degree <- selButton5DegreeAccuracy O Fast <- selButtonFastSpeed -| ----------- -| |calibrate| <------------------ calibrate -| ----------- -| --------- -| |degree | <-------------------- useRadian -| --------- -| X Rotation: 0 <------------------ xrottext -| Y Rotation: 0 <------------------ yrottext -| --------- -| |start | <-------------------- tiltStart -| --------- ablrect ------------------------------- / -------------------------------/ -| Ambient light: - <--------------- abltext -| --------- -| |start | <-------------------- ablStart -| --------- proxirect ------------------------------- / -------------------------------/ -| Proximity: false <--------------- proxitext -| --------- -| |start | <-------------------- proxiStart -| --------- ------------------------------------------------------------------------------- - -*/ - -Rectangle { - width: 320 - height: 480 - - Rectangle { - id: tiltrect - x: 2 - y: 22 - width: 315 - height: 270 - border.width: 1 - -//! [1] - TiltSensor { - id: tilt - unit: TiltSensor.Degrees - enabled: false - accuracy: 1.0 - } -//! [1] - - Text{ - id: textAccuracy - x: 5 - y: 20 - text: "Accuracy" - } - - Text{ - id: textSpeed - x: 150 - y: 20 - text: "Speed" - } - - SelectionButton{ - id: selButton0DegreeAccuracy - x: 5 - y: 45 - checked: true - text: "0 Degree" - onClicked:{ - selButton1DegreeAccuracy.setCheck(false); - selButton5DegreeAccuracy.setCheck(false); - tilt.accuracy = 0.0; - } - } - SelectionButton{ - id: selButtonSlowSpeed - x: 150 - y: 45 - checked: true - text: "Slow" - onClicked:{ - selButtonMediumSpeed.setCheck(false); - selButtonFastSpeed.setCheck(false); - tilt.speed = TiltSensor.Slow; - } - } - - SelectionButton{ - id: selButton1DegreeAccuracy - x: 5 - y: 70 - checked: false - text: "1 Degree" - onClicked:{ - selButton0DegreeAccuracy.setCheck(false); - selButton5DegreeAccuracy.setCheck(false); - tilt.accuracy = (tilt.unit == TiltSensor.Degrees ? 1.0 : (3.14 / 180.0)); - } - } - SelectionButton{ - id: selButtonMediumSpeed - x: 150 - y: 70 - checked: false - text: "Medium" - onClicked:{ - selButtonSlowSpeed.setCheck(false); - selButtonFastSpeed.setCheck(false); - tilt.speed = TiltSensor.Medium; - } - } - - SelectionButton{ - id: selButton5DegreeAccuracy - x: 5 - y: 95 - checked: false - text: "5 Degree" - onClicked:{ - selButton0DegreeAccuracy.setCheck(false); - selButton1DegreeAccuracy.setCheck(false); - tilt.accuracy = (tilt.unit == TiltSensor.Degrees ? 5.0 : (5.0 * 3.14 / 180.0)); - } - } - - SelectionButton{ - id: selButtonFastSpeed - x: 150 - y: 95 - checked: false - text: "Fast" - onClicked:{ - selButtonSlowSpeed.setCheck(false); - selButtonMediumSpeed.setCheck(false); - tilt.speed = TiltSensor.Fast; - } - } - - Button{ - id: calibrate - x: 5 - y: 145 - text: "calibrate" - checkColor: "lightblue" - unCheckColor: "lightyellow" - checked: false - color: "lightyellow" - - onClicked:{ - tilt.calibrate(); - unchecktimer.running = true; - } - Timer { - id: unchecktimer - interval: 1000; running: false; repeat: false - onTriggered: { - calibrate.checked = false; - calibrate.color = "lightyellow"; - } - } - } - - Button{ - id: useRadian - x: 5 - y: 170 - text: "degree" - checkColor: "lightblue" - unCheckColor: "lightyellow" - checked: (tilt.unit == TiltSensor.Radians ? true : false) - color: "lightyellow" - - onClicked:{ - tilt.unit = (useRadian.checked ? TiltSensor.Radians : TiltSensor.Degrees); - if (useRadian.checked) - useRadian.text = "radian"; - else - useRadian.text = "degree"; - } - } - - Text { - id: xrottext - x:5 - y:195 -//! [3] - text: "X Rotation: " + tilt.xRotation -//! [3] - } - Text { - id: yrottext - x:5 - y:220 -//! [4] - text: "Y Rotation: " + tilt.yRotation -//! [4] - } - Button{ - id: tiltStart - x: 5 - y: 245 - text: tilt.enabled ? "running" : "start" - checkColor: "lightblue" - unCheckColor: "lightyellow" - color: tilt.enabled ? checkColor : unCheckColor - checked: tilt.enabled - - onClicked:{ -//! [2] - tilt.enabled = tiltStart.checked; -//! [2] - if (tiltStart.checked) - tiltStart.text = "running"; - else - tiltStart.text = "stopped"; - } - } - } - - Rectangle { - id: ambientlightrect - x: 2 - y: tiltrect.y + tiltrect.height + 10 - width: 315 - height: 70 - border.width: 1 - - AmbientLightSensor { - id: ambientlight - enabled: false - onLightLevelChanged:{ -//! [5] - if (ambientlight.lightLevel == AmbientLightSensor.Unknown) - ambientlighttext.text = "Ambient light: Unknown"; -//! [5] - else if (ambientlight.lightLevel == AmbientLightSensor.Dark) - ambientlighttext.text = "Ambient light: Dark"; - else if (ambientlight.lightLevel == AmbientLightSensor.Twilight) - ambientlighttext.text = "Ambient light: Twilight"; - else if (ambientlight.lightLevel == AmbientLightSensor.Light) - ambientlighttext.text = "Ambient light: Light"; - else if (ambientlight.lightLevel == AmbientLightSensor.Bright) - ambientlighttext.text = "Ambient light: Bright"; - else if (ambientlight.lightLevel == AmbientLightSensor.Sunny) - ambientlighttext.text = "Ambient light: Sunny"; - } - } - - Text { - id: ambientlighttext - x: 5 - y: 10 - text: "Ambient light: -" - } - Button{ - id: ambientlightStart - x: 5 - y: 35 - text: ambientlight.enabled ? "running" : "start" - checkColor: "lightblue" - unCheckColor: "lightyellow" - color: ambientlight.enabled ? checkColor : unCheckColor - checked: ambientlight.enabled - - onClicked:{ - ambientlight.enabled = ambientlightStart.checked; - if (ambientlightStart.checked) - ambientlightStart.text = "running"; - else - ambientlightStart.text = "stopped"; - } - } - } - - Rectangle { - id: proxirect - x: 2 - y: ambientlightrect.y + ambientlightrect.height + 10 - width: 315 - height: 70 - border.width: 1 - - ProximitySensor { - id: proxi - enabled: false - } - - Text { - id: proxitext - x: 5 - y: 10 - text: "Proximity: " + proxi.near - } - Button{ - id: proxiStart - x: 5 - y: 35 -//! [6] - text: proxi.enabled ? "running" : "start" -//! [6] - checkColor: "lightblue" - unCheckColor: "lightyellow" - color: proxi.enabled ? checkColor : unCheckColor - checked: proxi.enabled - - onClicked:{ - proxi.enabled = proxiStart.checked; - if (proxiStart.checked) - proxiStart.text = "running"; - else - proxiStart.text = "stopped"; - } - } - } -} diff --git a/examples/sensors/qmlqtsensors5/qmlqtsensors5.qmlproject b/examples/sensors/qmlqtsensors5/qmlqtsensors5.qmlproject deleted file mode 100644 index 4d32f758..00000000 --- a/examples/sensors/qmlqtsensors5/qmlqtsensors5.qmlproject +++ /dev/null @@ -1,18 +0,0 @@ -import QmlProject 1.1 - -Project { - mainFile: "main.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ "../exampleplugin" ] -} diff --git a/examples/sensors/qmlqtsensors5/unchecked.gif b/examples/sensors/qmlqtsensors5/unchecked.gif deleted file mode 100644 index ffb651df..00000000 Binary files a/examples/sensors/qmlqtsensors5/unchecked.gif and /dev/null differ diff --git a/examples/sensors/sensor_explorer/sensor_explorer.qdoc b/examples/sensors/sensor_explorer/sensor_explorer.qdoc new file mode 100644 index 00000000..ebf27ea8 --- /dev/null +++ b/examples/sensors/sensor_explorer/sensor_explorer.qdoc @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms +** and conditions contained in a signed written agreement between you +** and Nokia. +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page sensor_explorer.html + \title Sensor Explorer example + \ingroup qtsensors-examples + \brief The Sensor Explorer example demonstrates how to read the meta-data of available sensors. + \image sensorexplorer.jpg + +\section1 Overview + This example contains 2 projects. + + A \l{Sensor Explorer QML Import} to make the sensors and their meta-data available to a QML application. + + A \l{Sensor Explorer QML Application} that represents the \l{Sensor Explorer QML Import} information to the user interface. +*/ + + +/*! + \example sensors/sensor_explorer/import + \title Sensor Explorer QML Import + \brief The Sensor Explorer QML import exports the QSensorExplorer, QPropertyInfo and the QSensorItem class as a QML element. + + This example creates the \e {Explorer 1.0} import. + + \sa {Sensor Explorer Example} +*/ + +/*! + \example sensors/sensor_explorer/qml_app + \title Sensor Explorer QML Application + \brief The Sensor Explorer QML application demonstrates use of the Explorer 1.0 import QML elements. + + This is a pure QML application that can be run from Qt Creator or directly using the + \c qmlscene binary. You should install the other projects before trying to run + this example or it will not be able to find its dependencies. + + \code + qmlscene main.qml + \endcode + + \sa {Sensor Explorer Example} + +\section1 Overview + To write a QML application that will use the Explorer QML element you need to do the following steps: + + Import the Explorer 1.0 declarative plugin: + + \snippet ../examples/sensors/sensor_explorer/qml_app/main.qml 0 + + Create a SensorExplorer QML item: + + \snippet ../examples/sensors/sensor_explorer/qml_app/main.qml 1 + + You can retrieve a list of all available sensors using the SensorExplorer: + + \snippet ../examples/sensors/sensor_explorer/qml_app/main.qml 2 + + To retrieve the properties of a SensorItem use: + + \snippet ../examples/sensors/sensor_explorer/qml_app/main.qml 3 + + Changing a property value can be done like: + + \snippet ../examples/sensors/sensor_explorer/qml_app/main.qml 4 + + Starting and stoping a sesnor can be done like: + + \snippet ../examples/sensors/sensor_explorer/qml_app/main.qml 5 +*/ -- cgit v1.2.3