Commit Graph

22107 Commits

Author SHA1 Message Date
Shawn Rutledge
f4b8697c40 Handle gracefully the removal and re-attachment of all QScreens
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>
2015-02-07 16:19:59 +00:00
Daniel Molkentin
45b60c01ef Flag libproxy as a private library
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>
2015-02-07 16:19:04 +00:00
Jochen Seemann
89bd855efb configure.exe: disable ANGLE backend for Linux targets
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>
2015-02-07 13:26:47 +00:00
Jochen Seemann
5380281fe1 WinRT: fix QLibrary::isLibrary() due to incomplete #if statement
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>
2015-02-07 13:26:37 +00:00
Jeremy Lainé
06524c11dc ssl: add test for server-side QSslSocket::PeerVerifyMode
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>
2015-02-07 06:51:05 +00:00
Jeremy Lainé
cbec1ed1a1 ssl: fix QSslSocket::peerCertificateChain in server mode
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>
2015-02-07 06:50:51 +00:00
Sérgio Martins
14d5d4bae6 Fix developer build on gcc 4.9
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>
2015-02-06 20:03:59 +00:00
Konstantin Ritt
ba640a75a5 [QQuaternion] Introduce to/from rotation matrix conversion routines
Change-Id: Ic19824e7e135f53a9ce3f2ea7ecd078a589e7425
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-02-06 16:14:38 +00:00
Gunnar Sletta
5666740d88 Revert "Introducing QPlatformHardwareCompositor."
I'm having seconds thoughts about this api. Better to
not commit to it just yet.

This reverts commit ebdd4a0ba7.

Change-Id: I9725e3172b0166b56364a34db246eabb685e855d
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
2015-02-06 07:02:40 +00:00
Sune Vuorela
14dc887090 Remove __DATE__ usage from qtbase
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>
2015-02-05 21:18:26 +00:00
Sune Vuorela
99f8e817fe Make .la file generation reproducible in qmake
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>
2015-02-05 21:17:29 +00:00
Stephan Binner
dc393a2bae Fix build of egl integration
Add qtextstream.h includes before header files define Status

Change-Id: I02e1fe710d4371100509a7fafac1eda8f436d80f
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-02-05 20:00:58 +00:00
Laszlo Agocs
95573dfc50 Remove unused function from rpi hooks
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>
2015-02-05 19:20:39 +00:00
Laszlo Agocs
4849735539 Remove todo note about QXcbWindow::format()
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>
2015-02-05 19:20:17 +00:00
Laszlo Agocs
b066467be7 Set some state before rendering the EGL/GLES mouse cursor
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>
2015-02-05 19:20:10 +00:00
Marc Mutz
f246e380c3 QAbstractTableModel/QAbstractListModel: reimplement sibling()
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>
2015-02-05 18:31:21 +00:00
Allan Sandfeld Jensen
91ee17dce3 Don't replace IntersectClip with ReplaceClip on a QPicture
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>
2015-02-05 14:30:24 +00:00
Daniel Molkentin
3430e7ce77 Add libproxy backend for QNetworkProxyFactory
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>
2015-02-05 14:29:03 +00:00
Olivier Goffart
eb4f183127 Add a qDebug operator overload to handle registered enum
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>
2015-02-05 14:28:27 +00:00
Olivier Goffart
9b72bcfd60 Introduces QMetaEnum::fromType
Change-Id: I1976c1844e52ef8d70a1bbe9945f3299428dbf87
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-02-05 14:28:18 +00:00
Olivier Goffart
d43d03529f QMetatype: Register the QMetaObject of a Q_ENUM or Q_FLAG
Change-Id: Id1343c3fb51d88a43d4d97e8859dbe2b0cfbea34
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-02-05 14:27:59 +00:00
Jochen Seemann
9e6190cff3 improve support for cross-compilation to not directly supported platforms
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>
2015-02-05 14:27:25 +00:00
Jan Arve Saether
49af548abb Fix regression from Qt4 with layout direction
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>
2015-02-05 14:27:22 +00:00
Oswald Buddenhagen
1043bf202b introduce /dev variants of qmake properties
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>
2015-02-05 14:27:06 +00:00
Oswald Buddenhagen
5b27d02c35 write relative paths to qconfig.cpp as far as possible
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>
2015-02-05 14:27:04 +00:00
Oswald Buddenhagen
887c8129e6 remove trailing semicolons from #defines
Change-Id: I522a7e838ab0e5bbe5b22296ab74912ea79468f0
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:58 +00:00
Oswald Buddenhagen
6cc1ba92d1 don't overquote paths in qconfig.cpp
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>
2015-02-05 14:26:56 +00:00
Oswald Buddenhagen
009df82f1a make quoting in the prl writer more robust
Change-Id: Idd9f64ac608b7e4ed840d5d9925bf741e03d78ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:54 +00:00
Oswald Buddenhagen
a06f37c075 fix conditional nesting botch-up in RES_FILE construction
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>
2015-02-05 14:26:52 +00:00
Oswald Buddenhagen
6bb69b9b0e don't resolve DESTDIR against source dir in RES_FILE construction
that makes no sense at all. and OBJECTS_DIR is not resolved, either.

