Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Note: this is an attempt at a 4.8 version of https://codereview.qt-project.org/#change,29001,patchset=1 intended for very temporary use only, until that patch is upstreamed and they do their own 4.8 version.
- -------------------------------
- diff --git a/src/plugins/platforms/blackberry/blackberry.pro b/src/plugins/platforms/blackberry/blackberry.pro
- index 6fcef85..9d7924c 100644
- --- a/src/plugins/platforms/blackberry/blackberry.pro
- +++ b/src/plugins/platforms/blackberry/blackberry.pro
- @@ -49,6 +49,8 @@ blackberry {
- HEADERS += qbbbpseventfilter.h \
- qbbvirtualkeyboardbps.h
- +
- + DEFINES += QBB_SCREENEVENTTHREAD
- }
- QMAKE_CXXFLAGS += -I./private
- diff --git a/src/plugins/platforms/blackberry/qbbbpseventfilter.cpp b/src/plugins/platforms/blackberry/qbbbpseventfilter.cpp
- index a9e8523..42307f7 100644
- --- a/src/plugins/platforms/blackberry/qbbbpseventfilter.cpp
- +++ b/src/plugins/platforms/blackberry/qbbbpseventfilter.cpp
- @@ -96,12 +96,20 @@ void QBBBpsEventFilter::installOnEventDispatcher(QAbstractEventDispatcher *dispa
- void QBBBpsEventFilter::registerForScreenEvents(QBBScreen *screen)
- {
- + if (!mScreenEventHandler) {
- + qWarning("QBB: trying to register for screen events, but no handler provided.");
- + return;
- + }
- if (screen_request_events(screen->nativeContext()) != BPS_SUCCESS)
- qWarning("QBB: failed to register for screen events on screen %p", screen->nativeContext());
- }
- void QBBBpsEventFilter::unregisterForScreenEvents(QBBScreen *screen)
- {
- + if (!mScreenEventHandler) {
- + qWarning("QBB: trying to unregister for screen events, but no handler provided.");
- + return;
- + }
- if (screen_stop_events(screen->nativeContext()) != BPS_SUCCESS)
- qWarning("QBB: failed to unregister for screen events on screen %p", screen->nativeContext());
- }
- @@ -127,6 +135,10 @@ bool QBBBpsEventFilter::bpsEventFilter(bps_event_t *event)
- #endif
- if (eventDomain == screen_get_domain()) {
- + if (!mScreenEventHandler) {
- + qWarning("QBB: registered for screen events, but no handler provided.");
- + return false;
- + }
- screen_event_t screenEvent = screen_event_get_event(event);
- return mScreenEventHandler->handleEvent(screenEvent);
- }
- diff --git a/src/plugins/platforms/blackberry/qbbintegration.cpp b/src/plugins/platforms/blackberry/qbbintegration.cpp
- index bfd1eb8..b84015c 100644
- --- a/src/plugins/platforms/blackberry/qbbintegration.cpp
- +++ b/src/plugins/platforms/blackberry/qbbintegration.cpp
- @@ -121,8 +121,7 @@ QBBIntegration::QBBIntegration() :
- createDisplays();
- // create/start event thread
- - // Not on BlackBerry, it has specialised event dispatcher which also handles screen events
- -#if !defined(Q_OS_BLACKBERRY)
- +#if defined(QBB_SCREENEVENTTHREAD)
- mScreenEventThread = new QBBScreenEventThread(mContext, mScreenEventHandler);
- mScreenEventThread->start();
- #endif
- @@ -138,11 +137,14 @@ QBBIntegration::QBBIntegration() :
- QBBVirtualKeyboardBps *virtualKeyboardBps = new QBBVirtualKeyboardBps;
- - mBpsEventFilter = new QBBBpsEventFilter(mNavigatorEventHandler, mScreenEventHandler, virtualKeyboardBps);
- + mBpsEventFilter = new QBBBpsEventFilter(mNavigatorEventHandler,
- + (mScreenEventThread ? 0 : mScreenEventHandler), virtualKeyboardBps);
- +#if !defined(QBB_SCREENEVENTTHREAD)
- Q_FOREACH (QPlatformScreen *platformScreen, mScreens) {
- QBBScreen *screen = static_cast<QBBScreen*>(platformScreen);
- mBpsEventFilter->registerForScreenEvents(screen);
- }
- +#endif
- mBpsEventFilter->installOnEventDispatcher(QAbstractEventDispatcher::instance());
- @@ -178,20 +180,20 @@ QBBIntegration::~QBBIntegration()
- delete mLocaleThread;
- #endif
- -#if !defined(Q_OS_BLACKBERRY)
- - // stop/destroy event thread
- - delete mScreenEventThread;
- -#endif
- -
- - // stop/destroy navigator event handling classes
- + // stop/destroy navigator event handling classes
- delete mNavigatorEventNotifier;
- -#if defined(Q_OS_BLACKBERRY)
- +#if defined(QBB_SCREENEVENTTHREAD)
- + // stop/destroy event thread
- + delete mScreenEventThread;
- +#elif defined(Q_OS_BLACKBERRY)
- Q_FOREACH (QPlatformScreen *platformScreen, mScreens) {
- QBBScreen *screen = static_cast<QBBScreen*>(platformScreen);
- mBpsEventFilter->unregisterForScreenEvents(screen);
- }
- +#endif
- +#if defined(Q_OS_BLACKBERRY)
- delete mBpsEventFilter;
- #endif
Advertisement
Add Comment
Please, Sign In to add comment