summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
Commit message (Collapse)AuthorAgeFilesLines
* qpa: Fix crash when native interface is nullGirish Ramakrishnan2012-07-091-8/+9
| | | | | | | QPlatformNativeInterface is optional. Change-Id: Iae2a6de63fc8a36deb6059047a0d7f05defb6b5c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove Library dependency on SettingsTasuku Suzuki2012-07-092-6/+6
| | | | | | | | made QLibraryInfo available with QT_NO_SETTINGS. QKdeTheme is removed when QT_NO_SETTINGS is defined. Change-Id: I63d619bb305e6c23985d9ea50c72d39a697b7a4b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* QPalette: add member-swapMarc Mutz2012-07-062-32/+50
| | | | | | | | | | | | | | Implemented as in other shared classes (e.g. QPen), except that I wrapped the bitfield in a union to speed up swapping. (GCC didn't manage to optimize (hand-rolled) swaps of adjacent bit field elements into an integer one, even at -O2). GCC -pedantic complains about anonymous structs, so I had to give the struct in the union a name. Change-Id: I519e1c2f88f6ae2dffed38b493991189d67073b8 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* make QtGui compile when QT_NO_WHEELEVENT is definedJeremy Katz2012-07-061-0/+2
| | | | | | | | | | | | This is necesary but not sufficient to make the small configuration build. Task-number: QTBUG-24816 Change-Id: I1a06555e6f54f4d3c09a34fd50bf76e7b47d469f Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
* Native drag implementation on MacJames Turner2012-07-041-1/+1
| | | | | | | | | | | | | | | | Create a native implementation of QCocoaDrag, using the 10.6 (and earlier) Cocoa dragging API. This matches the implementation in Qt4 closely for the moment. In the future it may be desirable to create an alternative implementation using the new (non-blocking) drag API introduced in 10.7, but that will require deeper changes to the mime-data handling. This changes makes one more method on QPlatformDrag virtual, since the Cocoa behaviour diverges from the base version: ::defaultAction is customised. Change-Id: I1843293a62b2b4973a07b5e75ea3c312dc064018 Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Properly detect the max texture size when using QOpenGLPaintDevice.Jocelyn Turcotte2012-07-042-1/+37
| | | | | | | | | | | The value is currently hard-coded to 1024, this is a problem since any image painted with a size higher that this will be scaled down before being uploaded. This patch copies the implementation from QGLContext which works correctly. Change-Id: Ia2bda60cf21d9adf13c91cea4854a2b20e4041f2 Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
* Make QGenericPlugin and QGenericPluginFactory public APIGirish Ramakrishnan2012-07-046-20/+14
| | | | | | | | | | These classes are not specific to QPA. Discussed in QtCS 2012. Change-Id: I32bc5fad4f0fa5e7095af86d61966fdf4d9e4ad7 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Platform-plugin support for QSystemTrayIcon.Christoph Schleifenbaum2012-07-035-2/+240
| | | | | | | | | | | | | | | | | | | | | Implement QPlatformSystemTrayIcon providing QPA-plugin-support for system tray icons. Make QSystemTrayIcon use this as new backend. Ported over qsystemtrayicon_mac.mm to qcocoasystemtrayicon.mm to provide Cocoa support for the new interface. It had to be changed to match the interface, especially for icon and menu handling. This interface is made to not use QStyle or QMenu which are related classes of QSystemTrayIcon. It's therefore not introducing QtWidget dependency into the platform plugin. Task-number: QTBUG-20978 Change-Id: I0d0a73835698b3b4f97219d4f5bbcfa2af57dbe2 Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Suppress QWindowSystemInterface inclusion warnings.Girish Ramakrishnan2012-07-032-3/+3
| | | | | | | | | | | | | Since QWindowSystemInterface is now part of QPA API. The correct inclusion is: #include <qpa/qwindowsysteminterface.h> #include <qpa/qwindowsysteminterface_p.h> Bulk of the work was done by: find . -type f | xargs sed -i -e 's,#include <\(QtGui/\)\?QWindowSystemInterface>,#include <qpa/qwindowsysteminterface.h>,g' Change-Id: If75fc32611e72ef1cf58505794def375b1acf74a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove _qpa from cpp filenamesGirish Ramakrishnan2012-07-0326-25/+25
| | | | | | | | 36547f4eff44361f7a6acd0cff107c0e47561f93 removed the _qpa from .h files and promised to remove it from .cpp files at a later date. Change-Id: I24a5c3796f6b07dd9a1931b699f3212d315edb12 Reviewed-by: Andrew Stanley-Jones <andrew.stanley-jones@nokia.com>
* Make QWindowSystemInterface part of QPA APIGirish Ramakrishnan2012-07-035-10/+19
| | | | | | | | | | | | | | | As discussed on mailing list and QtCS 2012. Any file starting with qwindowsystem is now marked as QPA API. This change drops _qpa from the filenames and adds gui-private where required for the code to compile. This change is backward compatible otherwise and compat headers are created for the old inclusion headers. Change-Id: I72ea0f394dee74f46e614fcf11ab5500ac9fef2a Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QtGui: add member-swap to shared classesMarc Mutz2012-07-031-0/+6
| | | | | | | Implemented as in other shared classes (e.g. QPen). Change-Id: I5b96d4a4795870d6252aa53de6fbaedde7c0095a Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Add framestrut mouse events.Friedemann Kleint2012-06-296-6/+58
| | | | | | | | | | | | | - Add infrastructure to QWindowSystemInterface. - Add a setter for enabling framestrut events to QPlatformWindow. - Add Windows implementation, pass keyboard modifiers. QDockWidget relies on it for docking. Task-number: QTBUG-26296 Change-Id: I9d84b356e9a5eb341f57b6f51f34b6b494ff7f87 Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Remove deprecated tentative commit from QInputMethodEventPekka Vuorela2012-06-282-26/+0
| | | | | | Introduced and deprecated during Qt5 development. Change-Id: I5bceefcb5dfc13f8eae2ad22f04feeea5f87dcb3 Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
* Move QPlatformInputContextPlugin/Factory to QtGuiWeng Xuetian2012-06-285-0/+330
| | | | | | | | | | | | | PlatformSupport is no longer shared and there should be no plugin factory in it otherwise it will break plugin loading. Since PlatformInputContext is already in QtGui, so move QPlatformInput- ContextPlugin/Factory to resolve the platforminputcontexts plugin loading problem. And remove platformsupport-private dependency from existing inputcontexts plugin. Change-Id: If4cb766470b8f9c8b72157da86cb33b4e1ff09e3 Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
* Get started with patching up the Qt GUI docsGunnar Sletta2012-06-2814-2/+49
| | | | | | | | Primary goal, make the front page of the Qt GUI module a bit more clarifying and avoid downstream references inside the Qt GUI docs. Change-Id: Icbcfbb64b93963add889bf83711daa9575885c02 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Remove deprecated method from new class.Thiago Macieira2012-06-271-3/+0
| | | | | | | | | I'm pretty sure I've caught all uses of deprecated methods throughout the Qt codebase, except for the ItemViews changes and for QtWebKit (which must still compile with Qt 4). Change-Id: Ic17801b71434fa41c647f97c9e5e4234ad4f9af0 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add QPA prefix and version number to QPA plugin factory interfaces.Friedemann Kleint2012-06-272-2/+2
| | | | | | | The interfaces may change in Qt minor versions. Change-Id: I43bc6245ddbba8232e00313bdc64e8e60c7eab6f Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Add QGuiApplication::setApplicationDisplayName.David Faure2012-06-273-0/+32
| | | | | | | This is for use in window titles. Change-Id: I0070a08abd379ae2edcfab4413c182bd9e840678 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Convert QPA menus to use QIcon, and enable icons.James Turner2012-06-271-1/+2
| | | | | | | | | Icon support was disabled in QPA menus, now QIcon is in QtGui, convert the QPA interface, enable setting the icon in QMenu, and make the Cocoa implementation use it. (And fix a ref-counting leak if an icon is actually set) Change-Id: Ica203bf6826b79d8beee58f39febc851b9633a66 Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Add a method for querying window activation status from QPA.Morten Johan Sorvig2012-06-272-0/+12
| | | | | | | | | | Add QPlatformWindow::isActive(), where the platform can do further isActive tests, and Windows implementation for it. Change-Id: I1acfc44d3a4ab36a3aaee52fb7b5f5b40661095e Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fixed missing way of choosing EGL renderable type with QSurfaceFormat.Samuel Rødal2012-06-272-0/+36
| | | | | | | | | | | This has been long overdue, since EGL now lets you choose between desktop and ES based OpenGL. We also add OpenVG for those who want to use raw OpenVG with a QOpenGLContext. The underlying EGL API for using OpenGL / OpenVG is the same, with eglMakeCurrent() and eglSwapBuffers(). Change-Id: Ib0146b3fde5fe632069ebf99e7712f496ee7ea4d Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QPlatformWindow: Add Window masks.Friedemann Kleint2012-06-263-2/+14
| | | | | | | | | Add functionality for window masks to QPlatformWindow, which is required to implement QWidget::setMask() in order to fix the regression in functionality from Qt 4.8. Change-Id: I2c2d5629f0b4c6d90e52595ad70b13559aab1f41 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix docs mentioning Q_EXPORT_PLUGIN2Lars Knoll2012-06-251-1/+1
| | | | | | | | Fix all remaining places where Q_EXPORT_PLUGIN2 was being used in the documentation. Change-Id: I7be67b83c18545d0e74f250b4b26583444b01909 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make qtbase compile with QT_NO_DRAGANDDROPTasuku Suzuki2012-06-241-1/+5
| | | | | | Change-Id: Ief16e435af6e6d246b84505a1c1208994c7b0b38 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Jeremy Katz <jeremy.katz@nokia.com>
* Docu: fix copy/paste typoDavid Faure2012-06-221-1/+1
| | | | | Change-Id: Ie3573ab6983c2b66c66b0f9c342f72018674016c Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QPA docs: list the platform names that the method is likely to return.David Faure2012-06-221-0/+3
| | | | | Change-Id: Ia98c534fbdb157ff7b2b328a832941772ea833ec Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* fix doc typo in qwindow.cppJoerg Bornemann2012-06-211-1/+1
| | | | | Change-Id: I0980319e32b94882fe882c57cd8341f6b3e62048 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Document and use UserEvent::nullWindow for event deliveryGirish Ramakrishnan2012-06-201-54/+61
| | | | | | | | | | | | | | | | | nullWindow is used to track if the window was null when the event was created. If the window was null at contruction time, the qpa event delivery code will choose a window to deliver it to. If the window was not-null at creation time but became null during the actuall event processing time, the event is ignored. All the event delivery except the touch event delivery has been changed to reflect this. I have not changed touch event delivery because I don't really know what all need to be retranslated into new window co-ordinates. Change-Id: Ic62d12a13e70dd4d01226509411817db1b6af108 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Prevent ending up in a state where focus is perpetually grabbed.Samuel Rødal2012-06-183-10/+25
| | | | | | | | | | | | | | | Mouse / enter / leave / key events etc are all blocked when a window has the blockedByModalWindow flag set. The problem appears if a QWindow is created and only later directly or indirectly parented to a modal window that's currently showing. Since the decision on whether a window should be blocked or not is based on its parent / transient parent chain, we need to reevaluate the blocked status each time the parent or transient parent of a window changes. Task-number: QTBUG-26112 Change-Id: Ida6b118b556fe26d17fa86335a0fe7baddc7eaf8 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Introduce QPA API for size grip handling.Friedemann Kleint2012-06-142-0/+19
| | | | | | | | | | - Introduce API to do size grip handling (mouse press and move). - Move Windows code to Windows plugin. - Move X11 code to XCB plugin and activate it. Change-Id: I2f61d6ddc1fa07447e668554d41ecc820efca23f Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Deliver wheel events when window is nullGirish Ramakrishnan2012-06-141-15/+15
| | | | | | | | | | | The generic input plugins do not set the window parameter. So, use the same technique we use with mouse event handling to determine the window to deliver the event to. Done-with: Johannes Zellner Change-Id: I950c0ad2f330dccfdcc41b8d01f62cd39902bc9c Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Only quit if there are no visible widgets or windows.Stephen Kelly2012-06-122-2/+2
| | | | | | | | | | | | | | We need to let the QGuiApplication determine whether quitting is appropriate based on whether there are visible top level QWindows after the last top-level QWidget was closed. This solves the issue raised here: http://thread.gmane.org/gmane.comp.lib.qt.user/1880 The transientParent is the QWindow equivalent of parentWidget on QWidget, so the test in QGuiApplication::shouldQuit is similar to the one in QApplication::shouldQuit. Change-Id: I500eff8d5887f24415180134b3a4be3c630a896f Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Clarify QTouchEvent docsLaszlo Agocs2012-06-121-0/+9
| | | | | | | | | Mention something about touch handling with QWindow and document the non-partialness of touch events which has been taken for granted since 4.6, but has not been documented at all. Change-Id: I9ec75f74153bbc28e146b000d70fb26384e497a3 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix crash in qt_qpa_core_dispatcher() at application exit.Miikka Heikkinen2012-06-081-1/+6
| | | | | | | | | | | | | | | | | | In some situations it is possible to get events when QCoreApplication has already cleared the 'self' pointer and will thus not return an instance. For example, destroying screen at application exit when there are parentless dialogs open will result in hiding the dialog, which at least in Windows causes a call to QWindowSystemInterface::handleExposeEvent() which will need the core dispatcher down the line. Fixed the crash by checking if the QCoreApplication instance is valid instead of blindly using it. This should cause no problem as unhandled events are simply queued. Task-number: QTBUG-26061 Change-Id: Ide2350a62208433728e0271192c1da4b1efacc9b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove widgets lib dependency on platformsupport.Frederik Gladhorn2012-06-082-0/+12
| | | | | | | | Instead of the dependency add the one needed function as virtual to the QPlatformServices in QtGui. Change-Id: Ia4455f5ac88ec4d0480bd81635cebba62bbd8ac5 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove the QFactoryInterface dependency from platform pluginsLars Knoll2012-06-084-25/+6
| | | | | Change-Id: I4010e59dcd8a790e06bb9a0ccf3cc9a5c7737ed1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QFactoryInterface from the generic pluginsLars Knoll2012-06-083-22/+8
| | | | | Change-Id: I5a4351ca4b6605f9628496701bb8c6063cf36c78 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Added SpellCheckUnderlineStyle theme hint.Samuel Rødal2012-06-072-1/+8
| | | | | | Task-number: QTBUG-25115 Change-Id: I70abbed426ad8bebca51823ed5ce16f2f300b5cc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Added QScreen::setOrientationUpdateMask().Samuel Rødal2012-06-067-6/+88
| | | | | | | | | | | | It might be too expensive to always have an accelerometer sensor running, so introduce API so that the application has to explictly ask to get the orientation updates it's interested in. Change-Id: Ib7dc5ad8807718409f744ebef53f4476aa05175d Reviewed-by: Ian Monroe <ian.monroe@nokia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
* Export QPlatformIntegrationFactory to make it usable outside of QtGui.Balazs Kelemen2012-06-061-1/+1
| | | | | | | | | | | | QPlatformIntegrationFactory can be used to load a platform plugin dynamically. It can be useful for an external platform plugin that want to define some behaviour on it's own and use the default plugin for the rest. We are going to implement such a plugin in WebKit for the test infrastructure to tweak the platform backends in order to provide more platform independent layout test results. Change-Id: Iaaabe1cbc173a03132d83474faa7858aead4cae0 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Verify the surfaceType before activating the GL contextHolger Hans Peter Freyther2012-06-053-17/+11
| | | | | | | | | | | | Verify that the surfaceType() of the QPlatformContext is of type OpenGLSurface before making the context active. Make it possible to get the QSurface from a QPlatformSurface, make QPlatformWindow use that to access the QWindow. Remove the setSurfaceType call from the eglfs plugin as this hiding a problem. Change-Id: I08906da052e066bb1f1f042030643c6389ab17d7 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Use QPointer instead of QWeakPointer.Stephen Kelly2012-06-054-20/+21
| | | | | | | | The use of QWeakPointer for tracking QObject pointers is to be deprecated. Change-Id: If460ca7f515db77af24030152f4bd56e1a5fae7c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Introduce nativeOrientation() to QPlatformScreenKevin Ottens2012-06-052-0/+13
| | | | | | | | | | | | | | Now QPlatformScreen has a nativeOrientation() method which default implementation return Qt::PrimaryOrientation. Its purpose is to return the native orientation of the device (e.g. when the device logo is right up). Only the QPA backend can know for sure what this native orientation is, so allow QPA backends to override it with a finer result. Change-Id: I3bef14acb6b8568e64398ff919d9cb4461a2c9cc Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Add StartDragVelocity to style hintsLaszlo Agocs2012-06-054-1/+10
| | | | | | | | This will be used by Flickable in combination with the drag distance to improve the drag start detection logic. Change-Id: Ica30042ef3d15041d857b07fa4173dde3d3f900f Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove QCursor::handleGirish Ramakrishnan2012-05-313-15/+1
| | | | | | | This used to be the Qt/Embedded's QCursor handle implementation. Change-Id: I31b8ed44ac9325defcb13d887949d9536a262be8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QCursor: Remove doc of obsolete functionsGirish Ramakrishnan2012-05-312-37/+0
| | | | | | | These functions don't exist in QPA land. Change-Id: I50c0588cf03ed64878c8ed864dc18a7558b20156 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QPA tablet event supportLaszlo Agocs2012-05-317-1/+238
| | | | | | | | | | Should be sufficient to allow implementing the actual functionality in xcb/cocoa/windows to match the Qt 4 level of tablet event support. Task-number: QTBUG-25864 Change-Id: Iebcca256dfba841d8976b58fda1b76026d3133a3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Remove QUpdateEvent from the public headersLars Knoll2012-05-302-22/+0
| | | | | | | | | It's only used internally in qwidget, so it might as well live in qwidget_p.h. Task-number: QTBUG-25070, QTBUG-25373 Change-Id: I87770e0b49253b4bdebe90ce84dd42448d6175bd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add some batching functions to QPlatformSharedGraphicsCache ifaceEskil Abrahamsen Blomfeldt2012-05-302-5/+92
| | | | | | | | | | | | This adds some pure virtual functions to the interface to enable batching requests. The interface functions no longer need to be invokable, as invokeMethod() is too slow to be used at the required frequency anyway. Change-Id: I89b607de1a28f3f4b728c334c04bcd443d4366b4 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>