diff options
-rw-r--r-- | plugins/sensors/blackberry/bbsensorbackend.cpp | 20 |
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() |