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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Add qtextstream.h includes before header files define Status
Change-Id: I02e1fe710d4371100509a7fafac1eda8f436d80f
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
that makes no sense at all. and OBJECTS_DIR is not resolved, either.
Change-Id: Ie76b9de6bb11ae42945255f2e168943066d2f60d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
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>
this is consistent with the unix version.
Change-Id: I84e15dd590b4ed9702f8a9dc0e8b655c930588d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
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>
there is no reason at all for it to be an external script.
Change-Id: I836f38dd06f61350dd9f83015857abb07981c62d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
... 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>
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>
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>