Change-Id: Ie76b9de6bb11ae42945255f2e168943066d2f60d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:49 +00:00
Oswald Buddenhagen
ea4a84074e don't fail to normalize RES_FILE for no apparent reason
Change-Id: I43d2e45a2743cd8d78229b5ae2bd5f63d92d74f8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:47 +00:00
Oswald Buddenhagen
a64cfadaff make the installed meta files play nicely with sysroots
pkg-config .pc files use the raw target paths (and pkg-config patches up
-I and -L flags on the fly), so these files were actually already fine.

libtool .la files use the magic prefix = to denote the sysroot.
this works only with libtool 2.4+ (sept 2010).

qmake .prl files have no built-in sysrootification magic, but as they are
read by qmake, it's possible to put property references into them. this
makes them relocatable, both inside and outside sysroots.

Change-Id: I97236ac81e7aba4e4771d14a44cbf59144cc2d3e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:44 +00:00
Oswald Buddenhagen
022c68c97f base the libexec fallback logic on the makespec
this is consistent with the unix version.

Change-Id: I84e15dd590b4ed9702f8a9dc0e8b655c930588d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:42 +00:00
Oswald Buddenhagen
68fae07d80 simplify mkspec determination when writing qconfig.cpp
we don't actually support qualified specs anyway - all tests assume
that they can use startsWith() on the spec name.

Change-Id: I9dc8688858d4798c3a18c34757318dcd7fd47c57
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:39 +00:00
Oswald Buddenhagen
4b557751e8 make makeabs a function
there is no reason at all for it to be an external script.

Change-Id: I836f38dd06f61350dd9f83015857abb07981c62d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:36 +00:00
Oswald Buddenhagen
f407607897 simplify absolute unix path detection
use the posix builtin that is used two lines down as well instead of sed
with platform-specific options.

Change-Id: I439f79554d883564150004c1f7b6d8655a0ef192
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:34 +00:00
Oswald Buddenhagen
a07fd165f3 configure --help clarifications relating to -*prefix
Change-Id: I71c78b7c91c9fedb7d55731b3f61d46ea75c9b8d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:31 +00:00
Laszlo Agocs
c0fa5922b2 Fix xcb's dbus dependency
Getting a build error on Raspbian due to the lack of libdbus-1. Configure
chooses dbus-1 at runtime so there should be no reason to force -ldbus-1
in xcb.

Change-Id: I3f35e0069b3abae59d575c5e3d8f4f24f7d935d2
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-02-05 10:01:13 +00:00
Laszlo Agocs
e8ef23eee4 xcb: do not leak window system integration
Destroy the GLX or EGL backend. This also requires fixing an uninitalized
member in the native interfaace handler.

Besides fixing the leak this will also do eglTerminate on exit, which is
very beneficial for proper resource cleanup and avoids "Display is destroyed
with resources" warnings on Mesa with debugging enabled.

