diff options
author | Lincoln Ramsay <lincoln.ramsay@nokia.com> | 2012-05-28 12:09:55 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-28 04:58:41 +0200 |
commit | 7d54123daa2080f96c7d74f58125141555832b09 (patch) | |
tree | 78bde141a400fc6f630f70e462383c752a0a440e /src | |
parent | 8ff4b2dbeeba8ffc6503a6a8ac53a3df2625298a (diff) |
Report failure to connect and disconnect from the emulator.
This does not happen very often but it's good to report it when it does.
Change-Id: Iaec494f3aa449dbfcda1522ecde4da9311fa27c9
Reviewed-by: Zsolt Simon <zsolt.simon@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/sensors/simulator/simulatorcommon.cpp | 13 | ||||
-rw-r--r-- | src/plugins/sensors/simulator/simulatorcommon.h | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/sensors/simulator/simulatorcommon.cpp b/src/plugins/sensors/simulator/simulatorcommon.cpp index 900b6bd8..1b0afcc3 100644 --- a/src/plugins/sensors/simulator/simulatorcommon.cpp +++ b/src/plugins/sensors/simulator/simulatorcommon.cpp @@ -80,6 +80,7 @@ public: signals: void queueConnectToServer(); + void connectionFailed(); void initialSensorsDataSent(); void setAmbientLightData(const QtMobility::QAmbientLightReadingData &); void setLightData(const QtMobility::QLightReadingData &); @@ -97,6 +98,7 @@ private slots: mWorker.reset(mConnection->connectToServer(Connection::simulatorHostName(true), 0xbeef+1)); if (!mWorker) { qWarning("QtSensors simulator backend could not connect to the simulator!"); + emit connectionFailed(); return; } mWorker->addReceiver(this); @@ -111,11 +113,14 @@ private: SensorsConnection::SensorsConnection(QObject *parent) : QObject(parent) , mInitialDataSent(false) + , mConnectionFailed(false) { mConnection = new SimulatorAsyncConnection(); connect(mConnection, SIGNAL(initialSensorsDataSent()), this, SLOT(initialSensorsDataSent())); + connect(mConnection, SIGNAL(connectionFailed()), + this, SLOT(slotConnectionFailed())); connect(mConnection, SIGNAL(setAmbientLightData(QtMobility::QAmbientLightReadingData)), this, SLOT(setAmbientLightData(QtMobility::QAmbientLightReadingData))); connect(mConnection, SIGNAL(setLightData(QtMobility::QLightReadingData)), @@ -187,6 +192,12 @@ void SensorsConnection::initialSensorsDataSent() mInitialDataSent = true; } +void SensorsConnection::slotConnectionFailed() +{ + mInitialDataSent = false; + mConnectionFailed = true; +} + SimulatorCommon::SimulatorCommon(QSensor *sensor) : QSensorBackend(sensor) , m_timerid(0) @@ -229,7 +240,7 @@ void SimulatorCommon::stop() void SimulatorCommon::timerEvent(QTimerEvent * /*event*/) { SensorsConnection *connection = SensorsConnection::instance(); - if (!connection) { + if (!connection || connection->connectionFailed()) { stop(); sensorStopped(); } diff --git a/src/plugins/sensors/simulator/simulatorcommon.h b/src/plugins/sensors/simulator/simulatorcommon.h index 6555f1fc..82fffd86 100644 --- a/src/plugins/sensors/simulator/simulatorcommon.h +++ b/src/plugins/sensors/simulator/simulatorcommon.h @@ -58,6 +58,7 @@ public: static SensorsConnection *instance(); bool safe() const { return mInitialDataSent; } + bool connectionFailed() const { return mConnectionFailed; } public slots: void setAmbientLightData(const QtMobility::QAmbientLightReadingData &); @@ -68,10 +69,12 @@ public slots: void setProximityData(const QtMobility::QProximityReadingData &); void setIRProximityData(const QtMobility::QIRProximityReadingData &); void initialSensorsDataSent(); + void slotConnectionFailed(); private: SimulatorAsyncConnection *mConnection; bool mInitialDataSent; + bool mConnectionFailed; public: QtMobility::QAmbientLightReadingData qtAmbientLightData; |