summaryrefslogtreecommitdiffstats
path: root/examples/sensors/qmlqtsensors
diff options
context:
space:
mode:
authorWolfgang Beck <wolfgang.beck@nokia.com>2012-01-12 14:15:57 +1000
committerQt by Nokia <qt-info@nokia.com>2012-01-13 01:10:34 +0100
commit612ea53f2b21fcedd169b6c7270268ef212e0b39 (patch)
tree1fdefa2211fdd4bbfb94d171fb4ec09ff6957c48 /examples/sensors/qmlqtsensors
parenta045f3fe0cfcab90e0ec881eb51ab7015112a177 (diff)
Examples for SDK Team
Change-Id: I93f92a85419f0519f887ccd12a39bf61d7db7aae Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com> Reviewed-by: Wolfgang Beck <wolfgang.beck@nokia.com>
Diffstat (limited to 'examples/sensors/qmlqtsensors')
-rw-r--r--examples/sensors/qmlqtsensors/Button.qml75
-rw-r--r--examples/sensors/qmlqtsensors/RadioButton.qml87
-rwxr-xr-xexamples/sensors/qmlqtsensors/icon.pngbin0 -> 2122 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/button_background_disabled.pngbin0 -> 579 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/button_background_normal.pngbin0 -> 901 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/button_background_pressed.pngbin0 -> 334 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/listitem_select.pngbin0 -> 156 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/radiobutton_background_checked.pngbin0 -> 473 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/radiobutton_background_disabled.pngbin0 -> 447 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/radiobutton_background_disabled_checked.pngbin0 -> 629 bytes
-rw-r--r--examples/sensors/qmlqtsensors/images/radiobutton_background_unchecked.pngbin0 -> 568 bytes
-rw-r--r--examples/sensors/qmlqtsensors/info.json14
-rw-r--r--examples/sensors/qmlqtsensors/main.qml491
-rw-r--r--examples/sensors/qmlqtsensors/qmlqtsensors.qdoc68
-rw-r--r--examples/sensors/qmlqtsensors/qmlqtsensors.qmlproject18
15 files changed, 753 insertions, 0 deletions
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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/icon.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/button_background_disabled.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/button_background_normal.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/button_background_pressed.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/listitem_select.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/radiobutton_background_checked.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/radiobutton_background_disabled_checked.png
Binary files 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
--- /dev/null
+++ b/examples/sensors/qmlqtsensors/images/radiobutton_background_unchecked.png
Binary files 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" ]
+}