summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLincoln Ramsay <lincoln.ramsay@nokia.com>2012-05-28 12:09:55 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-28 04:58:41 +0200
commit7d54123daa2080f96c7d74f58125141555832b09 (patch)
tree78bde141a400fc6f630f70e462383c752a0a440e
parent8ff4b2dbeeba8ffc6503a6a8ac53a3df2625298a (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>
-rw-r--r--src/plugins/sensors/simulator/simulatorcommon.cpp13
-rw-r--r--src/plugins/sensors/simulator/simulatorcommon.h3
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;