summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx
Commit message (Collapse)AuthorAgeFilesLines
* Adding QPlatformTheme support for Blackberry devices.Sean Harmer2012-05-197-2/+306
| | | | | | | | Starting off simple with fonts that follow the Playbook guidelines. Change-Id: If772f9a20c5e7566543be6bba47b49cdf3bf1524 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QNX: Special case z-ordering of the QDesktopWidget windowSean Harmer2012-05-191-1/+11
| | | | | | | | | | | | | | | | | The assumption that window creation order implies correct initial z-ordering is broken when dealing with certain window types. In this commit we special case the QDesktopWidget's window which maybe created after normal application windows yet still need to be layered below them. Without this fix we may accidentaly activate the Desktop window when the blackberry navigator service sends an event to activate the window group. That results in broken focus handling. Change-Id: I42dfde2efb4a0011e37e7bd2e7c5442590606a24 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Expose QPA API under qpa/*Girish Ramakrishnan2012-05-0713-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main reasons for doing this are: 1. _qpa.h end up in the master QtGui include file. QtGui is meant for userland applications. qpa code is neither binary nor source compatible. Inadvertant use of QPA api makes the user code binary-incompatible. 2. syncqt creates forwarding headers for non-private header files. This gives people the impression that this is public API. As discussed on the mailing list, even though QPA api is internal and subject to change, it needs to treated differently from private headers since they will be used by in-qtbase and out-of-qtbase plugins. This commit does the following: 1. The _qpa in QPA header files is dropped. 2. syncqt now treats any file with qplatform prefix as a special file and moves it to qpa/ directory. The recommended way of using QPA API in plugins is: #include <qpa/qplatformfoo.h>. This allows the user include QPA API from multiple modules (for example, qplatformfoo might be in QtPrintSupport) 3. The user needs to explicitly add QT += <module>-private to get access to the qpa api. 4. Creates compat headers for the olden style qplatformfoo_qpa.h and QPlatformFoo includes. This commit does not change the cpp filenames. This requires a more careful merging of existing non qpa cpp files and existing cpp files on a case by case basis. This can be done at anytime. The following files are not renamed as part of this changed but will be fixed as part of a future change: src/gui/kernel/qgenericpluginfactory_qpa.h src/gui/kernel/qgenericplugin_qpa.h src/gui/kernel/qwindowsysteminterface_qpa.h files were renamed using for x in `find . -name "qplatform*_qpa.h"`; do git mv $x "${x/_qpa.h/.h}"; done for x in `find . -name "qplatform*_qpa_p.h"`; do git mv $x "${x/_qpa_p.h/_p.h}"; done includes were renamed using script for file in `find . -name "*.h" -or -name "*.cpp" -or -name "*.mm"`; do sed -i -e 's,.*#.*include.*<\(Qt.*/\)\?\(QPlatform.*\)>,#include <qpa/\L\2.h>,g' \ -e 's,.*#.*include.*"\(Qt.*/\)\?\(QPlatform.*\)",#include <qpa/\L\2.h>,g' \ -e 's,.*#.*include.* "\(qplatform.*\)_qpa.h",#include <qpa/\L\1.h>,g' \ -e 's,.*#.*include.*"\(qplatform.*\)_qpa_p.h",#include <qpa/\L\1_p.h>,g' \ -e 's,.*#.*include.*<\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)>,#include <qpa/\2\3>,g' \ -e 's,.*#.*include.*"\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)",#include <qpa/\2\3>,g' \ $file done Change-Id: I04a350314a45746e3911f54b3b21ad03315afb67 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Query the screen physical size rather than assuming fixed dpi of 96Sean Harmer2012-05-071-10/+1
| | | | | | | Change-Id: I405e8d1cfbf7f0607f8525f9c8c93053109478d9 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Change remaining uses of {to,from}Ascii to {to,from}Latin1 [QPA plugins]Thiago Macieira2012-05-041-1/+1
| | | | | | | | | | | This operation should be a no-op anyway, since at this point in time, the fromAscii and toAscii functions simply call their fromLatin1 and toLatin1 counterparts. Task-number: QTBUG-21872 Change-Id: I4aef078ea87ecd3699de107d1e9352d9fb6d6e39 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Advertise window (de)activation to Qt event systemKevin Ottens2012-05-033-0/+34
| | | | | | | | | | | The integration plugin now connects screens to the newly introduced signals of the navigator event handler. The relevant screen then push a corresponding event to the Qt event loop. Change-Id: Ide6779bd1288c6560d113c77c60fc0ae30866d7f Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Emit signals to notify window (de)activationKevin Ottens2012-05-034-0/+46
| | | | | | | | | | | | The event notifier now deals also with the windowActive and windowInactive PPS messages. The event handler simply emit the corresponding signals. Change-Id: I1906a47a314bf81877e4dd3dc52c6463312f3aac Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Add implementation of virtual keyboard based on BPS eventsKevin Krammer2012-05-028-53/+353
| | | | | | | Change-Id: Ida4fa344c54db32b7b22b08a124b8c7b6df8adef Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Don't use obsolete qVariantValue, qVariantCanConvert, etc.Debao Zhang2012-05-021-1/+1
| | | | | | | | | | qVariantValue and qVariantCanConvert are Compatibility members, while in Qt4.8 they are marked as Qt 3 Support Members. qVariantFromValue and qVariantSetValue are Obsolete members. Change-Id: Ie8505cad1e0950e40c6f6710fde9f6fb2ac670fd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Handle navigator events in BPS event filterKevin Krammer2012-05-013-4/+80
| | | | | | | Change-Id: I37b5de4bf1e9f9bbe53910eb5e3f490172b28371 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Register for and handle screen events delivered through BPSKevin Krammer2012-05-017-50/+88
| | | | | | | | | | Delegates actual event inspection and reaction to the screen event handler class already used by the PPS screen event handler Change-Id: Ic07efa1de3f6b452f3091e901bd8a577175e3cf0 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Use BPS based event dispatcherKevin Krammer2012-04-307-2/+354
| | | | | | | | | | | | | | | Create a QPA specific subclass of the blackberry event dispatcher (basically the BPS equivalent to the QUnixEventDispatcherQPA created by createUnixEventDispatcher()). Create an event dispatcher event filter that will receive all BPS events and then either handle them itself or delegate to event subtype specific handlers. Change-Id: I112e0274156727d3aa9e5693b59d041c65be4daf Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Create interface for navigator calls and implement for BPS and PPSKevin Krammer2012-04-2611-100/+665
| | | | | | | | | | | | Makes QQnxServices available on non-BPS systems by delegating to an interface which is implemented on systems with BPS using the currenly used navigator API and on systems without BPS by sending an appropriate message to the navigator's PPS service interface. Change-Id: I0e32fb11e6debb7b7b4693c0bc02af4f75ee2162 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Use non-blocking reads on virtual keyboard pps device.Sean Harmer2012-04-261-1/+6
| | | | | | Change-Id: Iad350c948049128f3014a6ad6536ac9dc2ee86d5 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
* Fix compilation when debug output enabled on virtual keyboardSean Harmer2012-04-261-1/+1
| | | | | | | Change-Id: I467e9ef624bcd10cb5b61f6f665a7bbb0bb1f57a Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
* Build the QNX plugin with -no-opengl enabled.Stephen Kelly2012-04-235-9/+59
| | | | | | Change-Id: I776a3eb0d7ada4399b8c191bbfa1e3ed9236b20e Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Make the QNX QPA plugin work with non blackberry.Stephen Kelly2012-04-233-30/+61
| | | | | | | | Change-Id: Id85d18d9f21711e8d53e8e4bfdf39d10e135f593 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Send Expose event when top level window becomes visibleKevin Krammer2012-04-232-0/+10
| | | | | | | | Change-Id: I0b45c27fa03bbe073c88ce8d01d9fb283f4051c1 Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Do not force OpenGL sample buffers on in the qnx qpa pluginSean Harmer2012-04-191-1/+0
| | | | | | | Change-Id: I6af40382102f2163f5ad8606b498a89db420c5d6 Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Use the new plugin metadata method in the QNX QPA plugin.Sean Harmer2012-04-164-11/+63
| | | | | | Change-Id: Ib40807b97bf8d9ec26e0dfe2797786d9352ce579 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Refactor navigator event handlingKevin Krammer2012-04-127-210/+357
| | | | | | | | | | | | | Separate PPS based navigator event notification handling and implementation of the actual event handling. Like the similar refactoring for screen events, this will allow to reuse the same event handler class for BPS driven event processing. Change-Id: I29d4a082cb01ff7943b7822ea9aa8ad622fda593 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Re-enable PPS based rotation handling for blackberry devicesKevin Krammer2012-04-041-2/+0
| | | | | | | | | BPS based event handling not there yet, so make use of the non-blackberry QNX facility until it is. Change-Id: I95cdbfbe36cd23e71710c8cad0b292a5a375c214 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Fixing the QNX QPA build for non blackberry targetsKevin Krammer2012-04-031-4/+1
| | | | | | | Change-Id: I3d0bb33cadae946d21f8b2566840be9b1ae5101a Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Delete the screen event handler after its last user.Thomas McGuire2012-04-031-1/+2
| | | | | | Change-Id: I2e3c6d08c0dcdd4b954570e9a2198c190c8fffd2 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Move handling of rotation changes from event handler to screenKevin Krammer2012-04-035-20/+29
| | | | | | | | | | | | | | Have the navigator event handler emit the new rotation as a signal argument and let the screen class handle all parts of the change, i.e. also notifying the window system about the geometry change. This also allows to rotate all screens, not just the primary screen, if this should be necessary. Change-Id: I304a80232b84d2d9130e38e955d5a75b1ccad775 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Rename offset() to setOffset()Thomas McGuire2012-04-032-4/+4
| | | | | | | Change-Id: Iacf7b0a7f3cb3745711fe646e14317be1711d891 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Fix adding and removing of windows to their screenThomas McGuire2012-04-032-9/+5
| | | | | | | Change-Id: I5e0edf1515db60689c86b16b978863ae9e49bfdb Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Get rid of false positive warning when stopping video playbackThomas McGuire2012-04-031-2/+4
| | | | | | | | | | | The multimedia library actually creates two windows, and therefore the first call to updateHierarchy() would try to update the z-order of a no longer existing window. Change-Id: I499d049e2885ff848f38d9cc5880aa63235b1b4c Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Fix indentationThomas McGuire2012-04-031-5/+5
| | | | | Change-Id: I965e7ba2e20798966a8215427e6724e3666aaeea Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Add a native interface with the possibility to query the window groupThomas McGuire2012-04-025-3/+139
| | | | | | | | | | This is needed for QtMultimedia, as it uses the native mmrenderer API which expects to get passed the window group when creating a video overlay window. Change-Id: I07d790e6e20714741c04917068b41b71b8939fa4 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Adapt QNX platform input contexts to QGuiApplication::focusObject()Pekka Vuorela2012-04-024-50/+24
| | | | | | | Change-Id: I4c5028f76b52e3838231eff2a599e85347c16598 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Add support for screen overlays / foreign windowsThomas McGuire2012-03-308-14/+103
| | | | | | | | | | | | | We're not the only one creating native windows. When using the multimedia API, the multimedia library creates a video window for video display. Here we need to deal with giving this video window overlay a proper z-order, otherwise it will never get visible. Change-Id: Ibff0382ebee5cda87408b91c8181a4104fc4a1a3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Remove static methods in QQnxScreenThomas McGuire2012-03-306-110/+130
| | | | | | | Change-Id: If0fd910848ba70d3b0a2d948065b09337f8e51c3 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Don't assume windows and GL contexts are created on the primary screenThomas McGuire2012-03-302-3/+3
| | | | | | | Change-Id: Ib4f1c377bf93b1041b5f5e3fc56c0e01e35aeb38 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Forward native key codes to QWindowSystemInterfaceRafael Roquetto2012-03-301-1/+2
| | | | | | | | | | | | | Using QWindowSystemInterface::handleExtendedKeyEvent() instead of QWindowSystemInterface::handleKeyEvent(). While the former allows us to forward the native key codes to QWindowSystemInterface, the latter initializes them with 0, causing QKeyEvent::native*() to return 0, instead of the actual values. Change-Id: I596ad2e07645e091529ca514682c98d095244a73 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Separate virtual keyboard interface and implementationKevin Krammer2012-03-3010-111/+241
| | | | | | | | | | Allows us to create a BPS based implementation and drop it in without further changes to users of the interface. Change-Id: I16313717e1200d717c330cbb18c3314567af51c2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Remove the virtual keyword from reimpl. methodsRafael Roquetto2012-03-2810-66/+66
| | | | | | | | | | Qt Coding Standards state that "when reimplementing a virtual method, do not put the virtual keyword in the header file'". Change-Id: I89ae34eee78ad5b58a3e41845384a656225ed658 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Sean Harmer <sh@theharmers.co.uk>
* Refactoring virtual keyboard class into non-singletonKevin Krammer2012-03-2810-84/+98
| | | | | | | | | | | | | Getting rid of the singleton gives us better control over when the virtual keyboard handling class is instantiated and configured. Also notify screens about keyboard height changes and let them notify through QWindowSystemInterface instead of "guessing" the screen in QQnxVirtualKeyboard. Change-Id: I71a7f6b5e9d5455563404f6abe7a0daec567a12d Reviewed-by: Sean Harmer <sh@theharmers.co.uk> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Move screen event processing into its own classKevin Krammer2012-03-286-466/+592
| | | | | | | | | | The event handler class can then be reused when we have proper BPS event support available from corelib Change-Id: Iafe645e69248597377045c711108ce0acbe3984b Reviewed-by: Sean Harmer <sh@theharmers.co.uk> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Initial implementation of QQnxServicesRafael Roquetto2012-03-235-0/+176
| | | | | | | | | | Extends platform services for QNX devices. Change-Id: I1eb685cdb38591cd73eaaf40ffb5691db0142953 Reviewed-by: Jeff Kehres <jkehres@rim.com> Reviewed-by: Sean Harmer <sh@theharmers.co.uk> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Make QNX virtual keyboard handling main event loop drivenKevin Krammer2012-03-222-90/+92
| | | | | | | | | | | | Refactor from polling in an endless loop running in a separate thread to using a QSocketNotifier working on the main thread. Similar to "de-threading" of the navigator event handling in 9dc86ac0f2d019f93665c1ae0e3c2cd33fd88bce Change-Id: I994dceed07312a3846737c8bea34cffa4ab408f1 Reviewed-by: Sean Harmer <sh@theharmers.co.uk> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Need to check new rotation against initial rotation instead of currentKevin Krammer2012-03-221-1/+1
| | | | | | | | | Only swap width/height of initial geometry if orthogonal to initial rotation not orthogonal to current rotation Change-Id: I825954e98dee6c0d07a284307dfb8e1f9fd538e6 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Sean Harmer <sh@theharmers.co.uk>
* Use main thread event loop for navigator event processingKevin Krammer2012-03-215-72/+55
| | | | | | | | | Removes the need for an extra thread by creating the event handler's socket notifier in the context of the main thread. Change-Id: If8c7bb986074083b5b9a7b9c96734a970ba32f92 Reviewed-by: Sean Harmer <sh@theharmers.co.uk> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Remove unused forward declaration.Sergio Martins2012-03-141-1/+0
| | | | | | | Change-Id: Ib207e0036226dd7131195244bf49bbfae142cd22 Reviewed-by: Sean Harmer <sh@theharmers.co.uk> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
* Rename blackberry QPA plugin to QNXSean Harmer2012-03-1231-0/+7674
Changing the naming scheme from Blackberry to QNX in line with pattern of using platform names. Change-Id: I048a6a18010bc932311d63c8dde19ccab97894c8 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>