diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2012-07-19 15:46:09 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-24 11:23:25 +0200 |
commit | 1760d541f35c851b6c08bc617a89cb16a1d8f975 (patch) | |
tree | 752b016c18fb5628e2c4b1b6ce5e16ab318c814b /src/plugins/sensors/blackberry/bbsensorbackend.cpp | |
parent | 0de0ead684a322103ec9cff3dcf5153ef4c1545c (diff) |
Blackberry: Remove QtGui dependency
In the Blackberry backend, we can't depend on QtGui and especially
not on the Blackberry QPA plugin, as Cascades uses
QCoreApplication, not QGuiApplication.
All QtGui functions are replaced with a new GuiHelper class, that
internally uses BPS.
Change-Id: Ia508e8b397050676c68612340d33cdbf57041076
Reviewed-by: Adam Parco <aparco@rim.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/plugins/sensors/blackberry/bbsensorbackend.cpp')
-rw-r--r-- | src/plugins/sensors/blackberry/bbsensorbackend.cpp | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/plugins/sensors/blackberry/bbsensorbackend.cpp b/src/plugins/sensors/blackberry/bbsensorbackend.cpp index a1829b1a..8c53aa26 100644 --- a/src/plugins/sensors/blackberry/bbsensorbackend.cpp +++ b/src/plugins/sensors/blackberry/bbsensorbackend.cpp @@ -40,8 +40,8 @@ ****************************************************************************/ #include "bbsensorbackend.h" +#include "bbguihelper.h" #include <QtCore/QDebug> -#include <QtGui/QGuiApplication> #include <fcntl.h> static const int microSecondsPerSecond = 1000 * 1000; @@ -59,9 +59,8 @@ static uint hertzToMicroSeconds(int hertz) BbSensorBackendBase::BbSensorBackendBase(const QString &devicePath, sensor_type_e sensorType, QSensor *sensor) - : QSensorBackend(sensor), m_deviceFile(devicePath), m_sensorType(sensorType) + : QSensorBackend(sensor), m_deviceFile(devicePath), m_sensorType(sensorType), m_guiHelper(0) { - QCoreApplication::instance()->installEventFilter(this); connect(sensor, SIGNAL(alwaysOnChanged()), this, SLOT(applyAlwaysOnProperty())); // Set some sensible default values @@ -69,6 +68,11 @@ BbSensorBackendBase::BbSensorBackendBase(const QString &devicePath, sensor_type_ sensor->setProperty("maxBufferSize", defaultBufferSize); } +BbGuiHelper *BbSensorBackendBase::guiHelper() const +{ + return m_guiHelper; +} + QFile &BbSensorBackendBase::deviceFile() { return m_deviceFile; @@ -107,6 +111,13 @@ void BbSensorBackendBase::initSensorInfo() } } +void BbSensorBackendBase::setGuiHelper(BbGuiHelper *guiHelper) +{ + Q_ASSERT(!m_guiHelper); + m_guiHelper = guiHelper; + connect(m_guiHelper, SIGNAL(applicationActiveChanged()), this, SLOT(updatePauseState())); +} + void BbSensorBackendBase::additionalDeviceInit() { } @@ -121,27 +132,10 @@ qreal BbSensorBackendBase::convertValue(float bbValue) return bbValue; } -bool BbSensorBackendBase::eventFilter(QObject *object, QEvent *event) -{ - if (object == QCoreApplication::instance()) { - switch (event->type()) { - case QEvent::ApplicationActivate: - setPaused(false); - break; - case QEvent::ApplicationDeactivate: - if (!sensor()->isAlwaysOn()) - setPaused(true); - break; - default: - break; - } - } - - return QSensorBackend::eventFilter(object, event); -} - void BbSensorBackendBase::start() { + Q_ASSERT(m_guiHelper); + if (!m_deviceFile.open(QFile::ReadOnly | QFile::Unbuffered)) { qDebug() << "Starting sensor" << m_deviceFile.fileName() << "failed:" << m_deviceFile.errorString(); @@ -250,7 +244,7 @@ void BbSensorBackendBase::applyAlwaysOnProperty() } // We might need to pause now - setPaused(QGuiApplication::focusWindow() == 0 && !sensor()->isAlwaysOn()); + updatePauseState(); } void BbSensorBackendBase::setPaused(bool paused) @@ -268,3 +262,8 @@ void BbSensorBackendBase::setPaused(bool paused) .arg(m_deviceFile.fileName()).toLocal8Bit()); } } + +void BbSensorBackendBase::updatePauseState() +{ + setPaused(!sensor()->isAlwaysOn() && !m_guiHelper->applicationActive()); +} |