summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>2013-01-31 18:59:24 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-08 11:17:51 +0100
commit2dba878107fbe290782af720981ce28ec3723e7a (patch)
treecfd0ef94263c7cf45a61a2eb3cf33a00adb66cb5 /src
parent034fda27751b506ee13caf18820d07b73b95c915 (diff)
Convert QMagnetometer::returnGeoValues to a proper property
Change-Id: I39cde0046e8a3fc77edbcf5c9510e2dcf6c731c7 Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Diffstat (limited to 'src')
-rw-r--r--src/imports/sensors/plugins.qmltypes5
-rw-r--r--src/imports/sensors/qmlmagnetometer.cpp7
-rw-r--r--src/imports/sensors/qmlmagnetometer.h3
-rw-r--r--src/imports/sensors/qmlsensor.h2
-rw-r--r--src/plugins/sensors/blackberry/bbmagnetometer.cpp4
-rw-r--r--src/sensors/qmagnetometer.cpp18
-rw-r--r--src/sensors/qmagnetometer.h13
-rw-r--r--src/sensors/qmagnetometer_p.h13
8 files changed, 56 insertions, 9 deletions
diff --git a/src/imports/sensors/plugins.qmltypes b/src/imports/sensors/plugins.qmltypes
index 97a2bcd1..bd879f81 100644
--- a/src/imports/sensors/plugins.qmltypes
+++ b/src/imports/sensors/plugins.qmltypes
@@ -122,6 +122,11 @@ Module {
name: "QmlMagnetometer"
prototype: "QmlSensor"
exports: ["Magnetometer 5.0", "Magnetometer 5.1"]
+ Property { name: "returnGeoValues"; type: "bool" }
+ Signal {
+ name: "returnGeoValuesChanged"
+ Parameter { name: "returnGeoValues"; type: "bool" }
+ }
}
Component {
name: "QmlMagnetometerReading"
diff --git a/src/imports/sensors/qmlmagnetometer.cpp b/src/imports/sensors/qmlmagnetometer.cpp
index 1f95b3f2..2c531f70 100644
--- a/src/imports/sensors/qmlmagnetometer.cpp
+++ b/src/imports/sensors/qmlmagnetometer.cpp
@@ -65,6 +65,8 @@ QmlMagnetometer::QmlMagnetometer(QObject *parent)
: QmlSensor(parent)
, m_sensor(new QMagnetometer(this))
{
+ connect(m_sensor, SIGNAL(returnGeoValuesChanged(bool)),
+ this, SIGNAL(returnGeoValuesChanged(bool)));
}
QmlMagnetometer::~QmlMagnetometer()
@@ -90,13 +92,12 @@ QSensor *QmlMagnetometer::sensor() const
bool QmlMagnetometer::returnGeoValues() const
{
- return m_sensor->property("returnGeoValues").toBool();
+ return m_sensor->returnGeoValues();
}
void QmlMagnetometer::setReturnGeoValues(bool geo)
{
- if (m_sensor->property("returnGeoValues").toBool() == geo) return;
- m_sensor->setProperty("returnGeoValues", geo);
+ m_sensor->setReturnGeoValues(geo);
}
/*!
diff --git a/src/imports/sensors/qmlmagnetometer.h b/src/imports/sensors/qmlmagnetometer.h
index a008a36c..6e5facda 100644
--- a/src/imports/sensors/qmlmagnetometer.h
+++ b/src/imports/sensors/qmlmagnetometer.h
@@ -51,6 +51,7 @@ class QMagnetometer;
class QmlMagnetometer : public QmlSensor
{
Q_OBJECT
+ Q_PROPERTY(bool returnGeoValues READ returnGeoValues WRITE setReturnGeoValues NOTIFY returnGeoValuesChanged)
public:
explicit QmlMagnetometer(QObject *parent = 0);
~QmlMagnetometer();
@@ -58,6 +59,8 @@ public:
bool returnGeoValues() const;
void setReturnGeoValues(bool geo);
+Q_SIGNALS:
+ void returnGeoValuesChanged(bool returnGeoValues);
private:
QSensor *sensor() const Q_DECL_OVERRIDE;
diff --git a/src/imports/sensors/qmlsensor.h b/src/imports/sensors/qmlsensor.h
index e538ed0a..b68a7b9d 100644
--- a/src/imports/sensors/qmlsensor.h
+++ b/src/imports/sensors/qmlsensor.h
@@ -154,6 +154,8 @@ protected:
private Q_SLOTS:
void updateReading();
+
+protected Q_SLOTS:
void componentComplete();
private:
diff --git a/src/plugins/sensors/blackberry/bbmagnetometer.cpp b/src/plugins/sensors/blackberry/bbmagnetometer.cpp
index 489a0481..5ece465e 100644
--- a/src/plugins/sensors/blackberry/bbmagnetometer.cpp
+++ b/src/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 60b2df83..f5f563aa 100644
--- a/src/sensors/qmagnetometer.cpp
+++ b/src/sensors/qmagnetometer.cpp
@@ -210,7 +210,7 @@ char const * const QMagnetometer::type("QMagnetometer");
Construct the sensor as a child of \a parent.
*/
QMagnetometer::QMagnetometer(QObject *parent)
- : QSensor(QMagnetometer::type, parent)
+ : QSensor(QMagnetometer::type, *new QMagnetometerPrivate, parent)
{
}
@@ -236,10 +236,24 @@ QMagnetometer::~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().
*/
+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"
QT_END_NAMESPACE
diff --git a/src/sensors/qmagnetometer.h b/src/sensors/qmagnetometer.h
index b4ed56ad..93b6157f 100644
--- a/src/sensors/qmagnetometer.h
+++ b/src/sensors/qmagnetometer.h
@@ -78,19 +78,26 @@ private:
bool filter(QSensorReading *reading) { return filter(static_cast<QMagnetometerReading*>(reading)); }
};
+class QMagnetometerPrivate;
+
class Q_SENSORS_EXPORT QMagnetometer : public QSensor
{
Q_OBJECT
-#ifdef Q_QDOC
- Q_PROPERTY(bool returnGeoValues)
-#endif
+ Q_PROPERTY(bool returnGeoValues READ returnGeoValues WRITE setReturnGeoValues NOTIFY returnGeoValuesChanged)
public:
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);
+
+Q_SIGNALS:
+ void returnGeoValuesChanged(bool returnGeoValues);
+
private:
+ Q_DECLARE_PRIVATE(QMagnetometer)
Q_DISABLE_COPY(QMagnetometer)
};
diff --git a/src/sensors/qmagnetometer_p.h b/src/sensors/qmagnetometer_p.h
index 9ac824c1..3c38e6c8 100644
--- a/src/sensors/qmagnetometer_p.h
+++ b/src/sensors/qmagnetometer_p.h
@@ -53,8 +53,21 @@
// We mean it.
//
+#include "qsensor_p.h"
+
QT_BEGIN_NAMESPACE
+class QMagnetometerPrivate : public QSensorPrivate
+{
+public:
+ QMagnetometerPrivate()
+ : returnGeoValues(false)
+ {
+ }
+
+ bool returnGeoValues;
+};
+
class QMagnetometerReadingPrivate
{
public: