diff options
Diffstat (limited to 'src/plugins/bearer')
-rw-r--r-- | src/plugins/bearer/blackberry/qbbengine.cpp | 33 | ||||
-rw-r--r-- | src/plugins/bearer/blackberry/qbbengine.h | 11 |
2 files changed, 13 insertions, 31 deletions
diff --git a/src/plugins/bearer/blackberry/qbbengine.cpp b/src/plugins/bearer/blackberry/qbbengine.cpp index 7f8abd0e50..921d8f8040 100644 --- a/src/plugins/bearer/blackberry/qbbengine.cpp +++ b/src/plugins/bearer/blackberry/qbbengine.cpp @@ -122,7 +122,6 @@ QT_BEGIN_NAMESPACE QBBEngine::QBBEngine(QObject *parent) : QBearerEngineImpl(parent), - previousEventFilter(0), pollingRequired(false), initialized(false) { @@ -130,7 +129,6 @@ QBBEngine::QBBEngine(QObject *parent) : QBBEngine::~QBBEngine() { - QAbstractEventDispatcher::instance()->setEventFilter(previousEventFilter); } @@ -173,8 +171,7 @@ void QBBEngine::initialize() const QMutexLocker locker(&pollingMutex); pollingRequired = true; } else { - previousEventFilter = - QAbstractEventDispatcher::instance()->setEventFilter(filterEvent); + QAbstractEventDispatcher::instance()->installEventFilter(this); } doRequestUpdate(); @@ -288,34 +285,23 @@ bool QBBEngine::requiresPolling() const return pollingRequired; } -bool QBBEngine::filterEvent(void *message) +bool QBBEngine::nativeEventFilter(const QByteArray &eventType, void *message, long *result) { + Q_UNUSED(eventType); + Q_UNUSED(result); + bps_event_t * const event = static_cast<bps_event_t *>(message); Q_ASSERT(event); - QBBEngine *self = instanceStorage()->localData()->instance; - - Q_ASSERT(self); - - if (bps_event_get_domain(event) == netstatus_get_domain()) - self->filterEvent(event); - - if (self->previousEventFilter) - return self->previousEventFilter(message); + if (bps_event_get_domain(event) == netstatus_get_domain()) { + qBearerDebug() << Q_FUNC_INFO << "got update request."; + doRequestUpdate(); + } return false; } -void QBBEngine::filterEvent(bps_event_t *event) -{ - Q_UNUSED(event); - - qBearerDebug() << Q_FUNC_INFO << "got update request."; - - doRequestUpdate(); -} - void QBBEngine::updateConfiguration(const char *interface) { netstatus_interface_details_t *details = 0; @@ -421,4 +407,3 @@ void QBBEngine::removeConfiguration(const QString &id) QT_END_NAMESPACE #endif // QT_NO_BEARERMANAGEMENT - diff --git a/src/plugins/bearer/blackberry/qbbengine.h b/src/plugins/bearer/blackberry/qbbengine.h index 1c9a5d4aa5..2ad0f1fc65 100644 --- a/src/plugins/bearer/blackberry/qbbengine.h +++ b/src/plugins/bearer/blackberry/qbbengine.h @@ -45,6 +45,7 @@ #include "../qbearerengine_impl.h" #include <QAbstractEventDispatcher> +#include <QAbstractNativeEventFilter> #ifndef QT_NO_BEARERMANAGEMENT @@ -55,7 +56,7 @@ QT_BEGIN_NAMESPACE class QNetworkConfigurationPrivate; class QNetworkSessionPrivate; -class QBBEngine : public QBearerEngineImpl +class QBBEngine : public QBearerEngineImpl, public QAbstractNativeEventFilter { Q_OBJECT @@ -82,6 +83,8 @@ public: bool requiresPolling() const Q_DECL_OVERRIDE; + bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) Q_DECL_OVERRIDE; + protected: void updateConfiguration(const char *interface); void removeConfiguration(const QString &id); @@ -90,14 +93,8 @@ private Q_SLOTS: void doRequestUpdate(); private: - static bool filterEvent(void *message); - - void filterEvent(bps_event_t *event); - QHash<QString, QString> configurationInterface; - QAbstractEventDispatcher::EventFilter previousEventFilter; - mutable QMutex pollingMutex; bool pollingRequired; |