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/sensors/sensorgestures/mainwindow.cpp | |
parent | 2d75ee6c831ecab52e94313675d48a318ef592e2 (diff) |
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/sensors/sensorgestures/mainwindow.cpp')
-rw-r--r-- | examples/sensors/sensorgestures/mainwindow.cpp | 94 |
1 files changed, 84 insertions, 10 deletions
diff --git a/examples/sensors/sensorgestures/mainwindow.cpp b/examples/sensors/sensorgestures/mainwindow.cpp index 668d7a21..41e1a2b3 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(); +} |