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>
If the window contains a widget that accepts text input, a Meta+...
shortcut will be interpreted as if no modifier was pressed. This fix
enables the usage of Meta+... shortcuts for the XCB platform plugin.
Change-Id: I80034b7e6bbbf18471c86fc77320d5038f5740be
Task-number: QTBUG-43572
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Historically, the screen number of a QWidget was stored in
QTLWExtra::screenIndex which came in via the Q_WS_QWS platform.
The variable contained the screen number of the QDesktopScreenWidget
and the desired screen number for widget creation (from parent widget
or desktop parent widgets) and was not updated according to widget
geometry or when the associated QWindow moved to another screen.
Storing the screen number is problematic in Qt 5 since it may change
when the list of QScreens in QGuiApplication is rearranged.
This change renames it to initialScreen and changes its usage to only
contain a screen number when a screen is requested by parenting
on a desktop widget or reparenting. A value of -1 indicates no screen
is requested and the number should be deduced from the geometry.
For the usage in QDesktopScreenWidget, add a method to determine the
number via index in the list of QDesktopWidget.
Task-number: QTBUG-44070
Task-number: QTBUG-44213
Change-Id: I153d19073ad4b0fd14ef3d24caa6d3e76f350e82
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
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>
When using images in QRC and giving the 1x and 2x image files
respective aliases but without any file extension
(for example 'myimage' and 'myimage@2x'),
then QIcon would fail to find the 2x variant.
Task-number: QTBUG-44049
Change-Id: I400bf6d22aeefe0aa351c68e473bf24ac2a36471
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
This patch aims to improve the documentation of setPlainText/setHtml to
let the user know that the undo stack is cleared when both these
function are called.
Change-Id: I079f9f1dd407387941777ebbc7b5a7bc6dc005ec
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Currently angle() is used in place of angleTo() to describe the
difference with intersect. This patch fixes that.
Task-number: QTBUG-44309
Change-Id: Idfc521932247f76fe15fd980ff8e87e52feec1f1
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.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>
Otherwise there is a race condition: when the tray implementation
gets around to embedding the window, if it was already shown,
it will be unmapped, embedded, and then remapped. Some tray
implementations will resize the tray icon to 1 pixel wide in
that case. We also never want to show a window that was intended
for the tray in any other location, so it's better that it remain
invisible until we are sure it is embedded.
Task-number: QTBUG-31762
Task-number: QTBUG-35658
Task-number: QTBUG-32811
Change-Id: Id324b0bfded0f8258ff1686a223cb2c069827d42
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.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>
... but choose HTTP/1.1 and continue connecting anyhow. According to
the NPN spec, actually we should choose SPDY:
"In the event that the client doesn't support any of server's protocols,
or the server doesn't advertise any, it SHOULD select the first protocol
that it supports."
However, some tested servers did not advertise anything and did not
support SPDY, so blindly trying the newest protocol would fail. We are
conservative in that case and choose HTTP.
Task-number: QTBUG-40714
Change-Id: Ia8aaf01fea74e13d9e4416306f85f1890b25559e
Reviewed-by: Richard J. Moore <rich@kde.org>
Disable top-level widget code path for embedded widget in the show
helper.
Task-number: QTBUG-43780
Change-Id: I574e07130e5e68a019a426cee3fde982f3883720
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
QProcessPrivate::_q_processDied() was potentially called twice if there
was a slot connected to readyRead() that called processEvents(), because
the processFinishedNotifier was still enabled when readyRead() was
emitted.
This led to a null pointer access in findExitCode.
Change-Id: I4b796b81f050dc46bb9469602984accaa6ebfa28
Task-number: QTBUG-33731
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@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>