diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2013-02-01 10:10:43 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-08 11:17:43 +0100 |
commit | a3f4766964022ff0dc7ea0832922c2a58ab47e82 (patch) | |
tree | a67921991d305274ac3e9c9d238de63fb19bf52e /src | |
parent | b974efa5ca4306b1b9474207317ade4da33bdbc9 (diff) | |
download | qtsensors-a3f4766964022ff0dc7ea0832922c2a58ab47e82.tar.gz |
Convert QTapSensor::returnDoubleTapEvents to a proper property
Change-Id: I62f626a8df765a50815f3b275da8b858cb24a30d
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/sensors/plugins.qmltypes | 4 | ||||
-rw-r--r-- | src/imports/sensors/qmltapsensor.cpp | 8 | ||||
-rw-r--r-- | src/imports/sensors/qmltapsensor.h | 3 | ||||
-rw-r--r-- | src/sensors/qtapsensor.cpp | 18 | ||||
-rw-r--r-- | src/sensors/qtapsensor.h | 14 | ||||
-rw-r--r-- | src/sensors/qtapsensor_p.h | 13 |
6 files changed, 49 insertions, 11 deletions
diff --git a/src/imports/sensors/plugins.qmltypes b/src/imports/sensors/plugins.qmltypes index 88f61f9..86ba0ad 100644 --- a/src/imports/sensors/plugins.qmltypes +++ b/src/imports/sensors/plugins.qmltypes @@ -285,6 +285,10 @@ Module { prototype: "QmlSensor" exports: ["TapSensor 5.0", "TapSensor 5.1"] Property { name: "returnDoubleTapEvents"; type: "bool" } + Signal { + name: "returnDoubleTapEventsChanged" + Parameter { name: "returnDoubleTapEvents"; type: "bool" } + } } Component { name: "QmlTapSensorReading" diff --git a/src/imports/sensors/qmltapsensor.cpp b/src/imports/sensors/qmltapsensor.cpp index 65afcb5..8877b0b 100644 --- a/src/imports/sensors/qmltapsensor.cpp +++ b/src/imports/sensors/qmltapsensor.cpp @@ -65,6 +65,8 @@ QmlTapSensor::QmlTapSensor(QObject *parent) : QmlSensor(parent) , m_sensor(new QTapSensor(this)) { + connect(m_sensor, SIGNAL(returnDoubleTapEventsChanged(bool)), + this, SIGNAL(returnDoubleTapEventsChanged(bool))); } QmlTapSensor::~QmlTapSensor() @@ -90,14 +92,12 @@ QSensor *QmlTapSensor::sensor() const bool QmlTapSensor::returnDoubleTapEvents() const { - return m_sensor->property("returnDoubleTapEvents").toBool(); + return m_sensor->returnDoubleTapEvents(); } void QmlTapSensor::setReturnDoubleTapEvents(bool ret) { - if (m_sensor->property("returnDoubleTapEvents").toBool() == ret) return; - m_sensor->setProperty("returnDoubleTapEvents", ret); - Q_EMIT returnDoubleTapEventsChanged(); + m_sensor->setReturnDoubleTapEvents(ret); } /*! diff --git a/src/imports/sensors/qmltapsensor.h b/src/imports/sensors/qmltapsensor.h index 234af27..b0c2fa5 100644 --- a/src/imports/sensors/qmltapsensor.h +++ b/src/imports/sensors/qmltapsensor.h @@ -60,9 +60,8 @@ public: bool returnDoubleTapEvents() const; void setReturnDoubleTapEvents(bool ret); - Q_SIGNALS: - void returnDoubleTapEventsChanged(); + void returnDoubleTapEventsChanged(bool returnDoubleTapEvents); private: QSensor *sensor() const Q_DECL_OVERRIDE; diff --git a/src/sensors/qtapsensor.cpp b/src/sensors/qtapsensor.cpp index bd65196..23ec492 100644 --- a/src/sensors/qtapsensor.cpp +++ b/src/sensors/qtapsensor.cpp @@ -211,7 +211,7 @@ char const * const QTapSensor::type("QTapSensor"); Construct the sensor as a child of \a parent. */ QTapSensor::QTapSensor(QObject *parent) - : QSensor(QTapSensor::type, parent) + : QSensor(QTapSensor::type, *new QTapSensorPrivate, parent) { } @@ -240,10 +240,24 @@ QTapSensor::~QTapSensor() It is not possible to have the sensor report both single and double tap events. If both are needed the app should create 2 sensor objects. - Note that you must access this property via QObject::property() and QObject::setProperty(). The property must be set before calling start(). */ +bool QTapSensor::returnDoubleTapEvents() const +{ + Q_D(const QTapSensor); + return d->returnDoubleTapEvents; +} + +void QTapSensor::setReturnDoubleTapEvents(bool returnDoubleTapEvents) +{ + Q_D(QTapSensor); + if (d->returnDoubleTapEvents != returnDoubleTapEvents) { + d->returnDoubleTapEvents = returnDoubleTapEvents; + emit returnDoubleTapEventsChanged(returnDoubleTapEvents); + } +} + #include "moc_qtapsensor.cpp" QT_END_NAMESPACE diff --git a/src/sensors/qtapsensor.h b/src/sensors/qtapsensor.h index af19e59..f44609b 100644 --- a/src/sensors/qtapsensor.h +++ b/src/sensors/qtapsensor.h @@ -87,19 +87,27 @@ private: bool filter(QSensorReading *reading) { return filter(static_cast<QTapReading*>(reading)); } }; +class QTapSensorPrivate; + class Q_SENSORS_EXPORT QTapSensor : public QSensor { Q_OBJECT -#ifdef Q_QDOC - Q_PROPERTY(bool returnDoubleTapEvents) -#endif + Q_PROPERTY(bool returnDoubleTapEvents READ returnDoubleTapEvents WRITE setReturnDoubleTapEvents + NOTIFY returnDoubleTapEventsChanged) public: explicit QTapSensor(QObject *parent = 0); virtual ~QTapSensor(); QTapReading *reading() const { return static_cast<QTapReading*>(QSensor::reading()); } static char const * const type; + bool returnDoubleTapEvents() const; + void setReturnDoubleTapEvents(bool returnDoubleTapEvents); + +Q_SIGNALS: + void returnDoubleTapEventsChanged(bool returnDoubleTapEvents); + private: + Q_DECLARE_PRIVATE(QTapSensor); Q_DISABLE_COPY(QTapSensor); }; diff --git a/src/sensors/qtapsensor_p.h b/src/sensors/qtapsensor_p.h index bc2b8e9..6bf8147 100644 --- a/src/sensors/qtapsensor_p.h +++ b/src/sensors/qtapsensor_p.h @@ -53,6 +53,8 @@ // We mean it. // +#include "qsensor_p.h" + QT_BEGIN_NAMESPACE class QTapReadingPrivate @@ -68,6 +70,17 @@ public: bool doubleTap; }; +class QTapSensorPrivate : public QSensorPrivate +{ +public: + QTapSensorPrivate() + : returnDoubleTapEvents(true) + { + } + + bool returnDoubleTapEvents; +}; + QT_END_NAMESPACE #endif |