summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sensorsquick/qmlaccelerometer.cpp33
-rw-r--r--src/sensorsquick/qmlaccelerometer_p.h21
-rw-r--r--src/sensorsquick/qmlaltimeter.cpp12
-rw-r--r--src/sensorsquick/qmlaltimeter_p.h11
-rw-r--r--src/sensorsquick/qmlambientlightsensor.cpp11
-rw-r--r--src/sensorsquick/qmlambientlightsensor_p.h10
-rw-r--r--src/sensorsquick/qmlambienttemperaturesensor.cpp11
-rw-r--r--src/sensorsquick/qmlambienttemperaturesensor_p.h10
-rw-r--r--src/sensorsquick/qmlcompass.cpp22
-rw-r--r--src/sensorsquick/qmlcompass_p.h15
-rw-r--r--src/sensorsquick/qmldistancesensor.cpp12
-rw-r--r--src/sensorsquick/qmldistancesensor_p.h9
-rw-r--r--src/sensorsquick/qmlgyroscope.cpp33
-rw-r--r--src/sensorsquick/qmlgyroscope_p.h20
-rw-r--r--src/sensorsquick/qmlholstersensor.cpp11
-rw-r--r--src/sensorsquick/qmlholstersensor_p.h10
-rw-r--r--src/sensorsquick/qmlhumiditysensor.cpp22
-rw-r--r--src/sensorsquick/qmlhumiditysensor_p.h17
-rw-r--r--src/sensorsquick/qmlirproximitysensor.cpp12
-rw-r--r--src/sensorsquick/qmlirproximitysensor_p.h10
-rw-r--r--src/sensorsquick/qmllidsensor.cpp22
-rw-r--r--src/sensorsquick/qmllidsensor_p.h17
-rw-r--r--src/sensorsquick/qmllightsensor.cpp11
-rw-r--r--src/sensorsquick/qmllightsensor_p.h9
-rw-r--r--src/sensorsquick/qmlmagnetometer.cpp44
-rw-r--r--src/sensorsquick/qmlmagnetometer_p.h29
-rw-r--r--src/sensorsquick/qmlorientationsensor.cpp11
-rw-r--r--src/sensorsquick/qmlorientationsensor_p.h9
-rw-r--r--src/sensorsquick/qmlpressuresensor.cpp23
-rw-r--r--src/sensorsquick/qmlpressuresensor_p.h16
-rw-r--r--src/sensorsquick/qmlproximitysensor.cpp11
-rw-r--r--src/sensorsquick/qmlproximitysensor_p.h8
-rw-r--r--src/sensorsquick/qmlrotationsensor.cpp33
-rw-r--r--src/sensorsquick/qmlrotationsensor_p.h20
-rw-r--r--src/sensorsquick/qmlsensor.cpp22
-rw-r--r--src/sensorsquick/qmlsensor_p.h18
-rw-r--r--src/sensorsquick/qmltapsensor.cpp23
-rw-r--r--src/sensorsquick/qmltapsensor_p.h17
-rw-r--r--src/sensorsquick/qmltiltsensor.cpp22
-rw-r--r--src/sensorsquick/qmltiltsensor_p.h15
40 files changed, 418 insertions, 274 deletions
diff --git a/src/sensorsquick/qmlaccelerometer.cpp b/src/sensorsquick/qmlaccelerometer.cpp
index fc013837..2063ec69 100644
--- a/src/sensorsquick/qmlaccelerometer.cpp
+++ b/src/sensorsquick/qmlaccelerometer.cpp
@@ -139,6 +139,11 @@ qreal QmlAccelerometerReading::x() const
return m_x;
}
+QBindable<qreal> QmlAccelerometerReading::bindableX() const
+{
+ return &m_x;
+}
+
/*!
\qmlproperty qreal AccelerometerReading::y
This property holds the acceleration on the Y axis.
@@ -151,6 +156,11 @@ qreal QmlAccelerometerReading::y() const
return m_y;
}
+QBindable<qreal> QmlAccelerometerReading::bindableY() const
+{
+ return &m_y;
+}
+
/*!
\qmlproperty qreal AccelerometerReading::z
This property holds the acceleration on the Z axis.
@@ -163,6 +173,11 @@ qreal QmlAccelerometerReading::z() const
return m_z;
}
+QBindable<qreal> QmlAccelerometerReading::bindableZ() const
+{
+ return &m_z;
+}
+
QSensorReading *QmlAccelerometerReading::reading() const
{
return m_sensor->reading();
@@ -170,19 +185,7 @@ QSensorReading *QmlAccelerometerReading::reading() const
void QmlAccelerometerReading::readingUpdate()
{
- qreal aX = m_sensor->reading()->x();
- if (m_x != aX) {
- m_x = aX;
- Q_EMIT xChanged();
- }
- qreal aY = m_sensor->reading()->y();
- if (m_y != aY) {
- m_y = aY;
- Q_EMIT yChanged();
- }
- qreal aZ = m_sensor->reading()->z();
- if (m_z != aZ) {
- m_z = aZ;
- Q_EMIT zChanged();
- }
+ m_x = m_sensor->reading()->x();
+ m_y = m_sensor->reading()->y();
+ m_z = m_sensor->reading()->z();
}
diff --git a/src/sensorsquick/qmlaccelerometer_p.h b/src/sensorsquick/qmlaccelerometer_p.h
index 24a691d8..2a2e9e08 100644
--- a/src/sensorsquick/qmlaccelerometer_p.h
+++ b/src/sensorsquick/qmlaccelerometer_p.h
@@ -79,11 +79,12 @@ public:
AccelerationMode accelerationMode() const;
void setAccelerationMode(AccelerationMode accelerationMode);
+ QSensor *sensor() const override;
+
signals:
Q_REVISION(1) void accelerationModeChanged(AccelerationMode accelerationMode);
private:
- QSensor *sensor() const override;
QAccelerometer *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -91,9 +92,9 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlAccelerometerReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal x READ x NOTIFY xChanged)
- Q_PROPERTY(qreal y READ y NOTIFY yChanged)
- Q_PROPERTY(qreal z READ z NOTIFY zChanged)
+ Q_PROPERTY(qreal x READ x NOTIFY xChanged BINDABLE bindableX)
+ Q_PROPERTY(qreal y READ y NOTIFY yChanged BINDABLE bindableY)
+ Q_PROPERTY(qreal z READ z NOTIFY zChanged BINDABLE bindableZ)
QML_NAMED_ELEMENT(AccelerometerReading)
QML_UNCREATABLE("Cannot create AccelerometerReading")
QML_ADDED_IN_VERSION(5,0)
@@ -102,8 +103,11 @@ public:
~QmlAccelerometerReading();
qreal x() const;
+ QBindable<qreal> bindableX() const;
qreal y() const;
+ QBindable<qreal> bindableY() const;
qreal z() const;
+ QBindable<qreal> bindableZ() const;
Q_SIGNALS:
void xChanged();
@@ -114,9 +118,12 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QAccelerometer *m_sensor;
- qreal m_x;
- qreal m_y;
- qreal m_z;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlAccelerometerReading, qreal,
+ m_x, &QmlAccelerometerReading::xChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlAccelerometerReading, qreal,
+ m_y, &QmlAccelerometerReading::yChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlAccelerometerReading, qreal,
+ m_z, &QmlAccelerometerReading::zChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlaltimeter.cpp b/src/sensorsquick/qmlaltimeter.cpp
index 8ee3ccde..fe0177db 100644
--- a/src/sensorsquick/qmlaltimeter.cpp
+++ b/src/sensorsquick/qmlaltimeter.cpp
@@ -96,7 +96,6 @@ QSensor *QmlAltimeter::sensor() const
QmlAltimeterReading::QmlAltimeterReading(QAltimeter *sensor)
: QmlSensorReading(sensor)
, m_sensor(sensor)
- , m_altitude(0)
{
}
@@ -116,6 +115,11 @@ qreal QmlAltimeterReading::altitude() const
return m_altitude;
}
+QBindable<qreal> QmlAltimeterReading::bindableAltitude() const
+{
+ return &m_altitude;
+}
+
QSensorReading *QmlAltimeterReading::reading() const
{
return m_sensor->reading();
@@ -123,9 +127,5 @@ QSensorReading *QmlAltimeterReading::reading() const
void QmlAltimeterReading::readingUpdate()
{
- qreal altitude = m_sensor->reading()->altitude();
- if (m_altitude != altitude) {
- m_altitude = altitude;
- Q_EMIT altitudeChanged();
- }
+ m_altitude = m_sensor->reading()->altitude();
}
diff --git a/src/sensorsquick/qmlaltimeter_p.h b/src/sensorsquick/qmlaltimeter_p.h
index 322fbdfb..19f124cb 100644
--- a/src/sensorsquick/qmlaltimeter_p.h
+++ b/src/sensorsquick/qmlaltimeter_p.h
@@ -65,17 +65,18 @@ public:
explicit QmlAltimeter(QObject *parent = 0);
~QmlAltimeter();
-private:
QSensor *sensor() const override;
- QmlSensorReading *createReading() const override;
+private:
+ QmlSensorReading *createReading() const override;
QAltimeter *m_sensor;
};
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlAltimeterReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal altitude READ altitude NOTIFY altitudeChanged)
+ Q_PROPERTY(qreal altitude READ altitude
+ NOTIFY altitudeChanged BINDABLE bindableAltitude)
QML_NAMED_ELEMENT(AltimeterReading)
QML_UNCREATABLE("Cannot create AltimeterReading")
QML_ADDED_IN_VERSION(5,1)
@@ -84,6 +85,7 @@ public:
~QmlAltimeterReading();
qreal altitude() const;
+ QBindable<qreal> bindableAltitude() const;
Q_SIGNALS:
void altitudeChanged();
@@ -93,7 +95,8 @@ private:
void readingUpdate() override;
QAltimeter *m_sensor;
- qreal m_altitude;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlAltimeterReading, qreal,
+ m_altitude, &QmlAltimeterReading::altitudeChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlambientlightsensor.cpp b/src/sensorsquick/qmlambientlightsensor.cpp
index a114f8b3..6854baf7 100644
--- a/src/sensorsquick/qmlambientlightsensor.cpp
+++ b/src/sensorsquick/qmlambientlightsensor.cpp
@@ -126,6 +126,11 @@ QAmbientLightReading::LightLevel QmlAmbientLightSensorReading::lightLevel() cons
return m_lightLevel;
}
+QBindable<QAmbientLightReading::LightLevel> QmlAmbientLightSensorReading::bindableLightLevel() const
+{
+ return &m_lightLevel;
+}
+
QSensorReading *QmlAmbientLightSensorReading::reading() const
{
return m_sensor->reading();
@@ -133,9 +138,5 @@ QSensorReading *QmlAmbientLightSensorReading::reading() const
void QmlAmbientLightSensorReading::readingUpdate()
{
- QAmbientLightReading::LightLevel ll = m_sensor->reading()->lightLevel();
- if (m_lightLevel != ll) {
- m_lightLevel = ll;
- Q_EMIT lightLevelChanged();
- }
+ m_lightLevel = m_sensor->reading()->lightLevel();
}
diff --git a/src/sensorsquick/qmlambientlightsensor_p.h b/src/sensorsquick/qmlambientlightsensor_p.h
index 356a1128..f920fe58 100644
--- a/src/sensorsquick/qmlambientlightsensor_p.h
+++ b/src/sensorsquick/qmlambientlightsensor_p.h
@@ -67,8 +67,9 @@ public:
explicit QmlAmbientLightSensor(QObject *parent = 0);
~QmlAmbientLightSensor();
-private:
QSensor *sensor() const override;
+
+private:
QAmbientLightSensor *m_sensor;
QmlSensorReading *createReading() const override;
@@ -77,7 +78,8 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlAmbientLightSensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(QAmbientLightReading::LightLevel lightLevel READ lightLevel NOTIFY lightLevelChanged)
+ Q_PROPERTY(QAmbientLightReading::LightLevel lightLevel READ lightLevel
+ NOTIFY lightLevelChanged BINDABLE bindableLightLevel)
QML_NAMED_ELEMENT(AmbientLightReading)
QML_UNCREATABLE("Cannot create AmbientLightReading")
QML_ADDED_IN_VERSION(5,0)
@@ -87,6 +89,7 @@ public:
~QmlAmbientLightSensorReading();
QAmbientLightReading::LightLevel lightLevel() const;
+ QBindable<QAmbientLightReading::LightLevel> bindableLightLevel() const;
Q_SIGNALS:
void lightLevelChanged();
@@ -95,7 +98,8 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QAmbientLightSensor *m_sensor;
- QAmbientLightReading::LightLevel m_lightLevel;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlAmbientLightSensorReading, QAmbientLightReading::LightLevel,
+ m_lightLevel, &QmlAmbientLightSensorReading::lightLevelChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlambienttemperaturesensor.cpp b/src/sensorsquick/qmlambienttemperaturesensor.cpp
index 3f1a4679..2dccfa38 100644
--- a/src/sensorsquick/qmlambienttemperaturesensor.cpp
+++ b/src/sensorsquick/qmlambienttemperaturesensor.cpp
@@ -116,6 +116,11 @@ qreal QmlAmbientTemperatureReading::temperature() const
return m_temperature;
}
+QBindable<qreal> QmlAmbientTemperatureReading::bindableTemperature() const
+{
+ return &m_temperature;
+}
+
QSensorReading *QmlAmbientTemperatureReading::reading() const
{
return m_sensor->reading();
@@ -123,9 +128,5 @@ QSensorReading *QmlAmbientTemperatureReading::reading() const
void QmlAmbientTemperatureReading::readingUpdate()
{
- const qreal temperature = m_sensor->reading()->temperature();
- if (m_temperature != temperature) {
- m_temperature = temperature;
- Q_EMIT temperatureChanged();
- }
+ m_temperature = m_sensor->reading()->temperature();
}
diff --git a/src/sensorsquick/qmlambienttemperaturesensor_p.h b/src/sensorsquick/qmlambienttemperaturesensor_p.h
index 45183ee7..39608ad5 100644
--- a/src/sensorsquick/qmlambienttemperaturesensor_p.h
+++ b/src/sensorsquick/qmlambienttemperaturesensor_p.h
@@ -65,8 +65,9 @@ public:
explicit QmlAmbientTemperatureSensor(QObject *parent = 0);
~QmlAmbientTemperatureSensor();
-private:
QSensor *sensor() const override;
+
+private:
QmlSensorReading *createReading() const override;
QAmbientTemperatureSensor *m_sensor;
@@ -75,7 +76,8 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlAmbientTemperatureReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal temperature READ temperature NOTIFY temperatureChanged)
+ Q_PROPERTY(qreal temperature READ temperature
+ NOTIFY temperatureChanged BINDABLE bindableTemperature)
QML_NAMED_ELEMENT(AmbientTemperatureReading)
QML_UNCREATABLE("Cannot create AmbientTemperatureReading")
QML_ADDED_IN_VERSION(5,1)
@@ -84,6 +86,7 @@ public:
~QmlAmbientTemperatureReading();
qreal temperature() const;
+ QBindable<qreal> bindableTemperature() const;
Q_SIGNALS:
void temperatureChanged();
@@ -93,7 +96,8 @@ private:
void readingUpdate() override;
QAmbientTemperatureSensor *m_sensor;
- qreal m_temperature;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlAmbientTemperatureReading, qreal,
+ m_temperature, &QmlAmbientTemperatureReading::temperatureChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlcompass.cpp b/src/sensorsquick/qmlcompass.cpp
index b3620d6c..c1c110d1 100644
--- a/src/sensorsquick/qmlcompass.cpp
+++ b/src/sensorsquick/qmlcompass.cpp
@@ -116,6 +116,11 @@ qreal QmlCompassReading::azimuth() const
return m_azimuth;
}
+QBindable<qreal> QmlCompassReading::bindableAzimuth() const
+{
+ return &m_azimuth;
+}
+
/*!
\qmlproperty qreal CompassReading::calibrationLevel
This property holds the calibration level of the reading.
@@ -128,6 +133,11 @@ qreal QmlCompassReading::calibrationLevel() const
return m_calibrationLevel;
}
+QBindable<qreal> QmlCompassReading::bindableCalibrationLevel() const
+{
+ return &m_calibrationLevel;
+}
+
QSensorReading *QmlCompassReading::reading() const
{
return m_sensor->reading();
@@ -135,14 +145,6 @@ QSensorReading *QmlCompassReading::reading() const
void QmlCompassReading::readingUpdate()
{
- qreal azm = m_sensor->reading()->azimuth();
- if (m_azimuth != azm) {
- m_azimuth = azm;
- Q_EMIT azimuthChanged();
- }
- qreal calLevel = m_sensor->reading()->calibrationLevel();
- if (m_calibrationLevel != calLevel) {
- m_calibrationLevel = calLevel;
- Q_EMIT calibrationLevelChanged();
- }
+ m_azimuth = m_sensor->reading()->azimuth();
+ m_calibrationLevel = m_sensor->reading()->calibrationLevel();
}
diff --git a/src/sensorsquick/qmlcompass_p.h b/src/sensorsquick/qmlcompass_p.h
index 42c1b15c..af0777bc 100644
--- a/src/sensorsquick/qmlcompass_p.h
+++ b/src/sensorsquick/qmlcompass_p.h
@@ -66,9 +66,9 @@ public:
explicit QmlCompass(QObject *parent = 0);
~QmlCompass();
+ QSensor *sensor() const override;
private:
- QSensor *sensor() const override;
QCompass *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -76,8 +76,9 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlCompassReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal azimuth READ azimuth NOTIFY azimuthChanged)
- Q_PROPERTY(qreal calibrationLevel READ calibrationLevel NOTIFY calibrationLevelChanged)
+ Q_PROPERTY(qreal azimuth READ azimuth NOTIFY azimuthChanged BINDABLE bindableAzimuth)
+ Q_PROPERTY(qreal calibrationLevel READ calibrationLevel
+ NOTIFY calibrationLevelChanged BINDABLE bindableCalibrationLevel)
QML_NAMED_ELEMENT(CompassReading)
QML_UNCREATABLE("Cannot create CompassReading")
QML_ADDED_IN_VERSION(5,0)
@@ -86,7 +87,9 @@ public:
~QmlCompassReading();
qreal azimuth() const;
+ QBindable<qreal> bindableAzimuth() const;
qreal calibrationLevel() const;
+ QBindable<qreal> bindableCalibrationLevel() const;
Q_SIGNALS:
void azimuthChanged();
@@ -96,8 +99,10 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QCompass *m_sensor;
- qreal m_azimuth;
- qreal m_calibrationLevel;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlCompassReading, qreal,
+ m_azimuth, &QmlCompassReading::azimuthChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlCompassReading, qreal,
+ m_calibrationLevel, &QmlCompassReading::calibrationLevelChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmldistancesensor.cpp b/src/sensorsquick/qmldistancesensor.cpp
index b1d9f6bb..8d48ece9 100644
--- a/src/sensorsquick/qmldistancesensor.cpp
+++ b/src/sensorsquick/qmldistancesensor.cpp
@@ -116,6 +116,12 @@ qreal QmlDistanceReading::distance() const
return m_distance;
}
+QBindable<qreal> QmlDistanceReading::bindableDistance() const
+{
+ return &m_distance;
+}
+
+
QSensorReading *QmlDistanceReading::reading() const
{
return m_sensor->reading();
@@ -123,9 +129,5 @@ QSensorReading *QmlDistanceReading::reading() const
void QmlDistanceReading::readingUpdate()
{
- qreal distance = m_sensor->reading()->distance();
- if (m_distance != distance) {
- m_distance = distance;
- Q_EMIT distanceChanged();
- }
+ m_distance = m_sensor->reading()->distance();
}
diff --git a/src/sensorsquick/qmldistancesensor_p.h b/src/sensorsquick/qmldistancesensor_p.h
index 1f9d9425..9692a997 100644
--- a/src/sensorsquick/qmldistancesensor_p.h
+++ b/src/sensorsquick/qmldistancesensor_p.h
@@ -66,8 +66,9 @@ public:
explicit QmlDistanceSensor(QObject *parent = 0);
~QmlDistanceSensor();
-private:
QSensor *sensor() const override;
+
+private:
QmlSensorReading *createReading() const override;
QDistanceSensor *m_sensor;
@@ -76,7 +77,7 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlDistanceReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal distance READ distance NOTIFY distanceChanged)
+ Q_PROPERTY(qreal distance READ distance NOTIFY distanceChanged BINDABLE bindableDistance)
QML_NAMED_ELEMENT(DistanceReading)
QML_UNCREATABLE("Cannot create DistanceReading")
QML_ADDED_IN_VERSION(5,4)
@@ -85,6 +86,7 @@ public:
~QmlDistanceReading();
qreal distance() const;
+ QBindable<qreal> bindableDistance() const;
Q_SIGNALS:
void distanceChanged();
@@ -94,7 +96,8 @@ private:
void readingUpdate() override;
QDistanceSensor *m_sensor;
- qreal m_distance;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlDistanceReading, qreal,
+ m_distance, &QmlDistanceReading::distanceChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlgyroscope.cpp b/src/sensorsquick/qmlgyroscope.cpp
index 9983564a..2db7a67f 100644
--- a/src/sensorsquick/qmlgyroscope.cpp
+++ b/src/sensorsquick/qmlgyroscope.cpp
@@ -115,6 +115,11 @@ qreal QmlGyroscopeReading::x() const
return m_x;
}
+QBindable<qreal> QmlGyroscopeReading::bindableX() const
+{
+ return &m_x;
+}
+
/*!
\qmlproperty qreal GyroscopeReading::y
This property holds the angular velocity around the y axis.
@@ -127,6 +132,11 @@ qreal QmlGyroscopeReading::y() const
return m_y;
}
+QBindable<qreal> QmlGyroscopeReading::bindableY() const
+{
+ return &m_y;
+}
+
/*!
\qmlproperty qreal GyroscopeReading::z
This property holds the angular velocity around the z axis.
@@ -139,6 +149,11 @@ qreal QmlGyroscopeReading::z() const
return m_z;
}
+QBindable<qreal> QmlGyroscopeReading::bindableZ() const
+{
+ return &m_z;
+}
+
QSensorReading *QmlGyroscopeReading::reading() const
{
return m_sensor->reading();
@@ -146,19 +161,7 @@ QSensorReading *QmlGyroscopeReading::reading() const
void QmlGyroscopeReading::readingUpdate()
{
- qreal gx = m_sensor->reading()->x();
- if (m_x != gx) {
- m_x = gx;
- Q_EMIT xChanged();
- }
- qreal gy = m_sensor->reading()->y();
- if (m_y != gy) {
- m_y = gy;
- Q_EMIT yChanged();
- }
- qreal gz = m_sensor->reading()->z();
- if (m_z != gz) {
- m_z = gz;
- Q_EMIT zChanged();
- }
+ m_x = m_sensor->reading()->x();
+ m_y = m_sensor->reading()->y();
+ m_z = m_sensor->reading()->z();
}
diff --git a/src/sensorsquick/qmlgyroscope_p.h b/src/sensorsquick/qmlgyroscope_p.h
index 549a67e4..a3fed868 100644
--- a/src/sensorsquick/qmlgyroscope_p.h
+++ b/src/sensorsquick/qmlgyroscope_p.h
@@ -66,9 +66,9 @@ public:
explicit QmlGyroscope(QObject *parent = 0);
~QmlGyroscope();
+ QSensor *sensor() const override;
private:
- QSensor *sensor() const override;
QGyroscope *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -76,9 +76,9 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlGyroscopeReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal x READ x NOTIFY xChanged)
- Q_PROPERTY(qreal y READ y NOTIFY yChanged)
- Q_PROPERTY(qreal z READ z NOTIFY zChanged)
+ Q_PROPERTY(qreal x READ x NOTIFY xChanged BINDABLE bindableX)
+ Q_PROPERTY(qreal y READ y NOTIFY yChanged BINDABLE bindableY)
+ Q_PROPERTY(qreal z READ z NOTIFY zChanged BINDABLE bindableZ)
QML_NAMED_ELEMENT(GyroscopeReading)
QML_UNCREATABLE("Cannot create GyroscopeReading")
QML_ADDED_IN_VERSION(5,0)
@@ -87,8 +87,11 @@ public:
~QmlGyroscopeReading();
qreal x() const;
+ QBindable<qreal> bindableX() const;
qreal y() const;
+ QBindable<qreal> bindableY() const;
qreal z() const;
+ QBindable<qreal> bindableZ() const;
Q_SIGNALS:
void xChanged();
@@ -99,9 +102,12 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QGyroscope *m_sensor;
- qreal m_x;
- qreal m_y;
- qreal m_z;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlGyroscopeReading, qreal,
+ m_x, &QmlGyroscopeReading::xChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlGyroscopeReading, qreal,
+ m_y, &QmlGyroscopeReading::yChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlGyroscopeReading, qreal,
+ m_z, &QmlGyroscopeReading::zChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlholstersensor.cpp b/src/sensorsquick/qmlholstersensor.cpp
index cdefd683..d1b8863c 100644
--- a/src/sensorsquick/qmlholstersensor.cpp
+++ b/src/sensorsquick/qmlholstersensor.cpp
@@ -116,6 +116,11 @@ bool QmlHolsterReading::holstered() const
return m_holstered;
}
+QBindable<bool> QmlHolsterReading::bindableHolstered() const
+{
+ return &m_holstered;
+}
+
QSensorReading *QmlHolsterReading::reading() const
{
return m_sensor->reading();
@@ -123,9 +128,5 @@ QSensorReading *QmlHolsterReading::reading() const
void QmlHolsterReading::readingUpdate()
{
- const bool holstered = m_sensor->reading()->holstered();
- if (m_holstered != holstered) {
- m_holstered = holstered;
- Q_EMIT holsteredChanged();
- }
+ m_holstered = m_sensor->reading()->holstered();
}
diff --git a/src/sensorsquick/qmlholstersensor_p.h b/src/sensorsquick/qmlholstersensor_p.h
index a64e2d12..39803764 100644
--- a/src/sensorsquick/qmlholstersensor_p.h
+++ b/src/sensorsquick/qmlholstersensor_p.h
@@ -65,8 +65,9 @@ public:
explicit QmlHolsterSensor(QObject *parent = 0);
~QmlHolsterSensor();
-private:
QSensor *sensor() const override;
+
+private:
QmlSensorReading *createReading() const override;
QHolsterSensor *m_sensor;
@@ -75,7 +76,8 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlHolsterReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(bool holstered READ holstered NOTIFY holsteredChanged)
+ Q_PROPERTY(bool holstered READ holstered
+ NOTIFY holsteredChanged BINDABLE bindableHolstered)
QML_NAMED_ELEMENT(HolsterReading)
QML_UNCREATABLE("Cannot create HolsterReading")
QML_ADDED_IN_VERSION(5,1)
@@ -84,6 +86,7 @@ public:
~QmlHolsterReading();
bool holstered() const;
+ QBindable<bool> bindableHolstered() const;
Q_SIGNALS:
void holsteredChanged();
@@ -93,7 +96,8 @@ private:
void readingUpdate() override;
QHolsterSensor *m_sensor;
- bool m_holstered;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlHolsterReading, bool,
+ m_holstered, &QmlHolsterReading::holsteredChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlhumiditysensor.cpp b/src/sensorsquick/qmlhumiditysensor.cpp
index 37bf7a18..4715789c 100644
--- a/src/sensorsquick/qmlhumiditysensor.cpp
+++ b/src/sensorsquick/qmlhumiditysensor.cpp
@@ -118,6 +118,11 @@ qreal QmlHumidityReading::relativeHumidity() const
return m_relativeHumidity;
}
+QBindable<qreal> QmlHumidityReading::bindableRelativeHumidity() const
+{
+ return &m_relativeHumidity;
+}
+
/*!
\qmlproperty qreal HumidityReading::absoluteHumidity
This property holds the absolute humidity in grams per cubic meter (g/m3).
@@ -130,6 +135,11 @@ qreal QmlHumidityReading::absoluteHumidity() const
return m_absoluteHumidity;
}
+QBindable<qreal> QmlHumidityReading::bindableAbsoluteHumidity() const
+{
+ return &m_absoluteHumidity;
+}
+
QSensorReading *QmlHumidityReading::reading() const
{
return m_sensor->reading();
@@ -137,14 +147,6 @@ QSensorReading *QmlHumidityReading::reading() const
void QmlHumidityReading::readingUpdate()
{
- qreal humidity = m_sensor->reading()->relativeHumidity();
- if (m_relativeHumidity != humidity) {
- m_relativeHumidity = humidity;
- Q_EMIT relativeHumidityChanged();
- }
- qreal abs = m_sensor->reading()->absoluteHumidity();
- if (m_absoluteHumidity != abs) {
- m_absoluteHumidity = abs;
- Q_EMIT absoluteHumidityChanged();
- }
+ m_relativeHumidity = m_sensor->reading()->relativeHumidity();
+ m_absoluteHumidity = m_sensor->reading()->absoluteHumidity();
}
diff --git a/src/sensorsquick/qmlhumiditysensor_p.h b/src/sensorsquick/qmlhumiditysensor_p.h
index 40c49339..08083d90 100644
--- a/src/sensorsquick/qmlhumiditysensor_p.h
+++ b/src/sensorsquick/qmlhumiditysensor_p.h
@@ -67,8 +67,9 @@ public:
explicit QmlHumiditySensor(QObject *parent = nullptr);
~QmlHumiditySensor();
-private:
QSensor *sensor() const override;
+
+private:
QmlSensorReading *createReading() const override;
QHumiditySensor *m_sensor;
@@ -77,8 +78,10 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlHumidityReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal relativeHumidity READ relativeHumidity NOTIFY relativeHumidityChanged)
- Q_PROPERTY(qreal absoluteHumidity READ absoluteHumidity NOTIFY absoluteHumidityChanged)
+ Q_PROPERTY(qreal relativeHumidity READ relativeHumidity
+ NOTIFY relativeHumidityChanged BINDABLE bindableRelativeHumidity)
+ Q_PROPERTY(qreal absoluteHumidity READ absoluteHumidity
+ NOTIFY absoluteHumidityChanged BINDABLE bindableAbsoluteHumidity)
QML_NAMED_ELEMENT(HumidityReading)
QML_UNCREATABLE("Cannot create HumidityReading")
QML_ADDED_IN_VERSION(5,9)
@@ -87,7 +90,9 @@ public:
~QmlHumidityReading();
qreal relativeHumidity() const;
+ QBindable<qreal> bindableRelativeHumidity() const;
qreal absoluteHumidity() const;
+ QBindable<qreal> bindableAbsoluteHumidity() const;
Q_SIGNALS:
void relativeHumidityChanged();
@@ -98,8 +103,10 @@ private:
void readingUpdate() override;
QHumiditySensor *m_sensor;
- qreal m_relativeHumidity;
- qreal m_absoluteHumidity;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlHumidityReading, qreal,
+ m_relativeHumidity, &QmlHumidityReading::relativeHumidityChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlHumidityReading, qreal,
+ m_absoluteHumidity, &QmlHumidityReading::absoluteHumidityChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlirproximitysensor.cpp b/src/sensorsquick/qmlirproximitysensor.cpp
index 42e9cfe9..9623377a 100644
--- a/src/sensorsquick/qmlirproximitysensor.cpp
+++ b/src/sensorsquick/qmlirproximitysensor.cpp
@@ -114,6 +114,12 @@ qreal QmlIRProximitySensorReading::reflectance() const
return m_reflectance;
}
+QBindable<qreal> QmlIRProximitySensorReading::bindableReflectance() const
+{
+ return &m_reflectance;
+}
+
+
QSensorReading *QmlIRProximitySensorReading::reading() const
{
return m_sensor->reading();
@@ -121,9 +127,5 @@ QSensorReading *QmlIRProximitySensorReading::reading() const
void QmlIRProximitySensorReading::readingUpdate()
{
- qreal fl = m_sensor->reading()->reflectance();
- if (m_reflectance != fl) {
- m_reflectance = fl;
- Q_EMIT reflectanceChanged();
- }
+ m_reflectance = m_sensor->reading()->reflectance();
}
diff --git a/src/sensorsquick/qmlirproximitysensor_p.h b/src/sensorsquick/qmlirproximitysensor_p.h
index 6039794d..e67f6b78 100644
--- a/src/sensorsquick/qmlirproximitysensor_p.h
+++ b/src/sensorsquick/qmlirproximitysensor_p.h
@@ -66,8 +66,9 @@ public:
explicit QmlIRProximitySensor(QObject *parent = 0);
~QmlIRProximitySensor();
-private:
QSensor *sensor() const override;
+
+private:
QIRProximitySensor *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -75,7 +76,8 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlIRProximitySensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal reflectance READ reflectance NOTIFY reflectanceChanged)
+ Q_PROPERTY(qreal reflectance READ reflectance
+ NOTIFY reflectanceChanged BINDABLE bindableReflectance)
QML_NAMED_ELEMENT(IRProximityReading)
QML_UNCREATABLE("Cannot create IRProximityReading")
QML_ADDED_IN_VERSION(5,0)
@@ -84,6 +86,7 @@ public:
~QmlIRProximitySensorReading();
qreal reflectance() const;
+ QBindable<qreal> bindableReflectance() const;
Q_SIGNALS:
void reflectanceChanged();
@@ -92,7 +95,8 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QIRProximitySensor *m_sensor;
- qreal m_reflectance;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlIRProximitySensorReading, qreal,
+ m_reflectance, &QmlIRProximitySensorReading::reflectanceChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmllidsensor.cpp b/src/sensorsquick/qmllidsensor.cpp
index 698c03cc..68d92181 100644
--- a/src/sensorsquick/qmllidsensor.cpp
+++ b/src/sensorsquick/qmllidsensor.cpp
@@ -117,6 +117,11 @@ bool QmlLidReading::backLidClosed() const
return m_backClosed;
}
+QBindable<bool> QmlLidReading::bindableBackLidClosed() const
+{
+ return &m_backClosed;
+}
+
/*!
\qmlproperty qreal LidReading::frontLidClosed
This property holds whether the front lid is closed.
@@ -129,6 +134,11 @@ bool QmlLidReading::frontLidClosed() const
return m_frontClosed;
}
+QBindable<bool> QmlLidReading::bindableFrontLidClosed() const
+{
+ return &m_frontClosed;
+}
+
QSensorReading *QmlLidReading::reading() const
{
return m_sensor->reading();
@@ -136,14 +146,6 @@ QSensorReading *QmlLidReading::reading() const
void QmlLidReading::readingUpdate()
{
- const bool backClosed = m_sensor->reading()->backLidClosed();
- if (m_backClosed != backClosed) {
- m_backClosed = backClosed;
- Q_EMIT backLidChanged(m_backClosed);
- }
- const bool frontClosed = m_sensor->reading()->frontLidClosed();
- if (m_frontClosed != frontClosed) {
- m_frontClosed = frontClosed;
- Q_EMIT frontLidChanged(m_frontClosed);
- }
+ m_backClosed = m_sensor->reading()->backLidClosed();
+ m_frontClosed = m_sensor->reading()->frontLidClosed();
}
diff --git a/src/sensorsquick/qmllidsensor_p.h b/src/sensorsquick/qmllidsensor_p.h
index 99f6eba3..73242e0b 100644
--- a/src/sensorsquick/qmllidsensor_p.h
+++ b/src/sensorsquick/qmllidsensor_p.h
@@ -65,8 +65,9 @@ public:
explicit QmlLidSensor(QObject *parent = 0);
~QmlLidSensor();
-private:
QSensor *sensor() const override;
+
+private:
QmlSensorReading *createReading() const override;
QLidSensor *m_sensor;
@@ -75,8 +76,10 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlLidReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(bool backLidClosed READ backLidClosed NOTIFY backLidChanged)
- Q_PROPERTY(bool frontLidClosed READ frontLidClosed NOTIFY frontLidChanged)
+ Q_PROPERTY(bool backLidClosed READ backLidClosed
+ NOTIFY backLidChanged BINDABLE bindableBackLidClosed)
+ Q_PROPERTY(bool frontLidClosed READ frontLidClosed
+ NOTIFY frontLidChanged BINDABLE bindableFrontLidClosed)
QML_NAMED_ELEMENT(LidReading)
QML_UNCREATABLE("Cannot create LidReading")
QML_ADDED_IN_VERSION(5,9)
@@ -85,7 +88,9 @@ public:
~QmlLidReading();
bool backLidClosed() const;
+ QBindable<bool> bindableBackLidClosed() const;
bool frontLidClosed() const;
+ QBindable<bool> bindableFrontLidClosed() const;
Q_SIGNALS:
void backLidChanged(bool closed);
@@ -96,8 +101,10 @@ private:
void readingUpdate() override;
QLidSensor *m_sensor;
- bool m_backClosed;
- bool m_frontClosed;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlLidReading, bool,
+ m_backClosed, &QmlLidReading::backLidChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlLidReading, bool,
+ m_frontClosed, &QmlLidReading::frontLidChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmllightsensor.cpp b/src/sensorsquick/qmllightsensor.cpp
index f60390bf..2be7e1e0 100644
--- a/src/sensorsquick/qmllightsensor.cpp
+++ b/src/sensorsquick/qmllightsensor.cpp
@@ -130,6 +130,11 @@ qreal QmlLightSensorReading::illuminance() const
return m_illuminance;
}
+QBindable<qreal> QmlLightSensorReading::bindableIlluminance() const
+{
+ return &m_illuminance;
+}
+
QSensorReading *QmlLightSensorReading::reading() const
{
return m_sensor->reading();
@@ -137,9 +142,5 @@ QSensorReading *QmlLightSensorReading::reading() const
void QmlLightSensorReading::readingUpdate()
{
- qreal ill = m_sensor->reading()->lux();
- if (m_illuminance != ill) {
- m_illuminance = ill;
- Q_EMIT illuminanceChanged();
- }
+ m_illuminance = m_sensor->reading()->lux();
}
diff --git a/src/sensorsquick/qmllightsensor_p.h b/src/sensorsquick/qmllightsensor_p.h
index 137be444..66770349 100644
--- a/src/sensorsquick/qmllightsensor_p.h
+++ b/src/sensorsquick/qmllightsensor_p.h
@@ -68,12 +68,12 @@ public:
~QmlLightSensor();
qreal fieldOfView() const;
+ QSensor *sensor() const override;
Q_SIGNALS:
void fieldOfViewChanged(qreal fieldOfView);
private:
- QSensor *sensor() const override;
QLightSensor *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -81,7 +81,8 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlLightSensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal illuminance READ illuminance NOTIFY illuminanceChanged)
+ Q_PROPERTY(qreal illuminance READ illuminance
+ NOTIFY illuminanceChanged BINDABLE bindableIlluminance)
QML_NAMED_ELEMENT(LightReading)
QML_UNCREATABLE("Cannot create LightReading")
QML_ADDED_IN_VERSION(5,0)
@@ -90,6 +91,7 @@ public:
~QmlLightSensorReading();
qreal illuminance() const;
+ QBindable<qreal> bindableIlluminance() const;
Q_SIGNALS:
void illuminanceChanged();
@@ -98,7 +100,8 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QLightSensor *m_sensor;
- qreal m_illuminance;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlLightSensorReading, qreal,
+ m_illuminance, &QmlLightSensorReading::illuminanceChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlmagnetometer.cpp b/src/sensorsquick/qmlmagnetometer.cpp
index e911d583..f2d144a5 100644
--- a/src/sensorsquick/qmlmagnetometer.cpp
+++ b/src/sensorsquick/qmlmagnetometer.cpp
@@ -137,6 +137,11 @@ qreal QmlMagnetometerReading::x() const
return m_x;
}
+QBindable<qreal> QmlMagnetometerReading::bindableX() const
+{
+ return &m_x;
+}
+
/*!
\qmlproperty qreal MagnetometerReading::y
This property holds the raw magnetic flux density on the Y axis.
@@ -149,6 +154,11 @@ qreal QmlMagnetometerReading::y() const
return m_y;
}
+QBindable<qreal> QmlMagnetometerReading::bindableY() const
+{
+ return &m_y;
+}
+
/*!
\qmlproperty qreal MagnetometerReading::z
This property holds the raw magnetic flux density on the Z axis.
@@ -161,6 +171,11 @@ qreal QmlMagnetometerReading::z() const
return m_z;
}
+QBindable<qreal> QmlMagnetometerReading::bindableZ() const
+{
+ return &m_z;
+}
+
/*!
\qmlproperty qreal MagnetometerReading::calibrationLevel
This property holds the accuracy of the reading.
@@ -173,6 +188,11 @@ qreal QmlMagnetometerReading::calibrationLevel() const
return m_calibrationLevel;
}
+QBindable<qreal> QmlMagnetometerReading::bindableCalibrationLevel() const
+{
+ return &m_calibrationLevel;
+}
+
QSensorReading *QmlMagnetometerReading::reading() const
{
return m_sensor->reading();
@@ -180,24 +200,8 @@ QSensorReading *QmlMagnetometerReading::reading() const
void QmlMagnetometerReading::readingUpdate()
{
- qreal magX = m_sensor->reading()->x();
- if (m_x != magX) {
- m_x = magX;
- Q_EMIT xChanged();
- }
- qreal magY = m_sensor->reading()->y();
- if (m_y != magY) {
- m_y = magY;
- Q_EMIT yChanged();
- }
- qreal magZ = m_sensor->reading()->z();
- if (m_z != magZ) {
- m_z = magZ;
- Q_EMIT zChanged();
- }
- qreal calLevel = m_sensor->reading()->calibrationLevel();
- if (m_calibrationLevel != calLevel) {
- m_calibrationLevel = calLevel;
- Q_EMIT calibrationLevelChanged();
- }
+ m_x = m_sensor->reading()->x();
+ m_y = m_sensor->reading()->y();
+ m_z = m_sensor->reading()->z();
+ m_calibrationLevel= m_sensor->reading()->calibrationLevel();
}
diff --git a/src/sensorsquick/qmlmagnetometer_p.h b/src/sensorsquick/qmlmagnetometer_p.h
index ef30f6ff..36e41d56 100644
--- a/src/sensorsquick/qmlmagnetometer_p.h
+++ b/src/sensorsquick/qmlmagnetometer_p.h
@@ -70,11 +70,12 @@ public:
bool returnGeoValues() const;
void setReturnGeoValues(bool geo);
+ QSensor *sensor() const override;
+
Q_SIGNALS:
void returnGeoValuesChanged(bool returnGeoValues);
private:
- QSensor *sensor() const override;
QMagnetometer *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -82,10 +83,11 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlMagnetometerReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal x READ x NOTIFY xChanged)
- Q_PROPERTY(qreal y READ y NOTIFY yChanged)
- Q_PROPERTY(qreal z READ z NOTIFY zChanged)
- Q_PROPERTY(qreal calibrationLevel READ calibrationLevel NOTIFY calibrationLevelChanged)
+ Q_PROPERTY(qreal x READ x NOTIFY xChanged BINDABLE bindableX)
+ Q_PROPERTY(qreal y READ y NOTIFY yChanged BINDABLE bindableY)
+ Q_PROPERTY(qreal z READ z NOTIFY zChanged BINDABLE bindableZ)
+ Q_PROPERTY(qreal calibrationLevel READ calibrationLevel
+ NOTIFY calibrationLevelChanged BINDABLE bindableCalibrationLevel)
QML_NAMED_ELEMENT(MagnetometerReading)
QML_UNCREATABLE("Cannot create MagnetometerReading")
QML_ADDED_IN_VERSION(5,0)
@@ -94,9 +96,14 @@ public:
~QmlMagnetometerReading();
qreal x() const;
+ QBindable<qreal> bindableX() const;
qreal y() const;
+ QBindable<qreal> bindableY() const;
qreal z() const;
+ QBindable<qreal> bindableZ() const;
qreal calibrationLevel() const;
+ QBindable<qreal> bindableCalibrationLevel() const;
+
Q_SIGNALS:
void xChanged();
@@ -108,10 +115,14 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QMagnetometer *m_sensor;
- qreal m_x;
- qreal m_y;
- qreal m_z;
- qreal m_calibrationLevel;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlMagnetometerReading, qreal,
+ m_x, &QmlMagnetometerReading::xChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlMagnetometerReading, qreal,
+ m_y, &QmlMagnetometerReading::yChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlMagnetometerReading, qreal,
+ m_z, &QmlMagnetometerReading::zChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlMagnetometerReading, qreal,
+ m_calibrationLevel, &QmlMagnetometerReading::calibrationLevelChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlorientationsensor.cpp b/src/sensorsquick/qmlorientationsensor.cpp
index 0cf9cc19..c44df521 100644
--- a/src/sensorsquick/qmlorientationsensor.cpp
+++ b/src/sensorsquick/qmlorientationsensor.cpp
@@ -126,6 +126,11 @@ QOrientationReading::Orientation QmlOrientationSensorReading::orientation() cons
return m_orientation;
}
+QBindable<QOrientationReading::Orientation> QmlOrientationSensorReading::bindableOrientation() const
+{
+ return &m_orientation;
+}
+
QSensorReading *QmlOrientationSensorReading::reading() const
{
return m_sensor->reading();
@@ -133,9 +138,5 @@ QSensorReading *QmlOrientationSensorReading::reading() const
void QmlOrientationSensorReading::readingUpdate()
{
- QOrientationReading::Orientation o = m_sensor->reading()->orientation();
- if (m_orientation != o) {
- m_orientation = o;
- Q_EMIT orientationChanged();
- }
+ m_orientation = m_sensor->reading()->orientation();
}
diff --git a/src/sensorsquick/qmlorientationsensor_p.h b/src/sensorsquick/qmlorientationsensor_p.h
index 4b04b3e8..9077e338 100644
--- a/src/sensorsquick/qmlorientationsensor_p.h
+++ b/src/sensorsquick/qmlorientationsensor_p.h
@@ -67,9 +67,9 @@ public:
explicit QmlOrientationSensor(QObject *parent = 0);
~QmlOrientationSensor();
+ QSensor *sensor() const override;
private:
- QSensor *sensor() const override;
QOrientationSensor *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -77,7 +77,8 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlOrientationSensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(QOrientationReading::Orientation orientation READ orientation NOTIFY orientationChanged)
+ Q_PROPERTY(QOrientationReading::Orientation orientation READ orientation
+ NOTIFY orientationChanged BINDABLE bindableOrientation)
QML_NAMED_ELEMENT(OrientationReading)
QML_UNCREATABLE("Cannot create OrientationReading")
QML_ADDED_IN_VERSION(5,0)
@@ -87,6 +88,7 @@ public:
~QmlOrientationSensorReading();
QOrientationReading::Orientation orientation() const;
+ QBindable<QOrientationReading::Orientation> bindableOrientation() const;
Q_SIGNALS:
void orientationChanged();
@@ -95,7 +97,8 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QOrientationSensor *m_sensor;
- QOrientationReading::Orientation m_orientation;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlOrientationSensorReading, QOrientationReading::Orientation,
+ m_orientation, &QmlOrientationSensorReading::orientationChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlpressuresensor.cpp b/src/sensorsquick/qmlpressuresensor.cpp
index 08a434b0..054f089e 100644
--- a/src/sensorsquick/qmlpressuresensor.cpp
+++ b/src/sensorsquick/qmlpressuresensor.cpp
@@ -117,6 +117,11 @@ qreal QmlPressureReading::pressure() const
return m_pressure;
}
+QBindable<qreal> QmlPressureReading::bindablePressure() const
+{
+ return &m_pressure;
+}
+
/*!
\qmlproperty qreal PressureReading::temperature
This property holds the pressure sensor's temperature value in degrees Celsius.
@@ -130,6 +135,11 @@ qreal QmlPressureReading::temperature() const
return m_temperature;
}
+QBindable<qreal> QmlPressureReading::bindableTemperature() const
+{
+ return &m_temperature;
+}
+
QSensorReading *QmlPressureReading::reading() const
{
return m_sensor->reading();
@@ -137,15 +147,6 @@ QSensorReading *QmlPressureReading::reading() const
void QmlPressureReading::readingUpdate()
{
- qreal pressure = m_sensor->reading()->pressure();
- if (m_pressure != pressure) {
- m_pressure = pressure;
- Q_EMIT pressureChanged();
- }
-
- qreal temperature = m_sensor->reading()->temperature();
- if (m_temperature != temperature) {
- m_temperature = temperature;
- Q_EMIT temperatureChanged();
- }
+ m_pressure = m_sensor->reading()->pressure();
+ m_temperature = m_sensor->reading()->temperature();
}
diff --git a/src/sensorsquick/qmlpressuresensor_p.h b/src/sensorsquick/qmlpressuresensor_p.h
index b4b353d1..61e24a55 100644
--- a/src/sensorsquick/qmlpressuresensor_p.h
+++ b/src/sensorsquick/qmlpressuresensor_p.h
@@ -65,8 +65,9 @@ public:
explicit QmlPressureSensor(QObject *parent = 0);
~QmlPressureSensor();
-private:
QSensor *sensor() const override;
+
+private:
QmlSensorReading *createReading() const override;
QPressureSensor *m_sensor;
@@ -75,8 +76,9 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlPressureReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal pressure READ pressure NOTIFY pressureChanged)
- Q_PROPERTY(qreal temperature READ temperature NOTIFY temperatureChanged REVISION 1)
+ Q_PROPERTY(qreal pressure READ pressure NOTIFY pressureChanged BINDABLE bindablePressure)
+ Q_PROPERTY(qreal temperature READ temperature
+ NOTIFY temperatureChanged REVISION 1 BINDABLE bindableTemperature)
QML_NAMED_ELEMENT(PressureReading)
QML_UNCREATABLE("Cannot create PressureReading")
QML_ADDED_IN_VERSION(5,1)
@@ -85,7 +87,9 @@ public:
~QmlPressureReading();
qreal pressure() const;
+ QBindable<qreal> bindablePressure() const;
qreal temperature() const;
+ QBindable<qreal> bindableTemperature() const;
Q_SIGNALS:
void pressureChanged();
@@ -96,8 +100,10 @@ private:
void readingUpdate() override;
QPressureSensor *m_sensor;
- qreal m_pressure;
- qreal m_temperature;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlPressureReading, qreal,
+ m_pressure, &QmlPressureReading::pressureChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlPressureReading, qreal,
+ m_temperature, &QmlPressureReading::temperatureChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlproximitysensor.cpp b/src/sensorsquick/qmlproximitysensor.cpp
index 73767f64..fcf73452 100644
--- a/src/sensorsquick/qmlproximitysensor.cpp
+++ b/src/sensorsquick/qmlproximitysensor.cpp
@@ -116,6 +116,11 @@ bool QmlProximitySensorReading::near() const
return m_near;
}
+QBindable<bool> QmlProximitySensorReading::bindableNear() const
+{
+ return &m_near;
+}
+
QSensorReading *QmlProximitySensorReading::reading() const
{
return m_sensor->reading();
@@ -123,9 +128,5 @@ QSensorReading *QmlProximitySensorReading::reading() const
void QmlProximitySensorReading::readingUpdate()
{
- bool pNear = m_sensor->reading()->close();
- if (m_near != pNear) {
- m_near = pNear;
- Q_EMIT nearChanged();
- }
+ m_near = m_sensor->reading()->close();
}
diff --git a/src/sensorsquick/qmlproximitysensor_p.h b/src/sensorsquick/qmlproximitysensor_p.h
index 9d28dfcf..0eab0f8e 100644
--- a/src/sensorsquick/qmlproximitysensor_p.h
+++ b/src/sensorsquick/qmlproximitysensor_p.h
@@ -68,9 +68,9 @@ public:
explicit QmlProximitySensor(QObject *parent = 0);
~QmlProximitySensor();
+ QSensor *sensor() const override;
private:
- QSensor *sensor() const override;
QProximitySensor *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -78,7 +78,7 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlProximitySensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(bool near READ near NOTIFY nearChanged)
+ Q_PROPERTY(bool near READ near NOTIFY nearChanged BINDABLE bindableNear)
QML_NAMED_ELEMENT(ProximityReading)
QML_UNCREATABLE("Cannot create ProximityReading")
QML_ADDED_IN_VERSION(5,0)
@@ -87,6 +87,7 @@ public:
~QmlProximitySensorReading();
bool near() const;
+ QBindable<bool> bindableNear() const;
Q_SIGNALS:
void nearChanged();
@@ -95,7 +96,8 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QProximitySensor *m_sensor;
- bool m_near;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlProximitySensorReading, bool,
+ m_near, &QmlProximitySensorReading::nearChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlrotationsensor.cpp b/src/sensorsquick/qmlrotationsensor.cpp
index 4eb6aac7..71e77c01 100644
--- a/src/sensorsquick/qmlrotationsensor.cpp
+++ b/src/sensorsquick/qmlrotationsensor.cpp
@@ -135,6 +135,11 @@ qreal QmlRotationSensorReading::x() const
return m_x;
}
+QBindable<qreal> QmlRotationSensorReading::bindableX() const
+{
+ return &m_x;
+}
+
/*!
\qmlproperty qreal RotationReading::y
This property holds the rotation around the y axis.
@@ -147,6 +152,11 @@ qreal QmlRotationSensorReading::y() const
return m_y;
}
+QBindable<qreal> QmlRotationSensorReading::bindableY() const
+{
+ return &m_y;
+}
+
/*!
\qmlproperty qreal RotationReading::z
This property holds the rotation around the z axis.
@@ -159,6 +169,11 @@ qreal QmlRotationSensorReading::z() const
return m_z;
}
+QBindable<qreal> QmlRotationSensorReading::bindableZ() const
+{
+ return &m_z;
+}
+
QSensorReading *QmlRotationSensorReading::reading() const
{
return m_sensor->reading();
@@ -166,19 +181,7 @@ QSensorReading *QmlRotationSensorReading::reading() const
void QmlRotationSensorReading::readingUpdate()
{
- qreal rX = m_sensor->reading()->x();
- if (m_x != rX) {
- m_x = rX;
- Q_EMIT xChanged();
- }
- qreal rY = m_sensor->reading()->y();
- if (m_y != rY) {
- m_y = rY;
- Q_EMIT yChanged();
- }
- qreal rZ = m_sensor->reading()->z();
- if (m_z != rZ) {
- m_z = rZ;
- Q_EMIT zChanged();
- }
+ m_x = m_sensor->reading()->x();
+ m_y = m_sensor->reading()->y();
+ m_z = m_sensor->reading()->z();
}
diff --git a/src/sensorsquick/qmlrotationsensor_p.h b/src/sensorsquick/qmlrotationsensor_p.h
index f14ad791..a3799968 100644
--- a/src/sensorsquick/qmlrotationsensor_p.h
+++ b/src/sensorsquick/qmlrotationsensor_p.h
@@ -68,12 +68,12 @@ public:
~QmlRotationSensor();
bool hasZ() const;
+ QSensor *sensor() const override;
Q_SIGNALS:
void hasZChanged(bool hasZ);
private:
- QSensor *sensor() const override;
void _update() override;
QRotationSensor *m_sensor;
QmlSensorReading *createReading() const override;
@@ -82,9 +82,9 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlRotationSensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal x READ x NOTIFY xChanged)
- Q_PROPERTY(qreal y READ y NOTIFY yChanged)
- Q_PROPERTY(qreal z READ z NOTIFY zChanged)
+ Q_PROPERTY(qreal x READ x NOTIFY xChanged BINDABLE bindableX)
+ Q_PROPERTY(qreal y READ y NOTIFY yChanged BINDABLE bindableY)
+ Q_PROPERTY(qreal z READ z NOTIFY zChanged BINDABLE bindableZ)
QML_NAMED_ELEMENT(RotationReading)
QML_UNCREATABLE("Cannot create RotationReading")
QML_ADDED_IN_VERSION(5,0)
@@ -93,8 +93,11 @@ public:
~QmlRotationSensorReading();
qreal x() const;
+ QBindable<qreal> bindableX() const;
qreal y() const;
+ QBindable<qreal> bindableY() const;
qreal z() const;
+ QBindable<qreal> bindableZ() const;
Q_SIGNALS:
void xChanged();
@@ -105,9 +108,12 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QRotationSensor *m_sensor;
- qreal m_x;
- qreal m_y;
- qreal m_z;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlRotationSensorReading, qreal,
+ m_x, &QmlRotationSensorReading::xChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlRotationSensorReading, qreal,
+ m_y, &QmlRotationSensorReading::yChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlRotationSensorReading, qreal,
+ m_z, &QmlRotationSensorReading::zChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmlsensor.cpp b/src/sensorsquick/qmlsensor.cpp
index 2ff544a5..970f8198 100644
--- a/src/sensorsquick/qmlsensor.cpp
+++ b/src/sensorsquick/qmlsensor.cpp
@@ -307,6 +307,11 @@ QmlSensorReading *QmlSensor::reading() const
return m_reading;
}
+QBindable<QmlSensorReading*> QmlSensor::bindableReading() const
+{
+ return &m_reading;
+}
+
/*!
\qmlproperty Sensor::AxesOrientationMode Sensor::axesOrientationMode
\since QtSensors 5.1
@@ -455,7 +460,7 @@ void QmlSensor::componentComplete()
if (sensor()->connectToBackend())
Q_EMIT connectedToBackendChanged();
- m_reading = createReading();
+ m_reading.setValueBypassingBindings(createReading());
m_reading->setParent(this);
if (oldDataRate != dataRate())
Q_EMIT dataRateChanged();
@@ -504,6 +509,7 @@ void QmlSensor::updateReading()
{
if (m_reading) {
m_reading->update();
+ m_reading.notify();
Q_EMIT readingChanged();
}
}
@@ -524,7 +530,7 @@ void QmlSensor::updateReading()
*/
QmlSensorReading::QmlSensorReading(QSensor *)
- : QObject(0)
+ : QObject(nullptr)
{
}
@@ -544,13 +550,15 @@ quint64 QmlSensorReading::timestamp() const
return m_timestamp;
}
+QBindable<quint64> QmlSensorReading::bindableTimestamp() const
+{
+ return &m_timestamp;
+}
+
+
void QmlSensorReading::update()
{
- quint64 ts = reading()->timestamp();
- if (m_timestamp != ts) {
- m_timestamp = ts;
- Q_EMIT timestampChanged();
- }
+ m_timestamp = reading()->timestamp();
readingUpdate();
}
diff --git a/src/sensorsquick/qmlsensor_p.h b/src/sensorsquick/qmlsensor_p.h
index 276b6e76..c6c748e8 100644
--- a/src/sensorsquick/qmlsensor_p.h
+++ b/src/sensorsquick/qmlsensor_p.h
@@ -77,7 +77,7 @@ class Q_SENSORSQUICK_PRIVATE_EXPORT QmlSensor : public QObject, public QQmlParse
Q_PROPERTY(bool connectedToBackend READ isConnectedToBackend NOTIFY connectedToBackendChanged)
Q_PROPERTY(QQmlListProperty<QmlSensorRange> availableDataRates READ availableDataRates NOTIFY availableDataRatesChanged)
Q_PROPERTY(int dataRate READ dataRate WRITE setDataRate NOTIFY dataRateChanged)
- Q_PROPERTY(QmlSensorReading* reading READ reading NOTIFY readingChanged)
+ Q_PROPERTY(QmlSensorReading* reading READ reading NOTIFY readingChanged BINDABLE bindableReading)
Q_PROPERTY(bool busy READ isBusy NOTIFY busyChanged)
Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged)
Q_PROPERTY(QQmlListProperty<QmlSensorOutputRange> outputRanges READ outputRanges NOTIFY outputRangesChanged)
@@ -138,6 +138,7 @@ public:
int error() const;
QmlSensorReading *reading() const;
+ QBindable<QmlSensorReading*> bindableReading() const;
AxesOrientationMode axesOrientationMode() const;
void setAxesOrientationMode(AxesOrientationMode axesOrientationMode);
@@ -156,6 +157,8 @@ public:
virtual QSensor *sensor() const = 0;
+ void componentComplete() override;
+
public Q_SLOTS:
bool start();
void stop();
@@ -187,21 +190,19 @@ protected:
private Q_SLOTS:
void updateReading();
-protected Q_SLOTS:
- void componentComplete() override;
-
private:
void classBegin() override;
virtual void _update();
bool m_componentComplete = false;
bool m_activateOnComplete = false;
- QmlSensorReading *m_reading = nullptr;
+ Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(QmlSensor, QmlSensorReading*,
+ m_reading, nullptr)
};
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlSensorReading : public QObject
{
Q_OBJECT
- Q_PROPERTY(quint64 timestamp READ timestamp NOTIFY timestampChanged)
+ Q_PROPERTY(quint64 timestamp READ timestamp NOTIFY timestampChanged BINDABLE bindableTimestamp)
QML_NAMED_ELEMENT(SensorReading)
QML_UNCREATABLE("Cannot create SensorReading")
QML_ADDED_IN_VERSION(5,0)
@@ -210,6 +211,8 @@ public:
~QmlSensorReading();
quint64 timestamp() const;
+ QBindable<quint64> bindableTimestamp() const;
+
void update();
Q_SIGNALS:
@@ -218,7 +221,8 @@ Q_SIGNALS:
private:
virtual QSensorReading *reading() const = 0;
virtual void readingUpdate() = 0;
- quint64 m_timestamp;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlSensorReading, quint64,
+ m_timestamp, &QmlSensorReading::timestampChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmltapsensor.cpp b/src/sensorsquick/qmltapsensor.cpp
index faeba623..190bda45 100644
--- a/src/sensorsquick/qmltapsensor.cpp
+++ b/src/sensorsquick/qmltapsensor.cpp
@@ -147,6 +147,12 @@ QTapReading::TapDirection QmlTapSensorReading::tapDirection() const
return m_tapDirection;
}
+QBindable<QTapReading::TapDirection> QmlTapSensorReading::bindableTapDirection() const
+{
+ return &m_tapDirection;
+}
+
+
/*!
\qmlproperty bool TapReading::doubleTap
This property holds a value indicating if there was a single or double tap.
@@ -159,6 +165,11 @@ bool QmlTapSensorReading::isDoubleTap() const
return m_isDoubleTap;
}
+QBindable<bool> QmlTapSensorReading::bindableDoubleTap() const
+{
+ return &m_isDoubleTap;
+}
+
QSensorReading *QmlTapSensorReading::reading() const
{
return const_cast<QTapSensor*>(m_sensor)->reading();
@@ -166,14 +177,6 @@ QSensorReading *QmlTapSensorReading::reading() const
void QmlTapSensorReading::readingUpdate()
{
- QTapReading::TapDirection td = m_sensor->reading()->tapDirection();
- if (m_tapDirection != td) {
- m_tapDirection = td;
- Q_EMIT tapDirectionChanged();
- }
- bool dTap = m_sensor->reading()->isDoubleTap();
- if (m_isDoubleTap != dTap) {
- m_isDoubleTap = dTap;
- Q_EMIT isDoubleTapChanged();
- }
+ m_tapDirection = m_sensor->reading()->tapDirection();
+ m_isDoubleTap = m_sensor->reading()->isDoubleTap();
}
diff --git a/src/sensorsquick/qmltapsensor_p.h b/src/sensorsquick/qmltapsensor_p.h
index 7d8800c0..6d600544 100644
--- a/src/sensorsquick/qmltapsensor_p.h
+++ b/src/sensorsquick/qmltapsensor_p.h
@@ -71,11 +71,12 @@ public:
bool returnDoubleTapEvents() const;
void setReturnDoubleTapEvents(bool ret);
+ QSensor *sensor() const override;
+
Q_SIGNALS:
void returnDoubleTapEventsChanged(bool returnDoubleTapEvents);
private:
- QSensor *sensor() const override;
QTapSensor *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -83,8 +84,10 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlTapSensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(QTapReading::TapDirection tapDirection READ tapDirection NOTIFY tapDirectionChanged)
- Q_PROPERTY(bool doubleTap READ isDoubleTap NOTIFY isDoubleTapChanged)
+ Q_PROPERTY(QTapReading::TapDirection tapDirection READ tapDirection
+ NOTIFY tapDirectionChanged BINDABLE bindableTapDirection)
+ Q_PROPERTY(bool doubleTap READ isDoubleTap
+ NOTIFY isDoubleTapChanged BINDABLE bindableDoubleTap)
QML_NAMED_ELEMENT(TapReading)
QML_UNCREATABLE("Cannot create TapReading")
QML_ADDED_IN_VERSION(5,0)
@@ -94,7 +97,9 @@ public:
~QmlTapSensorReading();
QTapReading::TapDirection tapDirection() const;
+ QBindable<QTapReading::TapDirection> bindableTapDirection() const;
bool isDoubleTap() const;
+ QBindable<bool> bindableDoubleTap() const;
Q_SIGNALS:
void tapDirectionChanged();
@@ -104,8 +109,10 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QTapSensor *m_sensor;
- QTapReading::TapDirection m_tapDirection;
- bool m_isDoubleTap;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlTapSensorReading, QTapReading::TapDirection,
+ m_tapDirection, &QmlTapSensorReading::tapDirectionChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlTapSensorReading, bool,
+ m_isDoubleTap, &QmlTapSensorReading::isDoubleTapChanged)
};
QT_END_NAMESPACE
diff --git a/src/sensorsquick/qmltiltsensor.cpp b/src/sensorsquick/qmltiltsensor.cpp
index 81b4e696..64ea3a98 100644
--- a/src/sensorsquick/qmltiltsensor.cpp
+++ b/src/sensorsquick/qmltiltsensor.cpp
@@ -131,6 +131,11 @@ qreal QmlTiltSensorReading::yRotation() const
return m_yRotation;
}
+QBindable<qreal> QmlTiltSensorReading::bindableYRotation() const
+{
+ return &m_yRotation;
+}
+
/*!
\qmlproperty qreal TiltReading::xRotation
This property holds the amount of tilt on the X axis.
@@ -143,6 +148,11 @@ qreal QmlTiltSensorReading::xRotation() const
return m_xRotation;
}
+QBindable<qreal> QmlTiltSensorReading::bindableXRotation() const
+{
+ return &m_xRotation;
+}
+
QSensorReading *QmlTiltSensorReading::reading() const
{
return m_sensor->reading();
@@ -150,14 +160,6 @@ QSensorReading *QmlTiltSensorReading::reading() const
void QmlTiltSensorReading::readingUpdate()
{
- qreal tiltY = m_sensor->reading()->yRotation();
- if (m_yRotation != tiltY) {
- m_yRotation = tiltY;
- Q_EMIT yRotationChanged();
- }
- qreal tiltX = m_sensor->reading()->xRotation();
- if (m_xRotation != tiltX) {
- m_xRotation = tiltX;
- Q_EMIT xRotationChanged();
- }
+ m_yRotation = m_sensor->reading()->yRotation();
+ m_xRotation = m_sensor->reading()->xRotation();
}
diff --git a/src/sensorsquick/qmltiltsensor_p.h b/src/sensorsquick/qmltiltsensor_p.h
index f41757b3..f7fbe6d5 100644
--- a/src/sensorsquick/qmltiltsensor_p.h
+++ b/src/sensorsquick/qmltiltsensor_p.h
@@ -69,8 +69,9 @@ public:
~QmlTiltSensor();
Q_INVOKABLE void calibrate();
-private:
QSensor *sensor() const override;
+
+private:
QTiltSensor *m_sensor;
QmlSensorReading *createReading() const override;
};
@@ -78,8 +79,8 @@ private:
class Q_SENSORSQUICK_PRIVATE_EXPORT QmlTiltSensorReading : public QmlSensorReading
{
Q_OBJECT
- Q_PROPERTY(qreal yRotation READ yRotation NOTIFY yRotationChanged)
- Q_PROPERTY(qreal xRotation READ xRotation NOTIFY xRotationChanged)
+ Q_PROPERTY(qreal yRotation READ yRotation NOTIFY yRotationChanged BINDABLE bindableYRotation)
+ Q_PROPERTY(qreal xRotation READ xRotation NOTIFY xRotationChanged BINDABLE bindableXRotation)
QML_NAMED_ELEMENT(TiltReading)
QML_UNCREATABLE("Cannot create TiltReading")
QML_ADDED_IN_VERSION(5,0)
@@ -88,7 +89,9 @@ public:
~QmlTiltSensorReading();
qreal yRotation() const;
+ QBindable<qreal> bindableYRotation() const;
qreal xRotation() const;
+ QBindable<qreal> bindableXRotation() const;
Q_SIGNALS:
void yRotationChanged();
@@ -98,8 +101,10 @@ private:
QSensorReading *reading() const override;
void readingUpdate() override;
QTiltSensor *m_sensor;
- qreal m_yRotation;
- qreal m_xRotation;
+ Q_OBJECT_BINDABLE_PROPERTY(QmlTiltSensorReading, qreal,
+ m_yRotation, &QmlTiltSensorReading::yRotationChanged)
+ Q_OBJECT_BINDABLE_PROPERTY(QmlTiltSensorReading, qreal,
+ m_xRotation, &QmlTiltSensorReading::xRotationChanged)
};
QT_END_NAMESPACE