Provide public API for native event filtering, moved up from QPA.
authorDavid Faure <faure@kde.org>
Sat, 23 Jun 2012 19:48:53 +0000 (21:48 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 20 Jul 2012 16:34:08 +0000 (18:34 +0200)
commit1603ba23656c8c31dc05fe9b3f1e12b22e29989a
tree5e507db7a34023b9236c982257923a2242c1693a
parent981ea7a1aa602cebfdd43b7dc6efd3abf5a1cba3
Provide public API for native event filtering, moved up from QPA.

The previous API was hard to use (global function, no type safety,
manual chaining), and confusing (app vs dispatcher split only made
sense on Windows). Installing and removing out of order would have
the risk of setting back a dangling pointer (crash). Meanwhile QPA
added type safety, and this new API models the QObject::installEventFilter
API for ease of use. The virtual method is in a new interface,
QAbstractNativeEventFilter.

QPA was even calling the dispatcher event filter with QPA-private event
classes, which made no sense (refactoring leftover from when the code
was in the dispatcher). Now the QPA plugins trigger the qcoreapp event
filters with the actual native events directly.

Change-Id: Ie35e47c59c862383bcaf857b28d54f7c72547882
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
32 files changed:
dist/changes-5.0.0
src/corelib/doc/snippets/code/src_corelib_kernel_qabstractnativeeventfilter.cpp [moved from src/corelib/doc/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp with 84% similarity]
src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp
src/corelib/kernel/kernel.pri
src/corelib/kernel/qabstracteventdispatcher.cpp
src/corelib/kernel/qabstracteventdispatcher.h
src/corelib/kernel/qabstracteventdispatcher_p.h
src/corelib/kernel/qabstractnativeeventfilter.cpp [new file with mode: 0644]
src/corelib/kernel/qabstractnativeeventfilter.h [new file with mode: 0644]
src/corelib/kernel/qcoreapplication.cpp
src/corelib/kernel/qcoreapplication.h
src/corelib/kernel/qcoreapplication_p.h
src/corelib/kernel/qcoreapplication_win.cpp
src/corelib/kernel/qeventdispatcher_win.cpp
src/gui/kernel/qplatformnativeinterface.cpp
src/gui/kernel/qplatformnativeinterface.h
src/gui/kernel/qwindowsysteminterface.cpp
src/plugins/bearer/blackberry/qbbengine.cpp
src/plugins/bearer/blackberry/qbbengine.h
src/plugins/platforms/qnx/qqnxbpseventfilter.cpp
src/plugins/platforms/qnx/qqnxbpseventfilter.h
src/plugins/platforms/windows/qwindowscontext.cpp
src/plugins/platforms/windows/qwindowscontext.h
src/plugins/platforms/windows/qwindowsintegration.cpp
src/plugins/platforms/xcb/qxcbconnection.cpp
src/plugins/platforms/xcb/qxcbnativeinterface.cpp
src/plugins/platforms/xcb/qxcbnativeinterface.h
src/testlib/qbenchmarkevent.cpp
src/testlib/qbenchmarkevent_p.h
tests/auto/testlib/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp
tests/auto/testlib/selftests/benchliboptions/tst_benchliboptions.cpp
tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp