summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>2013-02-26 14:40:56 +0100
committerThomas McGuire <thomas.mcguire@kdab.com>2013-03-01 10:12:06 +0100
commit53f31f91fc4b6bb9a6fa61c0f6638e8343846a81 (patch)
treefa9c298842cdaf9a9225b61972776da8fe3e1e02
parent3a677faee617ae6d6236812d85edb2af75d7ca3b (diff)
Convert QMagnetometer::returnGeoValues to a proper property
This is a backport of QtSensors commit 2dba878107fbe290782af720981ce28ec3723e7a Change-Id: Icc160b408c77c1d1e727e033146c72fd1e52618c Reviewed-by: Adam Parco <aparco@rim.com> Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
-rw-r--r--plugins/sensors/blackberry/bbmagnetometer.cpp4
-rw-r--r--src/sensors/qmagnetometer.cpp31
-rw-r--r--src/sensors/qmagnetometer.h21
-rw-r--r--src/sensors/qmagnetometer_p.h14
4 files changed, 63 insertions, 7 deletions
diff --git a/plugins/sensors/blackberry/bbmagnetometer.cpp b/plugins/sensors/blackberry/bbmagnetometer.cpp
index d6d952ba8f..7b84d6d483 100644
--- a/plugins/sensors/blackberry/bbmagnetometer.cpp
+++ b/plugins/sensors/blackberry/bbmagnetometer.cpp
@@ -63,7 +63,9 @@ bool BbMagnetometer::updateReadingFromEvent(const sensor_event_t &event, QMagnet
reading->setY(y);
reading->setZ(z);
- const bool returnGeoValues = sensor()->property("returnGeoValues").toBool();
+ QMagnetometer * const magnetometer = qobject_cast<QMagnetometer *>(sensor());
+ Q_ASSERT(magnetometer);
+ const bool returnGeoValues = magnetometer->returnGeoValues();
if (returnGeoValues) {
switch (event.accuracy) {
case SENSOR_ACCURACY_UNRELIABLE: reading->setCalibrationLevel(0.0f); break;
diff --git a/src/sensors/qmagnetometer.cpp b/src/sensors/qmagnetometer.cpp
index 212f6b6a30..58e6c7b91d 100644
--- a/src/sensors/qmagnetometer.cpp
+++ b/src/sensors/qmagnetometer.cpp
@@ -219,11 +219,23 @@ char const * const QMagnetometer::type("QMagnetometer");
*/
/*!
+ \internal
+ */
+QMagnetometerPrivate *QMagnetometer::d_func() const
+{
+ return static_cast<QMagnetometerPrivate*>(QSensor::d_func());
+}
+
+/*!
\fn QMagnetometer::QMagnetometer(QObject *parent)
Construct the sensor as a child of \a parent.
\since 1.0
*/
+QMagnetometer::QMagnetometer(QObject *parent)
+ : QSensor(QMagnetometer::type, new QMagnetometerPrivate(this), parent)
+{
+}
/*!
\fn QMagnetometer::~QMagnetometer()
@@ -231,6 +243,9 @@ char const * const QMagnetometer::type("QMagnetometer");
Destroy the sensor. Stops the sensor if it has not already been stopped.
\since 1.0
*/
+QMagnetometer::~QMagnetometer()
+{
+}
/*!
\fn QMagnetometer::reading() const
@@ -248,11 +263,25 @@ char const * const QMagnetometer::type("QMagnetometer");
Set to true to return geomagnetic flux density.
Set to false (the default) to return raw magnetic flux density.
- Note that you must access this property via QObject::property() and QObject::setProperty().
The property must be set before calling start().
\since 1.0
*/
+bool QMagnetometer::returnGeoValues() const
+{
+ Q_D(const QMagnetometer);
+ return d->returnGeoValues;
+}
+
+void QMagnetometer::setReturnGeoValues(bool returnGeoValues)
+{
+ Q_D(QMagnetometer);
+ if (d->returnGeoValues != returnGeoValues) {
+ d->returnGeoValues = returnGeoValues;
+ emit returnGeoValuesChanged(returnGeoValues);
+ }
+}
+
#include "moc_qmagnetometer.cpp"
QTM_END_NAMESPACE
diff --git a/src/sensors/qmagnetometer.h b/src/sensors/qmagnetometer.h
index e6cf0c4e1e..89921b6cd0 100644
--- a/src/sensors/qmagnetometer.h
+++ b/src/sensors/qmagnetometer.h
@@ -82,6 +82,8 @@ private:
bool filter(QSensorReading *reading) { return filter(static_cast<QMagnetometerReading*>(reading)); }
};
+class QMagnetometerPrivate;
+
class Q_SENSORS_EXPORT QMagnetometer : public QSensor
#if defined(Q_OS_BLACKBERRY)
, public QOrientableSensorBase
@@ -94,9 +96,7 @@ class Q_SENSORS_EXPORT QMagnetometer : public QSensor
Q_PROPERTY(int userOrientation READ userOrientation WRITE setUserOrientation NOTIFY userOrientationChanged)
#endif
-#ifdef Q_QDOC
- Q_PROPERTY(bool returnGeoValues)
-#endif
+ Q_PROPERTY(bool returnGeoValues READ returnGeoValues WRITE setReturnGeoValues NOTIFY returnGeoValuesChanged)
public:
#if defined(Q_MOC_RUN) && defined(Q_OS_BLACKBERRY)
@@ -108,16 +108,27 @@ public:
};
Q_ENUMS(AxesOrientationMode)
#endif
- explicit QMagnetometer(QObject *parent = 0) : QSensor(QMagnetometer::type, parent) {}
- virtual ~QMagnetometer() {}
+ explicit QMagnetometer(QObject *parent = 0);
+ virtual ~QMagnetometer();
QMagnetometerReading *reading() const { return static_cast<QMagnetometerReading*>(QSensor::reading()); }
static char const * const type;
+
+ bool returnGeoValues() const;
+ void setReturnGeoValues(bool returnGeoValues);
+
#if !defined(Q_QDOC) && defined(Q_OS_BLACKBERRY)
Q_SIGNALS:
void axesOrientationModeChanged(AxesOrientationMode axesOrientationMode);
void currentOrientationChanged(int currentOrientation);
void userOrientationChanged(int userOrientation);
#endif
+
+Q_SIGNALS:
+ void returnGeoValuesChanged(bool returnGeoValues);
+
+private:
+ friend class QMagnetometerPrivate;
+ QMagnetometerPrivate *d_func() const;
};
QTM_END_NAMESPACE
diff --git a/src/sensors/qmagnetometer_p.h b/src/sensors/qmagnetometer_p.h
index 086d3d3238..f4d5c6157d 100644
--- a/src/sensors/qmagnetometer_p.h
+++ b/src/sensors/qmagnetometer_p.h
@@ -53,8 +53,22 @@
// We mean it.
//
+#include "qsensor_p.h"
+
QTM_BEGIN_NAMESPACE
+class QMagnetometerPrivate : public QSensorPrivate
+{
+public:
+ QMagnetometerPrivate(QSensor *sensor)
+ : QSensorPrivate(sensor),
+ returnGeoValues(false)
+ {
+ }
+
+ bool returnGeoValues;
+};
+
class QMagnetometerReadingPrivate
{
public: