summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors/blackberry/bbsensorbackend.cpp
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>2012-07-19 15:46:09 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-24 11:23:25 +0200
commit1760d541f35c851b6c08bc617a89cb16a1d8f975 (patch)
tree752b016c18fb5628e2c4b1b6ce5e16ab318c814b /src/plugins/sensors/blackberry/bbsensorbackend.cpp
parent0de0ead684a322103ec9cff3dcf5153ef4c1545c (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.cpp45
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());
+}