Change-Id: Ibd62d6964e86ac1319abed1f06b478327c348a0e
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-02-05 10:01:09 +00:00
Friedemann Kleint
c56da2e8da Diaglib: Fix compilation with MSVC 2010 / SDK 7.X.
Change-Id: Idf6adc6d3788c3ac6fda770c4cf42bceb530cd48
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 05:21:26 +00:00
Friedemann Kleint
dff18b8e80 Windows: Allow for passing a modified argv to QCoreApplication.
Check by comparing __argc/__argv whether a modified argv was
passed to QCoreApplication. If that is the case, build
QCoreApplication::arguments() from that argv instead of using
the command line.

[ChangeLog][Important Behavior Changes][QCoreApplication]
On Windows, QCoreApplication::arguments() now returns a list built
from argv on Windows as well if a modified argv was passed to the
class' constructor.

Task-number: QTBUG-30330
Task-number: QTSOLBUG-184
Change-Id: I2498bb554130e7bfaeada3aebe786dfdd0eb534d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-05 05:20:20 +00:00
Allan Sandfeld Jensen
57469a8e10 Avoid creating a QPixmap on QBrush comparisons
We shouldn't create QPixmaps when comparing QBrushes that do not
contain a QPixmap.

This patch extends the comparison logic to comparing QImage cachekeys
if the brushes are QImage based.

Note the comparison still produces false negatives on equal content on
different pixmaps and images, but this is preserving existing behavior.

Task-number: QTBUG-43766
Change-Id: I001b4032172c1e568aad311f7df2eaae6aee8dc6
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-04 22:10:17 +00:00
Marc Mutz
a29374fc8e QComboBox: use QModelIndex::sibling() instead of index()+parent()
QAIM::sibling() may be more efficient, esp. in cases where only the
column number needs to be adjusted. It is a no-op if the column
number is already correct.

Change-Id: Iabb8d5ef58d083da971a9d2f3702908257e5cc0a
Reviewed-by: David Faure <david.faure@kdab.com>
2015-02-04 19:38:04 +00:00
Allan Sandfeld Jensen
6c117ee4aa Correct QPainter's is_brush_transparent
1-bit QImage's should not be considered transparent unless they have use
transparent colors in the color table or have no color table. By using
hasAlphaChannel we also catch other transparent brush textures.

The method is only used in determining emulation specifiers.

Change-Id: I120ee1de4dc2df666c3e2acb1e40b53a8de40754
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-04 19:37:33 +00:00
Allan Sandfeld Jensen
89edf43c44 Generate SSE4.1 versions of premultiplying methods where convenient
The autovectorized versions of premultiplying conversions are almost
twice as fast with SSE4.1 as with SSE2. Therefore this patch lets
compilers that can make those versions convenient without duplicating
code do that and lets us use them when available.

Change-Id: I699035963abe55a38b9ef8ba7b4a8c961c8dfcdd
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-04 19:37:22 +00:00
Tor Arne Vestbø
5432f2c7a1 Remove traces of the Maemo platform
Change-Id: I6b551de331aa0386ea53d8e96f50b669777d2d69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-02-04 17:14:35 +00:00
Tor Arne Vestbø
b6c03f58ce a11y: Fix warning about instance method '-invalidate' not found
The interface declaration of QMacAccessibilityElement lives in the Cocoa
platform plugin. We replicate the needed parts in QtGui to silence the
compiler.

Change-Id: I2d1984c988777d3c7af82df90390624c93fd85b5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-02-04 17:14:31 +00:00
Oswald Buddenhagen
cf38b12a27 make shellQuoteWin() be more sparing with circumflexes
... as newer versions of nmake (and jom, for compatibility) have botched
circumflex processing (they simply don't do it when shortcutting the shell
evaluation).

as a side effect, the output is also more readable if the string contains
quotes.

Change-Id: I0506b59ceecb70da258c482f9973156b2803066d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:34:02 +00:00
Oswald Buddenhagen
fde33949f4 always use single quotes in shellQuoteUnix()
double quotes cause mingw32-make to switch from direct execution to going
through the shell, so avoid them.

Change-Id: I05b71a050e425a1b327f747fab01755ff528ba0b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:59 +00:00
Oswald Buddenhagen
e351ccfc12 add value quoting to qtAddToolEnv()
for sh, this is usual quoting.
for cmd, this means escaping closing parens - everything else is permitted
anyway.

Change-Id: I1179849d95f1f1f9e4b0d62ecd88917a1327f60f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:56 +00:00