diff options
-rw-r--r-- | .qmake.conf | 2 | ||||
-rw-r--r-- | src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp | 12 | ||||
-rw-r--r-- | src/plugins/sensors/sensorfw/sensorfwsensorbase.h | 1 |
3 files changed, 11 insertions, 4 deletions
diff --git a/.qmake.conf b/.qmake.conf index a2a0d418..aefa1e70 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,3 +1,3 @@ load(qt_build_config) -MODULE_VERSION = 5.7.1 +MODULE_VERSION = 5.8.0 diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp index 17027778..27a07ad6 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp @@ -59,7 +59,8 @@ SensorfwSensorBase::SensorfwSensorBase(QSensor *sensor) m_efficientBufferSize(1), m_maxBufferSize(1), m_available(false), - running(false) + running(false), + m_attemptRestart(false) { watcher = new QDBusServiceWatcher("com.nokia.SensorService",QDBusConnection::systemBus(), @@ -131,8 +132,12 @@ void SensorfwSensorBase::start() if (returnCode == 0) { running = true; return; + } else if (returnCode == QDBusError::ServiceUnknown) { + m_attemptRestart = true; + qWarning() << "m_sensorInterface did not start, DBus service unknown. Waiting for service registration and retrying."; + } else { + qWarning() << "m_sensorInterface did not start, error code:" << returnCode; } - qWarning() << "m_sensorInterface did not start, error code:" << returnCode; } sensorStopped(); } @@ -142,6 +147,7 @@ void SensorfwSensorBase::stop() if (m_sensorInterface) m_sensorInterface->stop(); running = false; + m_attemptRestart = false; } void SensorfwSensorBase::setRanges(qreal correctionFactor) @@ -219,7 +225,7 @@ void SensorfwSensorBase::connectToSensord() m_remoteSensorManager = 0; return; } - if (running) { + if (running || m_attemptRestart) { stop(); reinitIsNeeded = true; start(); diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h index df8ca844..3e5e0538 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h @@ -113,6 +113,7 @@ private: QDBusServiceWatcher *watcher; bool m_available; bool running; + bool m_attemptRestart; private slots: void connectToSensord(); void sensordUnregistered(); |