summaryrefslogtreecommitdiff
path: root/src/positioning/doc/snippets/cpp/cppqml.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2013-08-26 09:35:01 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-17 11:38:14 +0200
commit0ed9f7496656fa0ea52d703c7fddff26c2192857 (patch)
treeec0d4d7dc638e8018a8896a0b62cc91840c9c23d /src/positioning/doc/snippets/cpp/cppqml.cpp
parent87ce030b7b7336e561779dc9516d5ae2242a5d5f (diff)
downloadqtlocation-0ed9f7496656fa0ea52d703c7fddff26c2192857.tar.gz
Improve area monitoring API.
1.) QGeoAreaMonitor renamed to QGeoAreaMonitorSource 2.) Add new QGeoAreaMonitorInfo data type encpsulating individual areas to be monitored 3.) Port positionpoll plug-in to new features 4.) Make positionpoll monitor thread safe 4.) Extend and fix the QGeoAreaMonitor unit test 5.) Fix documentation. Task-number: QTBUG-31711 Change-Id: Icfc982de4753d2f43cb4d15c234eb7b7c039a0c4 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/positioning/doc/snippets/cpp/cppqml.cpp')
-rw-r--r--src/positioning/doc/snippets/cpp/cppqml.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/positioning/doc/snippets/cpp/cppqml.cpp b/src/positioning/doc/snippets/cpp/cppqml.cpp
index 5ab23513..95d34b7c 100644
--- a/src/positioning/doc/snippets/cpp/cppqml.cpp
+++ b/src/positioning/doc/snippets/cpp/cppqml.cpp
@@ -39,9 +39,12 @@
****************************************************************************/
#include <QtCore/QObject>
+#include <QtCore/QDebug>
#include <QtCore/QVariant>
#include <QtPositioning/QGeoAddress>
#include <QtPositioning/QGeoLocation>
+#include <QtPositioning/QGeoCircle>
+#include <QtPositioning/QGeoAreaMonitorSource>
void cppQmlInterface(QObject *qmlObject)
{
@@ -62,3 +65,40 @@ void cppQmlInterface(QObject *qmlObject)
//! [Location set]
}
+class MyClass : public QObject
+{
+ Q_OBJECT
+//! [BigBen]
+public:
+ MyClass() : QObject()
+ {
+ QGeoAreaMonitorSource *monitor = QGeoAreaMonitorSource::createDefaultMonitorSource(this);
+ if (monitor) {
+ connect(monitor, SIGNAL(areaEntered(QGeoAreaMonitorInfo,QGeoPositionInfo)),
+ this, SLOT(areaEntered(QGeoAreaMonitorInfo,QGeoPositionInfo));
+ connect(monitor, SIGNAL(areaExited(QGeoAreaMonitorInfo,QGeoPositionInfo)),
+ this, SLOT(areaExited(QGeoAreaMonitorInfo,QGeoPositionInfo)));
+
+ QGeoAreaMonitorInfo bigBen("Big Ben");
+ QGeoCoordinate position(51.50104, -0.124632);
+ bigBen.setMonitoredArea(QGeoCircle(position, 100));
+
+ monitor->startMonitoring(bigBen);
+
+ } else {
+ qDebug() << "Could not create default area monitor";
+ }
+ }
+
+public Q_SLOTS:
+ void areaEntered(const QGeoAreaMonitorInfo &mon, const QGeoPositionInfo &update)
+ {
+ qDebug() << "Now within 100 meters, current position is" << update.coordinate();
+ }
+
+ void areaExited(const QGeoAreaMonitorInfo &mon, const QGeoPositionInfo &update)
+ {
+ qDebug() << "No longer within 100 meters, current position is" << update.coordinate();
+ }
+//! [BigBen]
+};