qt6-bb10/src/plugins/platforms
Eskil Abrahamsen Blomfeldt 1880fba971 Android: Fix QMenu on 64 bit
The platform menu tags in Qt are actually the pointers, so they are
64-bit values when the build is 64 bit. Since menu IDs in Android
are 32-bit ints, we cannot cast back and forth like we do. To fix
this, we add a separate hash of menu IDs to allow mapping between
Java and C++. For easier book-keeping, we add the hashes to the
menu bar and menu classes, so that we can easily recycle old menu
IDs when they are no longer in use.

Note that overriding the tag on the menus by calling setTag() will
not work, since Qt Widgets will later override it again by setting
it back to the menu's pointer.

[ChangeLog][Android] Fixed an issue where menus would not work on
64 bit builds.

Task-number: QTBUG-76036
Change-Id: Icaa1d235d4166331669139251656ea0159e85195
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-08-08 07:06:05 +02:00
..
android Android: Fix QMenu on 64 bit 2019-08-08 07:06:05 +02:00
bsdfb Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
cocoa macOS: Don't require setting all three color buffer sizes in QSurfaceFormat 2019-08-02 18:59:24 +02:00
direct2d Windows QPA: Fix clang warnings about narrowing conversions 2019-05-29 12:55:21 +02:00
directfb Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
eglfs eglfs: Fix raster windows 2019-08-07 11:46:19 +00:00
haiku Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
integrity Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
ios iOS Accessibility: implement accessibilityElements and check indexing 2019-05-21 12:31:07 +00:00
linuxfb Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
minimal Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
minimalegl Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
mirclient Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
offscreen Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
openwfd Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
qnx Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
vnc Move screen maintenance functions from QPlatformIntegration to QWSI 2019-03-19 13:08:25 +00:00
wasm eglfs: Fix raster windows 2019-08-07 11:46:19 +00:00
windows Fix hit testing in non-client area of fixed-size windows, don't show resize cursors 2019-07-31 20:13:49 +02:00
winrt QWinRTFileEngine: Handle QIODevice::Truncate when opening files 2019-07-29 12:22:55 +02:00
xcb xcb: fix thread synchronization issue in QXcbEventQueue::waitForNewEvents() 2019-07-08 13:23:39 +02:00
README
platforms.pro configure: refactor directx checks 2018-12-17 21:29:05 +00:00

README

The Qt Platform Abstraction - QPA

QPA is the platform abstraction layer for Qt 5 and replaces QWS and the
platform ports from Qt 4.

There is currently little documentation for QPA. The best approach for
developing a new platform plugin is to look at the other plugins and
see how they implement the APIs in question. The "minimal" plugin
is a good starting point. The xcb, windows, cocoa, and qnx plugins
are also actively developed and up to date.

QPA plugins are implemented by subclassing various QPlatform*
classes. There are two "root" classes: QPlatformIntegration for
window system integration and QPlatformTheme for deeper platform
theming and integration. QStyle is not a part of QPA.

There are no source or binary compatibility guarantees for the QPA
classes, meaning that a platform plugin is only guaranteed to work
with the Qt version it was developed against. API changes will
however only be made in minor releases. (5.1, 5.2, and so on.)

Class Overview:

QPlatformIntegration
    QPlatformWindow
    QPlatformBackingStore
    QPlatformOpenGLContext
    QPlatformSharedGraphicsCache
    QPlatformFontDatabase
    QPlatformClipboard
    QPlatformDrag
    QAbstractEventDispatcher
    QPlatformInputContext
    QPlatformAccessibility
    QPlatformNativeInterface
    QPlatformServices

QPlatformTheme
    QPlatformMenu
    QPlatformMenuBar
    QPlatformDialogHelper
    platform palettes
    platform fonts
    theme hints

src/platformsupport contains several helper classes for implementing
platform plugins on unix-like systems.