summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/sensors/blackberry/bbsensorbackend.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/plugins/sensors/blackberry/bbsensorbackend.cpp b/plugins/sensors/blackberry/bbsensorbackend.cpp
index 3b6b581096..4bace8a808 100644
--- a/plugins/sensors/blackberry/bbsensorbackend.cpp
+++ b/plugins/sensors/blackberry/bbsensorbackend.cpp
@@ -113,15 +113,17 @@ sensor_type_e BbSensorBackendBase::sensorType() const
void BbSensorBackendBase::setDevice(const QString &deviceFile, sensor_type_e sensorType)
{
- const bool isActive = m_deviceFile.isOpen();
- if (isActive)
- stop();
-
- m_sensorType = sensorType;
- m_deviceFile.setFileName(deviceFile);
-
- if (isActive)
- start();
+ if (deviceFile != m_deviceFile.fileName()) {
+ setPaused(true);
+ delete m_socketNotifier.take();
+ m_deviceFile.close();
+
+ m_sensorType = sensorType;
+ m_deviceFile.setFileName(deviceFile);
+ initSensorInfo();
+ if (m_started)
+ start(); // restart with new device file
+ }
}
void BbSensorBackendBase::initSensorInfo()