summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Fix focus handling of native child widgets in xcb.Gunnar Sletta2013-02-191-0/+2
| | | | | | Change-Id: If4d596195624011142bff6853849a23064e478df Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> (cherry picked from commit fc663b5f9aae16fe6a03160e3eb148a5f742ac58)
* Fixed QT_NO_ACCESSIBILITY build.Bjoern Breitmeyer2013-02-131-0/+2
| | | | | Change-Id: I14229753fc2e3b54da8a285ae9d27201b73e24be Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fixed QSurfaceFormat documentation about DebugContext requiring GL3+.Samuel Rødal2013-02-121-1/+0
| | | | | | | GL_ARB_debug_output only requires OpenGL 1.1 and above. Change-Id: Ib79d370fac36fa737817ea678f0dee25283dfa31 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Mac: Remove broken platformPluginPath code.Morten Johan Sørvig2013-02-121-9/+0
| | | | | | | | | | | | | The missing "/" in front of "../Plugins" prevents this from working - platformPluginPath is never set. Deployed platform plugin loading works in spite of this via qt.conf which adds the plugin path to QCoreApplication::libraryPaths(). Change-Id: I7ae4d13c65a380ddad72bffd29b776c39ea91c8a Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix QWindow::setFramePosition() to keep the size.Friedemann Kleint2013-02-111-1/+1
| | | | | Change-Id: I14551e0d0573c2e8d86d76eadab4df9f3c8ed5e4 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Factorize code for formatting window titles into QPlatformWindow.David Faure2013-02-062-0/+26
| | | | | Change-Id: I0dcccd08916fc2ea1b795681e9b98a9550ef51b6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix minor typos in docs, printed messages & commentsSze Howe Koh2013-01-281-2/+2
| | | | | | | Missing apostrophes Change-Id: I3ef5e9d494fb7a37f8e6075f24cd3a274e572c23 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc, Qt GUI: Fix "no \inmodule command" warningsSze Howe Koh2013-01-284-0/+8
| | | | | | | | Explicitly add "\inmodule QtGui" to Qt GUI classes Change-Id: Id641c1dc98770fbd994cecc375ca46c01f083236 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Fix very minor typoSze Howe Koh2013-01-281-1/+1
| | | | | Change-Id: I6af8e81296ef0dc3fcdfd67fae6899bc7c93b206 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Doc: Fix module name formatSze Howe Koh2013-01-253-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow the conventions at http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation QtCore -> Qt Core QtDBus -> Qt D-Bus QtDesigner -> Qt Designer QtGui -> Qt GUI QtImageFormats -> Qt Image Formats QtNetwork -> Qt Network QtPrintSupport -> Qt Print Support QtScript -> Qt Script QtSql -> Qt SQL QtSvg -> Qt SVG QtTest -> Qt Test QtWebKit -> Qt WebKit QtWidgets -> Qt Widgets QtXml -> Qt XML QtConcurrent -> Qt Concurrent (partial) QtQuick -> Qt Quick (partial) Also, distinguish between "module" and "library" Change-Id: Icb8aa695ae60b0e45920b0c8fce4dc763a12b0cd Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Minor QWindow documentation improvement for the accessor/mutatorsLaszlo Papp2013-01-251-6/+6
| | | | | Change-Id: I003e5dbf1e87fd98cb24c2efdfd39560326f2731 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* QGuiApplication::font(): assert that a GUI app instance existsJ-P Nurmi2013-01-211-0/+1
| | | | | | Task-number: QTBUG-28306 Change-Id: Ia5b01265e7f88fdd8c2738ef03b14e83829625b0 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-18109-109/+109
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Doc: Fix documentation for devicePixelRatio() functionsTopi Reinio2013-01-173-9/+6
| | | | | | | | Fix Incorrect use of \sa, missing markup for comment block and typos. Change-Id: I1b7e477b7429ace30ca3ab25c4814c8cba659a65 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix QOpenGLContextGroup object leakJian Liang2013-01-141-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-29056 QOpenGLContextGroup object is designed to be destroyed by deleteLater(), but this method will not always work due to the fact that in many cases event loop will exit before the deferred deletion of the QOpenGLContextGroup object is queued. Think about the following case: int main(int argc, char *argv[]) { QApplication a(argc, argv); QGLWidget w; w.show(); return a.exec(); } In the above program, the event loop will exit before QGLWidget object's destruction. This will cause the QOpenGLContextGroup object hold by QGLWidget object never been deleted. This patch will delete QOpenGLContextGroup object directly with delete operator if the current thread is the same as the thread which the QOpenGLContextGroup lives in. Change-Id: If835d7482474f4a668763fc7c21b293a27f075fd Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Replace macro qdoc with Q_QDOCDebao Zhang2013-01-081-1/+1
| | | | | | | | Both qdoc and Q_QDOC are used in source code, which looks not good. Change-Id: I4f3a71670278b0758d92bfa5db086a07e1b1acfd Reviewed-by: hjk <qthjk@ovi.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Fixed wrong emits of x/y/width/height changed signals in QWindowSamuel Rødal2013-01-041-9/+9
| | | | | | | | | | We should only emit these when the corresponding property value changes. Since these are changed asynchronously in the case of a platform window, we should not emit them in the setter, as they are already properly emitted in QGuiApplicationPrivate::processGeometryChangeEvent(). Change-Id: I5ac00601ddb4e7a8ff02376e5f5135d427913119 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Fix QGuiApplication::keyboardModifiers() and QGuiApplication::mouseButtons()Jon Severinsson2013-01-042-5/+7
| | | | | | | | | | | | | | | | | Previous commit b2363a935c8dac fixed keyboardModifiers() after QPA event processing, but broke QTestLib, which expects spontaneous input events sent to qApp->notify() to update keyboardModifiers() and mouseButtons(). The commit also did not fix mouseButtons() after QPA event processing, and missed keyboardModifiers() after QPA Tablet event processing. This commit fixes all these shortcommings in b2363a935c8dac. Includes test case by David Faure <faure@kde.org> Task-Number: QTBUG-26887 Change-Id: I8518b06c4ce86ea7b35120e3353a45ea2a81d356 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Accessibility: Activate in QGuiApp instead of QApp.Frederik Gladhorn2012-12-161-0/+4
| | | | | | | | This makes it possible to use accessibility with QQuickWindow. Change-Id: I5fccd5f25021c4953b03e146705f48a198dbaaa7 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Implicit conversion of shortcuts to string is gone.Frederik Gladhorn2012-12-141-1/+1
| | | | | | | | This only effects compilation with DEBUG_QSHORTCUTMAP. Change-Id: I184e644f2165049336cee8a6ac63a3301cf4c849 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Entered hardcoded url for Gnu EmacsNico Vertriest2012-12-141-1/+1
| | | | | | | | | | Corrected in qkeysequence.cpp Link from external-sites not working So, entered hardcoded url. Task-number: QTBUG-27512 Change-Id: I5b8d25d2b1f4f4fb0d57d2306de7f1b7c3dc40e3 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* XCB: add support for getting and setting appTime and appUserTime.David Faure2012-12-142-0/+8
| | | | | | | | | | | | The QX11Info class needs this. This required adding the missing nativeResourceFunctionForScreen in QPlatformNativeInterface. Change-Id: I2c6e91c7f122f3ecdf769a177deafd2aa3896e2f Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fix empty window title regression, add application display name to window titleDavid Faure2012-12-141-1/+6
| | | | | | | | | | | | | | | This increases consistency a lot: all windows and dialogs from a Qt application will show the app display name in the caption, on Windows and X11. This helps identifying which app a dialog belongs to, which is especially useful when the dialog is very generic and shows up unexpectedly. For compatibility reasons, the app name is added to the caption only if setApplicationDisplayName() was called -- or if the caption would be completely empty. The standard Qt4 case (setWindowTitle + no display name) is unchanged. Change-Id: Ib284c62c1f4c0bc923e5bc2d10247d95e9aa76c1 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fix QWidget::setWindowOpacity() when called before show().Friedemann Kleint2012-12-122-2/+6
| | | | | | | | | Pass opacity from the QWidget to QWindow and to the platform windows. Task-number: QTBUG-28477 Change-Id: If5a85d9183bd1ca33dac2052936ecd1e6c0b5f6c Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* De-inline all setters in QWindowShawn Rutledge2012-12-122-77/+84
| | | | | | | | | | | | | | | | If we don't do this, we can have binary compatibility issues later. For example https://codereview.qt-project.org/#change,41700 will change the behavior of setWidth and setHeight to call setSize instead of setGeometry, because we don't want changing the height to also set the position of a window; if x and y are left uninitialized it needs to remember that fact. But if setWidth is left as an inline method, calling setGeometry, then an application which was built with 5.0 would behave differently than an application built with 5.1, even if Qt is upgraded after the application was built. To generalize, setters should never be inlined. Change-Id: I1ec42cb61a45fe541b3f3bb99d1b1ca24ad2a517 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Some fixes to the OpenGL docs in GUIGunnar Sletta2012-12-121-1/+1
| | | | | Change-Id: I6415ff16b1765a5814d50a4cd39db00495d43073 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Remove incorrect and confusing documentation from qplatformwindow.cppSamuel Rødal2012-12-111-3/+0
| | | | | Change-Id: If3fd383bf7ff08a04df2e11c727c11aeef05a6de Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Compile with QT_NO_CURSOR.Volker Krause2012-12-071-0/+2
| | | | | | | | | | | | | Mostly straightforward, the a11y changes might look a bit drastic, but the base class QAccessibleTextWidget was already disabled in this case, so we have to obviously take out its sub-classes as well. Change-Id: I682ace20d6938688ddb1da23c3463f3c025fab8e Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
* Removed requestOrientation() API from QWindow.Samuel Rødal2012-12-065-90/+10
| | | | | | | | | | | There are no proper implementations of this API, and as it stands it only acts to confuse anyone who stumbles across it. It will be better to revisit the full cross platform orientation API story for 5.1. Change-Id: Iff7054a32c6e5e4ad0cc0493a5e4ecc35a6ec4f3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Fixed crash in tst_qguiapplication with QT_QPA_PLATFORM=minimalSamuel Rødal2012-12-051-1/+2
| | | | | | | | | | | The tst_qguiapplication creates and destroys multiple instances of QGuiApplication. Since the minimal platform plugin doesn't report any theme names, the platform_theme never gets set to 0 in init_platform, and we end up trying to use or at least delete an already deleted QPlatformTheme. Change-Id: I1a41d55b0705c5531c019e60a7a96dac144bacb7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Removed temporary backwards-compat properties and accessors in QWindowShawn Rutledge2012-12-031-36/+0
| | | | | | Change-Id: I718b877e3b6c0b1191a932d934599d5c2f5aa958 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Stop using the name "Trolltech" in QSettingsSergio Ahumada2012-12-031-2/+2
| | | | | | | | | Also change Trolltech for QtProject in other places Task-number: QTBUG-23269 Change-Id: Ie4e344f23cab77c575562d18b481b3369ce30491 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Basic high-dpi "retina" support for Qt 5.Morten Johan Sørvig2012-12-0110-1/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | Bring Qt 5 on par with Qt 4, prepare for more comprehensive support later on. Introduce device independent pixels (dips), device pixels, and devicePixelRatio. Add high-dpi support to QPainter, QGLWidget, the cocoa platform plugin, mac and fusion styles. Dips are similar to CSS pixels, Apple points and Android density-independent pixels. Device pixels are pixels in the backing store/physical pixels on screen. devicePixelRatio is the ratio between them, which is 1.0 on standard displays and 2.0 on "retina" displays. New API: QImage::devicePixelRatio() and setDevicePixelRatio() QPixmap::devicePixelRatio() and setDevicePixelRatio() QWindow::devicePixelRatio() QScreen::devicePixelRatio() QGuiApplicaiton::devicePixelRatio() Change-Id: If98c3ca9bfdf0e1bdbcf7574cd5b912c9ff63856 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Renamed the keyboard-focus doc to make clear it's about WidgetsShawn Rutledge2012-12-011-1/+1
| | | | | | | Also link from the widgets index page. Change-Id: I49cd415b09d7458d89d75931ecfaafe29c226c6f Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Restore the visibility of a moved QWindow in QWindow::screenDestroyedJocelyn Turcotte2012-11-301-1/+9
| | | | | | | | | | | | | | | | | | | | QWindow::screenDestroyed triggers an move of the window to the primary screen. This causes the screen to be destroyed and shown again on the new QScreen. The issue is that QWindow::destroy() hides the window but create() doesn't set it visible, and this ultimately causes any QWindow to be automatically hidden when their QScreen is destroyed. As stated in the comment, it could be the intended behavior that windows aren't shown automatically on a remaining screen like when using two screens not logically part of the same desktop. Once the platform plugins have access to an API allowing them to adjust the screens of their QWindow, this patch shouldn't be needed anymore. Change-Id: I7628377c969f79f9eebb3deabaf0470542d68a9c Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix crash when requesting QGuiApplication::platformNativeInterface()Miikka Heikkinen2012-11-301-1/+1
| | | | | | | | If QGuiApplication has not been instantiated, this function would crash. Change it to return NULL pointer instead. Change-Id: Ia3d27019daa436d5243c9cce757a132d96aae112 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Move session management code from QApplication to QGuiApplication.David Faure2012-11-284-5/+239
| | | | | | | | | | | | | | QSessionManager was already in QtGui, but not usable since the only API to get to it was still in QtWidgets. Session management isn't related to widgets, it also applies to QML apps on the desktop. The virtual commitData and saveState methods have been removed, given the two signals which exist since 4.2, and an additional isSessionSaving() method was added instead. Change-Id: I8099e70df133303e74456706827da21f013fcc6a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QGuiApplication docs: clarify that QWidget needs QApplicationJ-P Nurmi2012-11-271-1/+3
| | | | | | Task-number: QTBUG-28076 Change-Id: I2ebbedd1916f472b9517b509f3b5499d93c71d45 Reviewed-by: Jing Bai <jing.bai@digia.com>
* Fixed abbreviations in QWindow::framePos() and QWindow::setFramePos().Samuel Rødal2012-11-273-5/+6
| | | | | | | | | | | | As 672e7c875e8680818e23d0aef98129d95eb7e91c did changing pos() to position() and setPos() to setPosition(). Luckily there's not much code that uses these. Change-Id: I1e1982f00412a22bd376e667a5e8c30b6149f9b5 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove QApplication::type() and make QCoreApplication::Type internalJ-P Nurmi2012-11-231-1/+1
| | | | | | | | | | | | These Qt3 legacy application types do not match the application types available in Qt5. Thus, the decision was to kill the confusing and mostly useless type enum. Use for example qobject_cast instead to find out the application type. Task-number: QTBUG-28093 Change-Id: Ia8cf7c3ea98a3cea27f74760d62e519ea10bce9f Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Enable gui build with QT_NO_SYSTEMTRAYICONTasuku Suzuki2012-11-211-2/+2
| | | | | | Task-number: QTBUG-24816 Change-Id: I5b53392bee3990ec5c7235cc615b4a477fb62089 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Handle QEventLoop::ExcludeUserInputEvents in QWindowSystemInterface.Friedemann Kleint2012-11-212-36/+45
| | | | | | | | | | | Add a flag indicating user input events to the event type and leave those events in the queue if QEventLoop::ExcludeUserInputEvents is set. Task-number: QTBUG-27595 Change-Id: Ib41b826ef3be19253cd582d9894dd7c87953711f Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Add QPlatformNativeInterface::nativeResourceForScreen().Friedemann Kleint2012-11-192-0/+10
| | | | | | | Task-number: QTBUG-5416 Change-Id: Ic163a5ff1c7a06869d324acb9aa7c257a0262e72 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Missing break in case QEvent::WindowStateChange.Miikka Heikkinen2012-11-151-0/+1
| | | | | | | | The missing break causes state change event handling to fall through to tablet event handling, which is clearly wrong. Change-Id: If19d7b3f794b3614961b9e79952331b0ede1fba1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Bring back -nograb/-dograb for debugging.Friedemann Kleint2012-11-153-0/+30
| | | | | | | Task-number: QTBUG-27632 Change-Id: I4b59df01519af4684d9dbe6e4b6c18a5ebd9aeae Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Change to enter/leave policy while grabbing.Miikka Heikkinen2012-11-151-6/+12
| | | | | | | | | | | | | | | | | | | | | Sending enter and leave events to other windows than the grabbing window is not logical. The policy should be that only the grabbing window receives enter and leave events. Changed the documentation accordingly and provided the necessary changes to Windows implementation. Also removed explicit leave event generation for widgets when popup is opened as that is now redundant. tst_QWidget::underMouse() test was changed to behave according to new logic. Task-number: QTBUG-27871 Change-Id: I127fb8685b4a4206d1a319f42cba491ec02bc8ca Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Add a QEnterEvent containing the mouse position.Friedemann Kleint2012-11-106-9/+67
| | | | | | | | | | | | | Enter handling requires knowledge of the mouse position. Extend the enter handling of QWindowSystemInterface to receive the position (implemented for Windows, XCB and Mac), passing it on to QEnterEvent. Dispatch QEnterEvent from widgets code. Change-Id: I49c07d2b1f46310c877017dd55d4cd7d636bdbce Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Added private header warnings in src/gui/kernelSamuel Rødal2012-11-098-1/+88
| | | | | Change-Id: If3ad9d1e18543639f9e6abb8899b72772bc70c83 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Return appropriate currentContext() in platform's makeCurrent().Samuel Rødal2012-11-082-4/+17
| | | | | | | | This way the platform plugin can use convenience classes such as QOpenGLFramebufferObject in the makeCurrent() implementation. Change-Id: I1fb5f6b8ec094ff39454adbeca9eb0d1a8f43ee6 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Relax QOpenGLContext::swapBuffers() conditions.Samuel Rødal2012-11-081-15/+1
| | | | | | | | | There's no need to force the context to be current and the correct FBO to be bound when swapBuffers() is called, as this can easily be handled on a per-platform basis. Change-Id: I7af5a082d6a2b03dfa2cdc874c27617139a781a9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>