summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Win: fix wrong mouse leave event generationSergey Radionov2015-02-101-0/+10
| | | | | | | | | | | When Qt runs in process with low integrity level, and place child QWindow to HWND from less restricted process, ChildWindowFromPointEx could fail with ERROR_ACCESS_DENIED and QWindowsScreen::windowAt will return 0 despite mouse is on window. Task-number: QTBUG-44332 Change-Id: I07e1594b90cbde8a9496f8d53ef247a7c69d8715 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Add support for snapping to pixel gridJan Arve Saether2015-02-092-21/+47
| | | | | | | | | | | | | | | | | | | | | This enables us to do more intelligent distribution than simply doing the rounding on each individual items geometry (which often leads to larger spacings than specified). Instead of doing the rounding on the output geometries, we now do the snapping inside the layout engine. This allows us to do more intelligent distribution of items, and spacings should always be respected. There are some cases where items with fractional size hints might overlap with less than a pixel. This was also the case before this patch. Those cases are impossible to fix properly, since fractional size hints conflicts with the snapping in some cases. (Fractional size hints is normal for Text items.) Task-number: QTBUG-41216 Change-Id: I01a8bc3529f0b8b028d6eb0a530c751b67ac6f4e Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* OpenGL: Add versioned functions support for opengl 4.4 and 4.5David Morgan2015-02-0942-1278/+23484
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previous errors in versioned function classes for OpenGL versions prior to 4.4 have also been fixed to comply with the new OpenGL xml specification. Such mistakes were due to either bugs in the old plain text specification files or problems due to the difficulty in parsing the old spec files. In some cases this has meant adding in missing functions that were absent previously. The other class of problem was when functions were erroneously included in the versioned function classes when they should not have been present. That is, some core profile classes incorrectly had member functions for deprecated functions that should only be present in the compatibility profile classes. In these cases these incorrect functions will now trigger a qFatal if called. This is fine as any applications that called these by mistake in the past would have been dereferencing a null pointer as the function pointer resolution would have failed for these functions. [ChangeLog][QtGui] Add version function classes for OpenGL 4.4 and 4.5 and deprecate some erroneously classified functions. Task-Id: QTBUG-33671 Task-Id: QTBUG-44364 Change-Id: I224108dcaf4f8b4933bc121827511841e2a41590 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Optimize unpremultiply on SSE4.1Allan Sandfeld Jensen2015-02-094-2/+96
| | | | | | | | | Adds an SSE4.1 optimized version of qUnpremultiply and uses it in the most drawing conversions methods. This gives a speed-up of little over 2x. Change-Id: Ieb858a94ada1eb86d7af715ac1a100f1587f360d Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* QtCore: Use QDebugStateSaver in (almost) all QDebug operator<<Kai Koehne2015-02-0922-48/+77
| | | | | | | | | Unify the behavior of the different operator<< by always using QDebugStateSaver (appending an optional space at exit), and making sure that the space(), nospace() setting isn't 'leaked'. Change-Id: I38e4f82fa6f7419d8b5edfc4dc37495af497e8ac Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* D-Bus tray icons: save temp file with size 22pxShawn Rutledge2015-02-081-5/+1
| | | | | | | | Gnome Classic on Ubuntu shows this icon but fails to scale it down. So if we do not pre-scale the icon, it will be too wide, and cropped. Change-Id: If8cf98de3672deff77b99b17da5491bd6c45cfdb Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* remove stray QGuiApplicationPrivate::wheelEventSource declarationShawn Rutledge2015-02-081-2/+0
| | | | | | | | It is unimplemented and probably unnecessary. Unintentionally included in commit 74443d7bbb319e949928dd081fde04bccb5f7845. Change-Id: I3a1afb20e673fa0611b602a11ceca1953231ac14 Reviewed-by: Andrew Knight <qt@panimo.net>
* Remove unnecessary direct access to SSL_CIPHER struct.Richard J. Moore2015-02-081-9/+7
| | | | | | | The cipher is always valid here, so this check was never needed anyway. Change-Id: I22be273d166702926b98f0c9443657a1dde65f6e Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
* Remove legacy ifdefs for ancient openssl.Richard J. Moore2015-02-087-64/+9
| | | | | | | | | | | There were still ifdefs for openssl 0.9.7 and openssl 0.9.8f. [ChangeLog][QtNetwork] Some legacy ifdefs for openssl 0.9.7 and openssl 0.9.8f were removed, Qt will no longer build with these versions. In addition there is no support for openssl built with NO_TLSEXT. Change-Id: I9268515c0a125a2f6d79add8ee1cb40768e7e898 Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
* Add more notes regarding the uniform settersLaszlo Agocs2015-02-081-0/+9
| | | | | | | | | | Having overloads for GLuint that call glUniformNi was a mistake to begin with, and it has only been made worse when later OpenGL versions introduced unsigned int support and glUniformNui. Note this in the docs. Task-number: QTBUG-37012 Change-Id: Icc867221d0fbced8c4ff769deee66effa022f1b5 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Use prefix instead of postfix for iteratorsMaks Naumov2015-02-086-7/+9
| | | | | | | | | | The postfix increment(decrement) creates a temp copy of *this before the modification and then returns that copy. It's needed only when using the old iterator and then incrementing it. Change-Id: I7f6702de78f5f987cec3556047e76049b4ee063a Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QtWidgets: use Q_ENUM instead of Q_ENUMSOlivier Goffart2015-02-0835-43/+72
| | | | | Change-Id: Id5280c1d9feab95e1506569f3d0eb23eeb74935f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QtGui: use Q_ENUM instead of Q_ENUMSOlivier Goffart2015-02-0814-17/+23
| | | | | Change-Id: I92ac2ea218e9134aa36ecb179b8ae790a2dba56a Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QtNetwork: use Q_ENUM instead of Q_ENUMSOlivier Goffart2015-02-083-3/+8
| | | | | Change-Id: I531191fae910354abd2e5ceb7c8ecf0519ccad97 Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
* QOpenGLVertexArrayObject: remove a now unnecessary initialize callGiuseppe D'Angelo2015-02-081-2/+0
| | | | | Change-Id: I03a14c52dd5a02de0c1cc1c2df5d4529acff9acd Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Avoid the initializeOpenGLFunctions() call after versionFunctions()Laszlo Agocs2015-02-071-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | Try making it compatible with QOpenGLContext::functions() which returns an already initialized QOpenGLFunctions. Unfortunately we cannot make them 100% compatible because functions() conveniently requires that the context (or a sharing context) is current. versionFunctions() has no such requirement and we cannot safely introduce it anymore. What we can do is to state that as long as the context is the current one, the initializeOpenGLFunctions() call can be omitted. If another context (or no context) is current, the call will still be needed, like it is today. Also, we require that the exact same context is current. Sharing does not count since the exact behavior of sharing contexts with different versions is unknown. [ChangeLog][QtGui] initializeOpenGLFunctions() no longer needs to be called when querying a versioned function wrapper object via QOpenGLContext::versionFunctions(). Change-Id: I0b4d1ae1f780da3f5dec9fc8dc67255c13faab6e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make mipmap levels and texture comparison work with GLES 3.0+Laszlo Agocs2015-02-073-51/+53
| | | | | | | | | | | | | In ES-only builds (-opengl es2) we hit the QT_OPENGL_ES_2 path which disables all this. Not ideal since all the support is present in GLES 3.0. Therefore, stop relying on the ifdef and do runtime checks. This also needs defining the constants manually since they are not available in gl2.h and our own ES2 extension headers provide some of these with silly silly suffixes. Change-Id: I8ad7f5091a371bad1e3c6dc4898342a175016274 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QOpenGLWidget/Window: improve docs for the dtorGiuseppe D'Angelo2015-02-072-2/+4
| | | | | | | Remove a typo and add the standard sentence about a dtor. Change-Id: Ie21ad6d2e83977705ea43fdc872d08f496a32376 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Stop accessing the internals of the SSL_CTX structure.Richard J. Moore2015-02-073-1/+4
| | | | | Change-Id: I51733e9a3bb0d5d54dc2f61ac75751d899a84bd1 Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
* Handle gracefully the removal and re-attachment of all QScreensShawn Rutledge2015-02-0712-25/+64
| | | | | | | | | | | | | | Don't crash; restore windows when all screens are removed and re-added. xcb: on configure notify, check for screen change: it may be that a window belonging to a screen which was removed has now gotten mapped to the new screen. On screen change, send a synthetic expose event, because the real expose events already happened. Task-number: QTBUG-38326 Task-number: QTBUG-32973 Task-number: QTBUG-42985 Change-Id: If334f55c248468ad3c95e7066bb14eca377d2050 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Flag libproxy as a private libraryDaniel Molkentin2015-02-071-1/+1
| | | | | | | | | libproxy is not part of Qt's public interface, but a helper library used by Qt. Treat it as such by using LIB_PRIVATE. Task-number: QTBUG-44326 Change-Id: I014f992e4b7a51de1e5a7407ce1bd08dd5352136 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* configure.exe: disable ANGLE backend for Linux targetsJochen Seemann2015-02-071-0/+1
| | | | | | | | As default, configure.exe checks if ANGLE is available and prints a warning if not. This isn't needed if the target platform is Linux. Change-Id: I2966965ea194c61bf9847e1ee130f2e765d5b0aa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* WinRT: fix QLibrary::isLibrary() due to incomplete #if statementJochen Seemann2015-02-071-1/+1
| | | | | | | | | Q_OS_WINRT was missing in the Windows-condition. Condition was simplified through use of Q_OS_WIN. Change-Id: I1a49d2d9c413dc2156930b6915e1675abcdde36f Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* ssl: add test for server-side QSslSocket::PeerVerifyModeJeremy Lainé2015-02-077-1/+285
| | | | | | | | This adds tests to check the behavior of a QSslSocket-based server when presented with various client certificates. Change-Id: I431157e46cfb00880ae8b7a33015cce50e56b6bb Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
* ssl: fix QSslSocket::peerCertificateChain in server modeJeremy Lainé2015-02-072-12/+21
| | | | | | | | | | | The OpenSSL backend for QSslSocket return an incomplete peer certificate chain when in server mode: it does not include the peer's certificate as the first element of the chain. This change fixes this issue. Change-Id: I2f0815bca2f314a075b48a2d0b5a6d5b7af50722 Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
* Fix developer build on gcc 4.9Sérgio Martins2015-02-061-1/+1
| | | | | | | | kernel/qnetworkproxy_libproxy.cpp:152:57: error: suggest parentheses around comparison in operand of ‘&’ [-Werror=parentheses] if (proxy.capabilities() & requiredCapabilities == requiredCapabilities) Change-Id: I37eba3443802e4949bab03e9cb4f3fb664fa492d Reviewed-by: Richard J. Moore <rich@kde.org>
* [QQuaternion] Introduce to/from rotation matrix conversion routinesKonstantin Ritt2015-02-063-0/+111
| | | | | | Change-Id: Ic19824e7e135f53a9ce3f2ea7ecd078a589e7425 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Revert "Introducing QPlatformHardwareCompositor."Gunnar Sletta2015-02-065-188/+0
| | | | | | | | | | I'm having seconds thoughts about this api. Better to not commit to it just yet. This reverts commit ebdd4a0ba7daf74b11f716d291a97f7cd28c2aca. Change-Id: I9725e3172b0166b56364a34db246eabb685e855d Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* Remove __DATE__ usage from qtbaseSune Vuorela2015-02-051-2/+2
| | | | | | | | | | This message is just informal, and not really relevant to the test case. qtbase can now be built with -Werror=date-time Change-Id: Ic14289f2f801d5a6e811869e60afb9691c7ca98b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Make .la file generation reproducible in qmakeSune Vuorela2015-02-051-2/+1
| | | | | | | | | | | qmake seems to be adding current date/time to the .la files for no reason, so let's stop do that. This way, two invocations of qmake actually gives bit for bit similar output of .la files. Change-Id: I93c7c4075cc1e05214849eec8629f41ce01e5914 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Fix build of egl integrationStephan Binner2015-02-052-0/+2
| | | | | | | Add qtextstream.h includes before header files define Status Change-Id: I02e1fe710d4371100509a7fafac1eda8f436d80f Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Remove unused function from rpi hooksLaszlo Agocs2015-02-051-33/+0
| | | | | | | | This is a leftover from the old experimental mouse cursor support which got removed. Avoid compiler warnings by removing this function too. Change-Id: Id269ff987883708d1061a315fef70b8fc6f13706 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Remove todo note about QXcbWindow::format()Laszlo Agocs2015-02-051-1/+0
| | | | | | | | | | | | | | It _is_ the actual format after create(). This is true at least since modularizing the GLX and EGL integration. See resolveFormat() in the integration plugins. This is important to clarify since other platform plugins usually return the input (requested) format as-is. We must therefore be careful with misleading notes as the situation is complicated enough already. Change-Id: I8e394680fa8fe3c80941a2a08fa873f831d6403c Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Set some state before rendering the EGL/GLES mouse cursorLaszlo Agocs2015-02-051-0/+3
| | | | | | | | | | | | Custom OpenGL rendering code often sets these and, unlike the Quick scenegraph, may not reset it before calling swapBuffers(). Play nice with the most commmon settings. Resetting the active texture unit is critical in particular, since frameworks like Qt3D will change this. Change-Id: I86acaf7e0b2ce67a23c731fffce4f20375614321 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* QAbstractTableModel/QAbstractListModel: reimplement sibling()Marc Mutz2015-02-052-0/+18
| | | | | | | | | | | | | | | | | | | | This basically inlines the call to parent(), which unconditionally returns QModelIndex(). The change is binary compatible, because even though we newly override a previously non-overridden virtual method, it doesn't matter whether old code still calls the base class' method, as the new implementation is semantically equivalent, at least if subclasses don't inherit parent() (but why would they). [ChangeLog][QtCore][Important Behavior Changes] QAbstractTableModel and QAbstractListModel now reimplement sibling() to avoid calling parent() (which returns a constant). Subclasses of these models that override parent(), will likely also need to override sibling() now. Change-Id: I9e0cb5622a6d3826e40acaf0e0cd3fdea85cba2d Reviewed-by: David Faure <david.faure@kdab.com>
* Don't replace IntersectClip with ReplaceClip on a QPictureAllan Sandfeld Jensen2015-02-051-7/+10
| | | | | | | | | | | | | | QPainter should not try to be smart and optimize IntersectClip with ReplaceClip when working on a QPicture paint device. Doing so will change the end result as the actually state when replayed might be different from the one it was recorded in. [ChangeLog][QtGui][QPainter] QPainter will no longer try to replace IntersectClip with ReplaceClip if the paint engine is a QPicture. Task-number: QTBUG-35830 Change-Id: I0693d932f037336b960c34bb8fe840e8afe04fe6 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Add libproxy backend for QNetworkProxyFactoryDaniel Molkentin2015-02-056-3/+283
| | | | | | | | | | | | | | | | | | | | | | | | | | | It will be used on Unix systems if the required dev package is present. (Detected by a configure compile test.) You can configure with -no-libproxy to avoid the dependency. It will not be used on OS X or Windows, as we already implement the native API for getting proxies there. Currently we use whatever PAC runner is provided by the distro for running PAC scripts - if we want to run PAC scripts using Qt, then we would have to implement a pacrunner plugin to libproxy. Note that their webkit pacrunner is using javascriptcore already. Tested using the libproxy 0.4.7 that is included in Ubuntu 12.04. Re-tested using Ubuntu 14.04 which ships libproxy 0.4.11. It works except when both socks and http proxies are configured in the manual settings - in that case libproxy returns only the socks proxy. This seems to be covered by libproxy issue 119. [ChangeLog][QtNetwork] Introduce libproxy backend for Unix platforms, enabled automatically if the required dev package is present Task-number: QTBUG-26295 Change-Id: I521c0a198fcf482386ea8a189114a0077778265c Reviewed-by: Richard J. Moore <rich@kde.org>
* Add a qDebug operator overload to handle registered enumOlivier Goffart2015-02-053-1/+32
| | | | | | | | | So if you stream enum type into qDebug, it will show the name of the enum value instead of the int Change-Id: Iec5e826623353560319890d3e7c4ab97d0645f4a Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Introduces QMetaEnum::fromTypeOlivier Goffart2015-02-055-0/+92
| | | | | | Change-Id: I1976c1844e52ef8d70a1bbe9945f3299428dbf87 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* QMetatype: Register the QMetaObject of a Q_ENUM or Q_FLAGOlivier Goffart2015-02-053-3/+32
| | | | | Change-Id: Id1343c3fb51d88a43d4d97e8859dbe2b0cfbea34 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* improve support for cross-compilation to not directly supported platformsJochen Seemann2015-02-051-1/+9
| | | | | | | | | | | This adds a fallback platform OTHER to the platform-enum, which applies when -xplatform is set to an unsupported target, e.g. Linux. Without it, it would fall back to WINDOWS, with the consequence that logic like platform() != WINDOWS would break a proper configuration of Qt. Change-Id: Ie34522e23e375da6c24f66b3410638f85724a0f9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Fix regression from Qt4 with layout directionJan Arve Saether2015-02-052-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Qt4, if the result of the translation QApplication::translate("QT_LAYOUT_DIRECTION") returned "RTL", Qt usually called QApplication::setLayoutDirection(Qt::RightToLeft) in order for a translation file to specify if the UI should be left-to-right or right-to-left. However, due to modularization, we could no longer call QApplication::translate(), so the code was wrongly changed to call QCoreApplication::translate(....) instead. This was wrong, and in addition the translation files was never updated with the new context. This patch fixes it to only translate it with the QGuiApplication context. This is the only sensible context, since QApplication would lack QtQuick support, and QCoreApplication would not know how to change layout direction. [ChangeLog][QtGui][i18n] Fixed bug where layout direction did not switch according to the instruction in the translation file. Task-number: QTBUG-43447 Change-Id: Id0409a42d41b3b9ff1cd53d090c4d9c9802f5659 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* introduce /dev variants of qmake propertiesOswald Buddenhagen2015-02-056-13/+32
| | | | | | | | | these reflect the on-target paths (unlike /raw, which are host paths, just without the -sysroot). this is necessary for anything deployment-related, starting with RPATH. Change-Id: I13d598995d0e4d6cb0dc1fc7938b8631cf3e3a95 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* write relative paths to qconfig.cpp as far as possibleOswald Buddenhagen2015-02-055-311/+404
| | | | | | | | | | | | | | | this cuts down the bloat in the binaries and the binary patching requirements in the installer. as a side effect, the sysroot and makespecs are not binary patchable any more as well, which is ok, as the installer does not do it anyway. we now also warn if -[host]<foo>dir is not a subdir of -[host]prefix, as putting things outside the prefix is anti-thetical (the obvious exception being the (unix-only) -sysconfdir). Change-Id: I878f0e71a4dfcfd55b2f8b1cf3045b98b502569b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* remove trailing semicolons from #definesOswald Buddenhagen2015-02-052-6/+6
| | | | | Change-Id: I522a7e838ab0e5bbe5b22296ab74912ea79468f0 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* don't overquote paths in qconfig.cppOswald Buddenhagen2015-02-051-34/+34
| | | | | | | | the function for emitting paths to .pri files is obviously not suited for C++ code. Change-Id: I96386d61334d06997475f044dbeab22a55749cef Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* make quoting in the prl writer more robustOswald Buddenhagen2015-02-053-12/+29
| | | | | Change-Id: Idd9f64ac608b7e4ed840d5d9925bf741e03d78ab Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* fix conditional nesting botch-up in RES_FILE constructionOswald Buddenhagen2015-02-051-6/+6
| | | | | | | | it makes no sense to test for OBJECTS_DIR emptiness when we are going to use DESTDIR instead. Change-Id: I0f7115fc8a9fe2a996417d5f50bd0165773129fa Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* don't resolve DESTDIR against source dir in RES_FILE constructionOswald Buddenhagen2015-02-051-1/+1
| | | | | | | that makes no sense at all. and OBJECTS_DIR is not resolved, either. Change-Id: Ie76b9de6bb11ae42945255f2e168943066d2f60d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* don't fail to normalize RES_FILE for no apparent reasonOswald Buddenhagen2015-02-051-1/+1
| | | | | Change-Id: I43d2e45a2743cd8d78229b5ae2bd5f63d92d74f8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>