summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>2012-08-24 14:10:57 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2012-11-28 20:13:06 +0100
commit2a524d5fbf49d97f716c9889114a0dae7b208931 (patch)
tree5b7efbc3e1575cd1b1625a49d85ea79870fefdcf
parent6751bb62dab6957e6212e0a03ecc54d3d8f94092 (diff)
Pass through invalid data rates to the backend instead of ignoring them
This gives the backend the chance to do something sensible with it, at the expense of the data rate not being reported correctly in those cases. Change-Id: Iadf72b4448145f2454bc9422dde094ad799cb17a Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
-rw-r--r--src/sensors/qsensor.cpp15
-rw-r--r--src/sensors/qsensor.h3
-rw-r--r--tests/auto/qsensor/tst_qsensor.cpp9
3 files changed, 7 insertions, 20 deletions
diff --git a/src/sensors/qsensor.cpp b/src/sensors/qsensor.cpp
index 47f4840413..e3298ae62f 100644
--- a/src/sensors/qsensor.cpp
+++ b/src/sensors/qsensor.cpp
@@ -500,20 +500,9 @@ int QSensor::dataRate() const
void QSensor::setDataRate(int rate)
{
- if (rate == 0 || !isConnectedToBackend()) {
+ if (d->dataRate != rate) {
d->dataRate = rate;
- return;
- }
- bool warn = true;
- Q_FOREACH (const qrange &range, d->availableDataRates) {
- if (rate >= range.first && rate <= range.second) {
- warn = false;
- d->dataRate = rate;
- break;
- }
- }
- if (warn) {
- qWarning() << "setDataRate:" << rate << "is not supported by the sensor.";
+ emit dataRateChanged();
}
}
diff --git a/src/sensors/qsensor.h b/src/sensors/qsensor.h
index 21eaf07425..a75a9c6611 100644
--- a/src/sensors/qsensor.h
+++ b/src/sensors/qsensor.h
@@ -90,7 +90,7 @@ class Q_SENSORS_EXPORT QSensor : public QObject
Q_PROPERTY(QByteArray type READ type)
Q_PROPERTY(bool connectedToBackend READ isConnectedToBackend)
Q_PROPERTY(QtMobility::qrangelist availableDataRates READ availableDataRates)
- Q_PROPERTY(int dataRate READ dataRate WRITE setDataRate)
+ Q_PROPERTY(int dataRate READ dataRate WRITE setDataRate NOTIFY dataRateChanged)
Q_PROPERTY(QSensorReading* reading READ reading NOTIFY readingChanged)
Q_PROPERTY(bool busy READ isBusy)
Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged)
@@ -168,6 +168,7 @@ Q_SIGNALS:
void availableSensorsChanged();
void alwaysOnChanged();
void skipDuplicatesChanged(bool skipDuplicates);
+ void dataRateChanged();
protected:
// called by the back end
diff --git a/tests/auto/qsensor/tst_qsensor.cpp b/tests/auto/qsensor/tst_qsensor.cpp
index d43dc72bf6..ee998568eb 100644
--- a/tests/auto/qsensor/tst_qsensor.cpp
+++ b/tests/auto/qsensor/tst_qsensor.cpp
@@ -529,13 +529,11 @@ private slots:
TestSensor sensor;
sensor.connectToBackend();
- QTest::ignoreMessage(QtWarningMsg, "setDataRate: 1 is not supported by the sensor. ");
sensor.setDataRate(1);
- QCOMPARE(sensor.dataRate(), 0);
+ QCOMPARE(sensor.dataRate(), 1);
- QTest::ignoreMessage(QtWarningMsg, "setDataRate: 1000 is not supported by the sensor. ");
sensor.setDataRate(1000);
- QCOMPARE(sensor.dataRate(), 0);
+ QCOMPARE(sensor.dataRate(), 1000);
}
void testSetBadDataRateWhenNotConnected()
@@ -546,9 +544,8 @@ private slots:
sensor.setDataRate(300);
QCOMPARE(sensor.dataRate(), 300);
sensor.setDataRate(350);
- QTest::ignoreMessage(QtWarningMsg, "setDataRate: 350 is not supported by the sensor. ");
sensor.connectToBackend();
- QCOMPARE(sensor.dataRate(), 0);
+ QCOMPARE(sensor.dataRate(), 350);
}
void testSetBadOutputRange()