diff options
author | Lorn Potter <lorn.potter@nokia.com> | 2011-11-09 11:31:53 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-09 07:26:31 +0100 |
commit | db2df16d1aa7ece4ee27b16122142c002b01d65d (patch) | |
tree | f53f6b3f19d1f0e554af83707720ae6c99d4d9a4 /examples | |
parent | 2d75ee6c831ecab52e94313675d48a318ef592e2 (diff) | |
download | qtsensors-db2df16d1aa7ece4ee27b16122142c002b01d65d.tar.gz |
add documentation to sensor gesture c++ example
Also make the example app a bit more informative and useful.
Change-Id: I9e74d12c7d762df46355467670f0b9b41e7b3b5c
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/sensors/sensorgestures/mainwindow.cpp | 94 | ||||
-rw-r--r-- | examples/sensors/sensorgestures/mainwindow.h | 6 | ||||
-rw-r--r-- | examples/sensors/sensorgestures/mainwindow.ui | 35 | ||||
-rw-r--r-- | examples/sensors/sensors.pro | 8 |
4 files changed, 123 insertions, 20 deletions
diff --git a/examples/sensors/sensorgestures/mainwindow.cpp b/examples/sensors/sensorgestures/mainwindow.cpp index 668d7a2..41e1a2b 100644 --- a/examples/sensors/sensorgestures/mainwindow.cpp +++ b/examples/sensors/sensorgestures/mainwindow.cpp @@ -38,7 +38,8 @@ ** ****************************************************************************/ -#include <QDebug> +#include <QtCore/QDebug> +#include <QtWidgets/QTreeWidget> #include "mainwindow.h" #include "ui_mainwindow.h" @@ -51,19 +52,24 @@ MainWindow::MainWindow(QWidget *parent) ui(new Ui::MainWindow) { ui->setupUi(this); + //! [0] QSensorGestureManager manager; - QSensorGesture *thisGesture = new QSensorGesture(manager.gestureIds(), this); + Q_FOREACH (const QString &gesture, manager.gestureIds()) { - if (thisGesture->availableIds().contains("QtSensors.shake")) { - connect(thisGesture,SIGNAL(shake()), - this,SLOT(onShake())); + 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] - connect(thisGesture,SIGNAL(detected(QString)), - this,SLOT(detectedShake(QString))); - thisGesture->startDetection(); ui->textEdit->setReadOnly(true); } @@ -75,7 +81,7 @@ MainWindow::~MainWindow() void MainWindow::detectedShake(const QString &name) { - QString str = "<font size=+4><B>"+name+"</b></font><br>"; + QString str = "<font size=+2><B>"+name+"</b></font><br>"; ui->textEdit->insertHtml(str); ui->textEdit->ensureCursorVisible(); } @@ -87,8 +93,76 @@ void MainWindow::on_pushButton_clicked() void MainWindow::onShake() { - QString str = "<font size=+4><B>onShake()</b></font><br>"; + 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 index 24a6f63..d0fd7f7 100644 --- a/examples/sensors/sensorgestures/mainwindow.h +++ b/examples/sensors/sensorgestures/mainwindow.h @@ -42,6 +42,7 @@ #define MAINWINDOW_H #include <QtWidgets/QMainWindow> +#include <qsensorgesture.h> namespace Ui { class MainWindow; @@ -57,11 +58,16 @@ public: 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(); }; #endif // MAINWINDOW_H diff --git a/examples/sensors/sensorgestures/mainwindow.ui b/examples/sensors/sensorgestures/mainwindow.ui index b0bff42..baccf98 100644 --- a/examples/sensors/sensorgestures/mainwindow.ui +++ b/examples/sensors/sensorgestures/mainwindow.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>400</width> - <height>300</height> + <width>423</width> + <height>474</height> </rect> </property> <property name="windowTitle"> @@ -15,18 +15,41 @@ </property> <widget class="QWidget" name="centralWidget"> <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> + <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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:8pt;">hello</span></p></body></html></string> +<p style="-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;"></p></body></html></string> </property> </widget> </item> - <item row="1" column="0"> + <item row="3" column="0"> <widget class="QPushButton" name="pushButton"> <property name="text"> <string>Clear</string> @@ -40,7 +63,7 @@ p, li { white-space: pre-wrap; } <rect> <x>0</x> <y>0</y> - <width>400</width> + <width>423</width> <height>22</height> </rect> </property> diff --git a/examples/sensors/sensors.pro b/examples/sensors/sensors.pro index 9826b52..50b5fac 100644 --- a/examples/sensors/sensors.pro +++ b/examples/sensors/sensors.pro @@ -2,8 +2,8 @@ TEMPLATE = subdirs SUBDIRS += \ accel\ - grue - -contains(QT_CONFIG,widgets):SUBDIRS += \ - sensor_explorer \ + grue \ sensorgestures + +#contains(QT_CONFIG,widgets):SUBDIRS += \ + # sensor_explorer \ |