summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/imports/sensors/sensors.cpp2
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp12
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwsensorbase.h1
3 files changed, 11 insertions, 4 deletions
diff --git a/src/imports/sensors/sensors.cpp b/src/imports/sensors/sensors.cpp
index c6f61c22..d1f5bb48 100644
--- a/src/imports/sensors/sensors.cpp
+++ b/src/imports/sensors/sensors.cpp
@@ -93,7 +93,7 @@ static QObject *global_object_50(QQmlEngine *, QJSEngine *)
class QtSensorsDeclarativeModule : public QQmlExtensionPlugin
{
Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface" FILE "plugin.json")
+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid FILE "plugin.json")
public:
QtSensorsDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
virtual void registerTypes(const char *uri)
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();