summaryrefslogtreecommitdiffstats
path: root/examples/sensors/sensorgestures
diff options
context:
space:
mode:
authorLincoln Ramsay <lincoln.ramsay@nokia.com>2012-06-19 15:47:09 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-20 01:56:15 +0200
commitb2e97817684f40ab9353fa279a4c02ef9c12e13d (patch)
treeb7c7114b555539de9e1bc5a1bd1ed5afeed777bb /examples/sensors/sensorgestures
parent5e89b386f4aae5a4953c725b6aab565b21a3330f (diff)
Remove the 'special' naming of examples.
Just go back to the naming convention we had before. Change-Id: Iefecb7a5e0ab3aa4d22267b4f475a8e9c1c96058 Reviewed-by: Lorn Potter <lorn.potter@nokia.com>
Diffstat (limited to 'examples/sensors/sensorgestures')
-rw-r--r--examples/sensors/sensorgestures/gesture.pngbin0 -> 3400 bytes
-rw-r--r--examples/sensors/sensorgestures/main.cpp51
-rw-r--r--examples/sensors/sensorgestures/mainwindow.cpp168
-rw-r--r--examples/sensors/sensorgestures/mainwindow.h76
-rw-r--r--examples/sensors/sensorgestures/mainwindow.ui84
-rw-r--r--examples/sensors/sensorgestures/sensorgestures.pro13
6 files changed, 392 insertions, 0 deletions
diff --git a/examples/sensors/sensorgestures/gesture.png b/examples/sensors/sensorgestures/gesture.png
new file mode 100644
index 00000000..707d5c4e
--- /dev/null
+++ b/examples/sensors/sensorgestures/gesture.png
Binary files differ
diff --git a/examples/sensors/sensorgestures/main.cpp b/examples/sensors/sensorgestures/main.cpp
new file mode 100644
index 00000000..49594d4e
--- /dev/null
+++ b/examples/sensors/sensorgestures/main.cpp
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** 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$
+**
+****************************************************************************/
+
+#include <QtWidgets/QApplication>
+#include "mainwindow.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ MainWindow w;
+ w.show();
+
+ return a.exec();
+}
diff --git a/examples/sensors/sensorgestures/mainwindow.cpp b/examples/sensors/sensorgestures/mainwindow.cpp
new file mode 100644
index 00000000..9dd8a611
--- /dev/null
+++ b/examples/sensors/sensorgestures/mainwindow.cpp
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** 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$
+**
+****************************************************************************/
+
+#include <QtCore/QDebug>
+#include <QtWidgets/QTreeWidget>
+
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+#include <qsensorgesture.h>
+#include <qsensorgesturemanager.h>
+
+MainWindow::MainWindow(QWidget *parent)
+ : QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+ //! [0]
+
+ QSensorGestureManager manager;
+
+ Q_FOREACH (const QString &gesture, manager.gestureIds()) {
+
+ QTreeWidgetItem *gestureId = new QTreeWidgetItem(ui->treeWidget);
+ QStringList recognizerSignals = manager.recognizerSignals(gesture);
+ gestureId->setText(0,gesture);
+
+ for (int i = 0; i < recognizerSignals.count(); i++) {
+ QTreeWidgetItem *oneSignal = new QTreeWidgetItem(gestureId);
+ oneSignal->setText(0,recognizerSignals.at(i));
+ }
+ ui->treeWidget->insertTopLevelItem(0,gestureId);
+ }
+ //! [0]
+
+
+ ui->textEdit->setReadOnly(true);
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
+
+void MainWindow::detectedShake(const QString &name)
+{
+ QString str = "<font size=+2><B>"+name+"</b></font><br>";
+ ui->textEdit->insertHtml(str);
+ ui->textEdit->ensureCursorVisible();
+}
+
+void MainWindow::on_pushButton_clicked()
+{
+ ui->textEdit->clear();
+}
+
+void MainWindow::onShake()
+{
+ QString str = "<font size=+2><B>onShake()</b></font><br>";
+ ui->textEdit->insertHtml(str);
+ ui->textEdit->ensureCursorVisible();
+}
+
+void MainWindow::on_startPushButton_clicked()
+{
+ if (ui->treeWidget->currentItem() == 0)
+ return;
+ QString currentRecognizer;
+
+ if (ui->treeWidget->currentItem()->childCount() == 0) {
+ currentRecognizer = ui->treeWidget->currentItem()->parent()->text(0);
+ } else {
+ currentRecognizer = ui->treeWidget->currentItem()->text(0);
+ }
+
+ if (recognizerMap.contains(currentRecognizer))
+ return;
+ //! [1]
+ QSensorGestureManager manager;
+ QSensorGesture *thisGesture = new QSensorGesture(QStringList() << currentRecognizer, this);
+
+ if (currentRecognizer.contains("QtSensors.shake")) {
+ connect(thisGesture,SIGNAL(shake()),
+ this,SLOT(onShake()));
+ }
+
+ connect(thisGesture,SIGNAL(detected(QString)),
+ this,SLOT(detectedShake(QString)));
+ thisGesture->startDetection();
+
+ //! [1]
+
+ recognizerMap.insert(currentRecognizer,thisGesture);
+
+ QString str = QString("<font size=+2><B>Started %1</b></font><br>").arg(currentRecognizer);
+ ui->textEdit->insertHtml(str);
+ ui->textEdit->ensureCursorVisible();
+}
+
+void MainWindow::on_stopPushButton_clicked()
+{
+ if (ui->treeWidget->currentItem() == 0)
+ return;
+ QString currentRecognizer;
+
+ if (ui->treeWidget->currentItem()->childCount() == 0) {
+ currentRecognizer = ui->treeWidget->currentItem()->parent()->text(0);
+ } else {
+ currentRecognizer = ui->treeWidget->currentItem()->text(0);
+ }
+
+ if (!recognizerMap.contains(currentRecognizer))
+ return;
+ //! [2]
+
+ recognizerMap[currentRecognizer]->stopDetection();
+
+ if (currentRecognizer == "QtSensors.shake") {
+ disconnect(recognizerMap[currentRecognizer],SIGNAL(shake()),
+ this,SLOT(onShake()));
+ }
+ disconnect(recognizerMap[currentRecognizer],SIGNAL(detected(QString)),
+ this,SLOT(detectedShake(QString)));
+ //! [2]
+
+ recognizerMap.take(currentRecognizer);
+
+ QString str = QString("<font size=+2><B>Stopped %1</b></font><br>").arg(currentRecognizer);
+ ui->textEdit->insertHtml(str);
+ ui->textEdit->ensureCursorVisible();
+}
diff --git a/examples/sensors/sensorgestures/mainwindow.h b/examples/sensors/sensorgestures/mainwindow.h
new file mode 100644
index 00000000..1e38f1be
--- /dev/null
+++ b/examples/sensors/sensorgestures/mainwindow.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** 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$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QtWidgets/QMainWindow>
+#include <qsensorgesture.h>
+QT_BEGIN_NAMESPACE
+namespace Ui {
+ class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ explicit MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+private:
+ Ui::MainWindow *ui;
+ QMap <QString, QSensorGesture *> recognizerMap;
+
+private slots:
+ void detectedShake(const QString&);
+ void onShake();
+
+ void on_pushButton_clicked();
+
+ void on_startPushButton_clicked();
+ void on_stopPushButton_clicked();
+};
+
+
+QT_END_NAMESPACE
+
+#endif // MAINWINDOW_H
diff --git a/examples/sensors/sensorgestures/mainwindow.ui b/examples/sensors/sensorgestures/mainwindow.ui
new file mode 100644
index 00000000..baccf98c
--- /dev/null
+++ b/examples/sensors/sensorgestures/mainwindow.ui
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>423</width>
+ <height>474</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0" colspan="2">
+ <widget class="QTreeWidget" name="treeWidget">
+ <column>
+ <property name="text">
+ <string>Gesture Recognizer Id</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QPushButton" name="startPushButton">
+ <property name="text">
+ <string>Start</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="stopPushButton">
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QTextEdit" name="textEdit">
+ <property name="html">
+ <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QPushButton" name="pushButton">
+ <property name="text">
+ <string>Clear</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>423</width>
+ <height>22</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QToolBar" name="mainToolBar">
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ <widget class="QStatusBar" name="statusBar"/>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/sensors/sensorgestures/sensorgestures.pro b/examples/sensors/sensorgestures/sensorgestures.pro
new file mode 100644
index 00000000..295db944
--- /dev/null
+++ b/examples/sensors/sensorgestures/sensorgestures.pro
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = gesture
+QT += core gui sensors widgets
+
+SOURCES += main.cpp\
+ mainwindow.cpp
+
+HEADERS += mainwindow.h
+
+FORMS += mainwindow.ui
+
+OTHER_FILES += \
+ gesture.png