summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>2013-02-01 10:10:43 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-08 11:17:43 +0100
commita3f4766964022ff0dc7ea0832922c2a58ab47e82 (patch)
treea67921991d305274ac3e9c9d238de63fb19bf52e /src
parentb974efa5ca4306b1b9474207317ade4da33bdbc9 (diff)
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.qmltypes4
-rw-r--r--src/imports/sensors/qmltapsensor.cpp8
-rw-r--r--src/imports/sensors/qmltapsensor.h3
-rw-r--r--src/sensors/qtapsensor.cpp18
-rw-r--r--src/sensors/qtapsensor.h14
-rw-r--r--src/sensors/qtapsensor_p.h13
6 files changed, 49 insertions, 11 deletions
diff --git a/src/imports/sensors/plugins.qmltypes b/src/imports/sensors/plugins.qmltypes
index 88f61f9e..86ba0ad0 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 65afcb59..8877b0b0 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 234af271..b0c2fa5c 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 bd65196b..23ec492f 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 af19e59f..f44609b1 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 bc2b8e98..6bf81473 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