Commit Graph

28304 Commits

Author SHA1 Message Date
Andy Shaw
38b87cc4bb Doc: Clarify what samples() returns if not explicitly set
Change-Id: Icf4478121a9d67356eb976039c666d6945a2099c
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-11-07 16:48:13 +00:00
Sergio Martins
9933511838 Fix typo in define. s/GL_FRAMEBUFFER_SRB/GL_FRAMEBUFFER_SRGB
Found with clazy

Change-Id: Ied84c0fa95a7ae7b7791e167695acfc7877f7e25
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2018-11-07 14:40:03 +00:00
Richard Moe Gustavsen
a545b85bdd QWidgetWindow: check if receiver is deleted after event delivery
When a popup is active, we set the receiver of mouse events to
be the active popup widget. But when we send a mouse event to
the popup, the receiver might start a new QEventLoop (e.g by
executing a new dialog). And in the meantime, the popup will
be destroyed. This will cause a crash in the line after the
event delivery (where we sat "qt_last_mouse_receiver = receiver"),
since at that point, "receiver" would be a dangling pointer.

This patch will use a QPointer instead of a raw pointer to
store "receiver", to ensure that it's set to null for
such cases.

Fixes: QTBUG-71062
Change-Id: Ie017cfa97370513ecfdd62c056fcb0e6c991f9f6
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-11-07 13:22:21 +00:00
Liang Qi
825f988156 Modernize the "textcodec" feature
Also clean up QTextCodec usage in qmake build and some includes
of qtextcodec.h.

Change-Id: I0475b82690024054add4e85a8724c8ea3adcf62a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-07 13:19:54 +00:00
Allan Sandfeld Jensen
cfbb0d2b40 Avoid crashing with opaque opacity effect
Fixes the crash, but doesn't fix the underlying bug.

Task-number: QTBUG-60231
Change-Id: I5db9b151089b5c0e21e21443c77c725804d3059c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-11-07 12:26:09 +00:00
Janne Koskinen
efc7e02911 INTEGRITY: Fix missing uint/int 128 support for 64-bit ARM
Add 64bit specializations for mul_overflow.

Change-Id: I8bba69233dd71b94346983a100cf4d69bfc686f7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-07 10:32:44 +00:00
Timur Pocheptsov
b3ae87fe76 Add missing protocol enumerators, report TLS 1.3 if negotiated
1. Remove the conditional inclusion of DTLS versions, they made difficult
and unnecessary ugly adding new protocols (something like TlsV1_2OrLater + 4).

2. OpenSSL 1.1.1 first introduced TLS 1.3 support. OpenSSL 1.1 back-end is
compatible with OpenSSL 1.1.1, but would fail to extract/report protocol
versions and set versions like 'TLS 1.3 only' or 'TLS 1.3 or better' on a
new context.  Given 1.1.1 is deployed/adapted fast by different distros,
and 5.12 is LTS, we fix this issue by introducing QSsl::Tls1_3 and
QSsl::Tls1_3OrLater.

SecureTransport, WinRT and OpenSSL below 1.1.1 will report an error in case
the application requests this protocol (SecureTransport in future will
probably enable TLS 1.3).

Saying all that, TLS 1.3 support is experimental in QSslSocket.

Done-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Done-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Change-Id: I4a97cc789b62763763cf41c44157ef0a9fd6cbec
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-07 10:32:35 +00:00
Timur Pocheptsov
edacfd2f0b Fix QTableView/Widget on macOS
For this we can use whatever the current NSColor.gridColor contains.
While this is mostly needed by the 'Dark' appearance, it also affects
the 'Light' theme, since the color QCommonStyle returns is different.
Let's use whatever Apple suggests.

Task-number: QTBUG-71048
Change-Id: I084414bad546755e9e67792484fe4601826ed0fa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-11-07 06:54:00 +00:00
Allan Sandfeld Jensen
97600d2c28 White-list more recent Mesa version for multi-threading
The issue we had has been fixed for years, but was unfortunately in
libxcb which we can't check at runtime. Instead assume very recent
Mesa drivers works.

Change-Id: I5fdd726b480b77edbedc0f369ae82ab4acbb77c9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-11-06 19:16:22 +00:00
Edward Welbourne
ac4d954cfb Update DejaVuSans.ttf from upstream
Document the version in the process; and make the wordings of
copyright notices match those in DEJAVU-LICENSE.

Task-number: QTBUG-70008
Change-Id: I1c965e5d7afb18dc4dbdffed908512c5771ab717
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-06 16:41:18 +00:00
Edward Welbourne
d16babf351 Update sha3's brg_endian.h, document provenance and version
The existing copyright notice gave me a name; github found me a file;
but it doesn't match what we had before.  Made some guesses at which
parts of the change relative to upstream to keep, documented the diff
as a patch and recorded details in qt_attribution.json

Task-number: QTBUG-70008
Change-Id: I423724435eaeeda7237f8b3df8691b436fed8652
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-06 16:41:08 +00:00
Volker Hilsheimer
3f61873f49 Correctly document value of QThread::currentThreadId on Windows
The implementation calls GetCurrentThreadId, not GetCurrentThread, so
the return value is not the pseudo-handle.

Task-number: QTBUG-67686
Change-Id: Ifde0cf603dcea01bc1c454a8bebe1e5c0f22617f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-06 16:41:00 +00:00
Oswald Buddenhagen
e14e8427fa fix configure instructions in libpng and libjpeg attributions
Fixes: QTBUG-71379
Change-Id: Ib1efbe0fc4407ccf6ab814229dc4a08d9d03b6b5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-06 16:40:44 +00:00
Liang Qi
1f984dee90 Merge "Merge remote-tracking branch 'origin/5.12.0' into 5.12" into refs/staging/5.12 2018-11-06 13:00:36 +00:00
Andrew Smolko
9f2216667a Fix memory copy in QGIFFormat::disposePrevious()
Fix invalid destination address in memcpy operation when RestoreImage disposal method is used.

Task-number: QTBUG-71599
Change-Id: Ib74a044c0e45250ff708268c463f831ee54933e6
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-11-06 12:54:17 +00:00
Topi Reinio
4615415500 Doc: Tie the QScopeGuard documentation to a class
Previously no documentation was generated for the global qScopeGuard()
function. Create a class documentation page and add the the function
as a related non-member using \relates.

Task-number: QTBUG-71502
Change-Id: Ida5d7044f4de962360dfee9321feb49005d4b299
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-11-06 12:44:28 +00:00
Topi Reinio
46a595b047 Doc: QCbor classes: Fix \variable commands
\variable must not include the variable type, QDoc will resolve that.
This commit resolves four documentation warnings.

Task-number: QTBUG-71502
Change-Id: I5e88cf66d3c3bb8f18495d5477e1271ac2cd9e74
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-11-06 12:44:21 +00:00
Topi Reinio
a92735ec00 Doc: Document Qt::ScrollMomentum
And fix a typo in Qt::ScrollEnd.

Task-number: QTBUG-71502
Change-Id: I3efdbd12415814e066edd1b2f102a792812d36d5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-11-06 12:44:14 +00:00
Topi Reinio
411430f420 Re-add missing ANGLE license files
Commit 0a7aebad inadvertently removed two ANGLE-related files for
license information. This caused the licensing documentation to
fail to generate for those components.

Task-number: QTBUG-71502
Change-Id: I33ee673267c43474304d577e78fc1a0c3bd8691f
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-11-06 12:43:35 +00:00
Topi Reinio
ec1548ae12 Doc: Fix various documentation warnings
These include typos, marking functions as \internal, documenting
trivial things, and fixing the function signatures passed to the
\fn command.

Task-number: QTBUG-71502
Change-Id: I24a9e1f7e1cdb39e5c31b99202bdd593c6b789ff
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-11-06 12:43:26 +00:00
Topi Reinio
8828993c44 Doc: Qt GUI: Fix documentation warnings
These are minor typos or documentation warnings that snuck in with
new features.

Task-number: QTBUG-71502
Change-Id: I03669cfecc3c3d80168ff7b1ca8bca7571e06d25
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-11-06 12:43:17 +00:00
Christian Ehrlicher
1771b8d7c6 QFbCursor: Avoid nullptr access when QT_QPA_FB_HIDECURSOR is 0
When the environment variable QT_QPA_FB_HIDECURSOR is set to 0,
the two class members mCursorImage and mDeviceListener are nullptr
but this was not checked in the functions afterwards.

Task-number: QTBUG-64844
Change-Id: Ic0fd6a09851777643e59bedf2c006a6bb9a36801
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-11-06 12:11:22 +00:00
Liang Qi
eedb3a06cb Merge remote-tracking branch 'origin/5.12.0' into 5.12
Change-Id: I12f26470e01a8582d0f02f51e20d5b742bd95d6f
2018-11-05 19:06:47 +01:00
Allan Sandfeld Jensen
73e7eb785f Enable swizzling
This part was accidently left disabling after testing the
fallback still worked.

Change-Id: Ic2df939753641a9771e68bc8857c570d356cff44
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-11-05 15:16:24 +00:00
Jani Heikkinen
d24835a60c Merge "Merge remote-tracking branch 'origin/5.11' into 5.12.0" into refs/staging/5.12.0 2018-11-05 12:49:22 +00:00
BogDan Vatra
60197af485 Android: Fix build.gradle
Configuration 'compile' is obsolete and has been replaced with
'implementation' and 'api'.
It will be removed at the end of 2018. For more information
see: http://d.android.com/r/tools/update-dependency-configurations.html

Task-number: QTBUG-71570
Change-Id: I6f498d8cb3ff01ad641aee697496e3dc56059a72
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-11-05 12:49:17 +00:00
Laszlo Agocs
67c66c4ea4 windows: Give up on SwitchableComposition
Opt out of switching between the normal and OpenGL based flush paths.
Once a QOpenGLWidget or QQuickWidget becomes visible in a window, the
window contents will be composed using OpenGL from that point on, even
if said widgets become invisible afterwards. Now that Qt Creator does
not rely on QQuickWidget the issue is less burning anyways.

Task-number: QTBUG-68329
Change-Id: I177e6e6094ee06ea26d8d0343bd3d84aadfa5913
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-11-05 12:33:14 +00:00
Liang Qi
b36c5bdc30 Merge remote-tracking branch 'origin/5.11' into 5.12.0
Conflicts:
	src/plugins/platforms/cocoa/qcocoaglcontext.mm
	src/plugins/platforms/xcb/qxcbscreen.h

Change-Id: If9b4c67288396ff7346088ce591c7a3588b51979
2018-11-05 09:59:59 +01:00
Lars Knoll
98365711a0 Remove unused variable
Change-Id: I241969d10502e944f7a73971771730d43dd2784f
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-11-02 13:48:57 +00:00
Allan Sandfeld Jensen
dc2aead842 Fix build with -qt-libpng on powerpc
It appears we are missing some setups for SIMD optimization, and already
have a workaround for that for NEON, so do the same for VSX.

Fixes: QTBUG-66388
Change-Id: I1cc1d0fe9c5a9df97acb589d29dec4dceb8fc576
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-11-02 13:48:46 +00:00
Edward Welbourne
ceeecbae51 Update various qt_attribution.json files
Marking various as final because no upstream is known or available.
Listing versions of others, where I was able to discover them.
Updated a stale link (that helpfully redirected).

Task-number: QTBUG-70008
Change-Id: Id00f34827133c560735c68793b4f1353f2b2ca85
Reviewed-by: Tobias Koenig <tobias.koenig@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2018-11-02 13:48:35 +00:00
Nico Vertriest
47869340b9 Doc: Solve issue with gridlayout image file
Due to name conflict with file from qtdeclarative

Task-number: QTBUG-65769
Change-Id: I9ebf237701ce76b424f528feacb24e4158f06c0d
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2018-11-02 12:41:10 +00:00
Edward Welbourne
3fbf8fbc85 Update to CLDR v34
This only updates data on languages already present in 5.12; once it
has merged up to dev, the scripts need to be run again to pick up a
few more languages and possibly add any more new languages present in
v34.  Change some tests to match changes in en_AU's abbreviated day
and month names.

[ChangeLog][ThirdParty][CLDR] Update locale data to CLDR v34.

Task-number: QTBUG-71144
Change-Id: I68402b5e7e9d3dba669b8ba31b9a8abd86675c6e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-02 12:40:46 +00:00
Gary Wang
e3c84b6da1 QMimeType: Use default key as fallback for comment() property
When QMimeProvider parses the shared mime database xml files,
it will read the <comment> element for mime comment and treat the
`xml:lang` attribute as locale language string. When no `xml:lang`
attr is provided, QMimeProvider will read the value and treat it as
a en_US locale string as the default key.

When we call QMimeType::comment(), it will try to get the locale
comment string with the default language (QLocale().name()), once
it can't find a matched result, it should return the default key
(which QMimeProvider set it as en_US locale before) as fallback.

Task-number: QTBUG-71314
Change-Id: I444f8159d6f19dfef6338cd79312f608d8f13394
Reviewed-by: David Faure <david.faure@kdab.com>
2018-11-02 08:27:10 +00:00
Christian Ehrlicher
8637235e85 QColorDialog: use customColorCount() instead hardcoded value
A hardcoded value of 16 was used in QColorDialogPrivate::_q_addCustom()
instead QColorDialogOptions::customColorCount()

Fixes: QTBUG-58425
Change-Id: I7ae9881abd5926e0c6b118d5c84c3f259c545d35
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-11-02 08:27:02 +00:00
Timur Pocheptsov
6114230996 Fix supportsSsl() to make it more consistent
Attempts to use QSslSocket and its OpenSSL 1.1 back-end with OpenSSL 1.1.1
in a very peculiar way (for some reason the reporter calls  OPENSSL_no_config())
combined with a bug in OpenSSL 1.1.1 resulted in a QSslSocket dead-locking
in initialization. This was happening because supportsSsl() first reported
false (OpenSSL internally fails to initialize after OPENSSL_no_config()),
but we have s_libraryLoaded set to true too early, thus the first supportsSsl()
returns false, the second - true.

Move setting of s_libraryLoaded later so that we don't claim to support
OpenSSL when an earlier ensureLibraryLoaded() attempt failed.

Task-number: QTBUG-70956
Task-number: QTBUG-71446
Change-Id: I8ad8763d357c84fc38c62e2ce914366367c2b445
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2018-11-02 05:00:14 +00:00
Friedemann Kleint
e3a552a130 QtPlatformSupport/macOS: Remove superfluous freetype inclusion
freetype is included depending on configuration by the top level .pro
file.

Fix build warning:
Makefile:1361: warning: ignoring old commands for target `.obj/qfontengine_ft.o'

Change-Id: I0a0f111a841b368196633bbc0f9c698197f64bb2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-11-01 17:41:14 +00:00
Friedemann Kleint
235ea594ad uic: Remove remains of old Java generator
Preparing the use of the option for Python.

Task-number: PYSIDE-797
Change-Id: Ia1267b227ceac7f9dcbcfde6ed7c1480ef790f2a
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2018-11-01 17:41:00 +00:00
Friedemann Kleint
c6af950bfd QtCore/Windows: Output unknown messages in hex in the debug operator for MSG
Task-number: QTBUG-71257
Change-Id: I89335799529e8c518113925d402571a8f7ada244
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2018-11-01 17:40:36 +00:00
Allan Sandfeld Jensen
00674a1643 Treat shorts as int in QVariant::canConvert()
Follow the pattern of char and float, and treat shorts as a more generic
type in QVariant::canConvert()

Task-number: QTBUG-60914
Change-Id: Ib1cc7941ee47cb0fc0098f22f98a03cd6f6b63fe
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-01 17:31:13 +00:00
Gatis Paeglis
d28c241ca1 xcb: cleanup _NET_WM_STATE handling
Use function name overloading for all of _NET_WM_STATE setters for
a mapped window, instead of few similar sounding functions, where all
do the same thing. For an unmapped window rename updateNetWmStateBeforeMap()
-> setNetWmStateOnUnmappedWindow(). Merge setNetWmStates(NetWmStates) into
setNetWmStateOnUnmappedWindow() and add a comment explaining why it does
what it does, as it was not obvious.

Internally there are 2 variants:

a) When a window is already mapped, to change the window state we send
XCB_CLIENT_MESSAGE(_NET_WM_STATE) messages to the root window as per EWMH
spec. The Window Manager MUST keep this property updated to reflect the
current state of the window. If this variant of the overload is called
while a window is not mapped yet, it does nothing. WM would ignore this
message anyway. The state change is not lost, it will be set later and
that is where the second variant comes in.

b) On an unmapped window we can set _NET_WM_STATE by using setNetWmStateOnUnmappedWindow().
This function will read QWindow properties and set all of them via one
xcb_change_property(_NET_WM_STATE) call. We do this inside QXcbWindow::show(),
where we know that QWindow state properties won't change anymore until
it gets mapped. Once it is mapped, we use the other variant.

This patch doesn't change any functionality, just makes the code easier
to follow.

Change-Id: I4f4703a35de083fcfd398112eabd0a5aec358e51
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-01 17:20:56 +00:00
Samuli Piippo
c9d18d4a9c eglfs_kms: initialize m_deviceListener
If QT_QPA_EGLFS_HIDECURSOR was enabled, m_deviceListener was never
initialized, which caused segfault in the destructor.

Task-number: QTBUG-71507
Change-Id: Id8b17f5312073249cd12995317213fd746753521
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-10-31 17:19:54 +00:00
Gatis Paeglis
f5c0a19077 xcb: move clipboard code out of QXcbConnection::processXcbEvents
... to QXcbConnection::handleXcbEvent(), which is where it belongs.
This patch amends bc6f5b3ff6 (Sep, 2013).

And some other design cleanups.

Change-Id: Iefa0793c58de16a59d2294f38311e1e8dfa3035b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-31 10:35:33 +00:00
Gatis Paeglis
f25c686462 xcb: remove leftover function
It was forgotten in 4050ee6ac7

Change-Id: Icace56161b8ae372dba105f82da0d1c1b69542c1
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-10-31 10:35:20 +00:00
Jarek Kobus
deee147aca Fix doc
Change-Id: I75386b948763bbe784fc36abe7e69696bc04219d
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-10-31 10:34:01 +00:00
Kari Oikarinen
a952fd7d5b QObject: Fix isSignalConnected() when signals have been disconnected
The bitmap cache for the first 64 signals being connected was only set when the
connection is added. It was never unset when the connection was removed.

Internal use of the connectedSignals bitmap is not hurt by it occasionally
saying a signal is connected even though it is not, since the purpose of those
checks is avoiding expensive operations that are not necessary if nothing is
connected to the signal.

However, the public API using this cache meant that it also never spotted
signals being disconnected. This was not documented. Fix the behavior by only
using the cache if it is up to date. If it is not, use a slower path that gives
the correct answer.

To avoid making disconnections and QObject destructions slower, the cache is
only updated to unset disconnected signals when new signal connections are
added. No extra work is done in the common case where signals are only
removed in the end of the QObject's lifetime.

Fixes: QTBUG-32340
Change-Id: Ieb6e498060157153cec60d9c8f1c33056993fda1
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-10-31 10:32:41 +00:00
Jan Grulich
4c37b64411 Add terminating character when sending byte arrays in FileChooser portal
Terminating character is needed for gtk portal backend, which is not
able to contruct a string without it and thus not able to pre-select a
file or a directory in file dialog.

Change-Id: I5b40fb1ce584936fc92e93f38dc8559890852d99
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-31 09:58:52 +00:00
Friedemann Kleint
7f54ea714e QtCore/Windows: Add pointer messages to the debug operator for MSG
Task-number: QTBUG-71257
Change-Id: I53a4cee7b84b4075342cc016bb3382f473c27788
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2018-10-31 09:35:30 +00:00
Oliver Wolff
aa0e3d02d5 winrt: Use SwitchToThread instead of Sleep(0)
UWP also supports SwitchToThread. The usage of Sleep(0) was a leftover
that was forgotten when porting to desktop Window's approach of handling
threads.

Change-Id: I5e3d6fb3eefe07407b910cc6a6b45781d320e151
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-31 09:35:28 +00:00
Andre de la Rocha
eb056ee233 Fix painter opacity being ignored when rendering to PDF
The opacity set on a QPainter was being ignored for drawImage()/drawPixmap()
calls when rendering to a PDF file through QPdfWriter/QPrinter. This change
fixes it for PDF files v1.4 (default version) or v1.6. For PDF/A-1b files,
opacity will remain ignored to ensure compliance with the specification.

Task-number: QTBUG-70752
Change-Id: I4280e898698e0367dfb4c6ac2cd14ca2bf98850e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-30 17:48:23 +00:00
Andy Nichols
1b9af84c1b Don't create an offscreen surface when not on the GUI thread
When we try to gracefully destroy a QOpenGLVertexArrayObject it is not
possible to create an QOffscreenSurface from a thread that is not the
GUI thread. In this case we just need to bail out instead.

The side effect that was seen previously was that there would be a
warning and a deadlock on Windows when closing QQuickWindows that
contained a QQuickPaintedItem backed by a FrameBufferObject render
target (which would be using the OpenGL paint engine) when using the
threaded render loop.

Task-number: QTBUG-70148
Change-Id: I4a20d74d9af850bb90d243212ad9f65c3fc9e616
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-10-30 12:49:53 +00:00
Joni Poikelin
fc1ab49cd7 Fix leak in QContiguousCache::setCapacity
Fixes: QTBUG-52125
Change-Id: Id0073e73279d049cf3f89ef6ea3a5ca1027efb0d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-30 10:08:47 +00:00
Oswald Buddenhagen
5f3518d0bf Merge 5.12 into 5.12.0
Change-Id: I31f8eff4fdfe56cbb7f1450be8d351991966c6d8
2018-10-30 00:49:20 +01:00
Thiago Macieira
3b8075de3b Fix deleting of QSharedPointer internals in case QPointer loses the race
QPointer uses QWeakPointer / QSharedPointer internals in QObject and has
the code to make sure two threads won't stomp on each other if both try
to create a QPointer for the same QObject at the same time. The
threading code was fine, but had a mistake in the clean up code for the
loser thread: the QtSharedPointer::ExternalRefCountData destructor has a
Q_ASSERT for the state of the reference counts. So we need to set the
state correctly before calling the destructor.

But we don't want to do it in case the Q_ASSERT compiled to nothing. So
we use a hack that violates the Second Rule of Q_ASSERTs: don't do
something with side-effects. This way, we can insert code that will only
be compiled if Q_ASSERTs do something, without having to duplicate the
preprocessor conditions from qglobal.h.

Fixes: QTBUG-71412
Change-Id: I1bd327aeaf73421a8ec5fffd1560fdfc8b73b70c
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-10-29 19:12:17 +00:00
Albert Astals Cid
58d2180dfa Add since 5.11 markers to two QFile enums
Change-Id: Iaa015046cdcece10c28437da40fcd6cdc9d55eb3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-29 18:11:10 +00:00
Błażej Szczygieł
d4e937a628 xcb: Don't get initial screen rotation
"xcb_randr_get_screen_info" can be slow and in some configurations can
cause short mouse cursor freezes (which will happen on Qt application
startup).

Initial screen rotation was used only to not handle possible redundant
screen change event.

Fixes: QTBUG-70760
Change-Id: I9f01325a045d2c82c4dd2fce91a18a34e54a4bcd
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-10-29 13:14:25 +00:00
Tor Arne Vestbø
e02d758c95 macOS: Treat explicitly set Qt::SubWindows as not needing a NSWindow
We used to have logic that explicitly marked a QWindow as "embedded",
but we now resolve this dynamically based on whether or not we have
a parent window owned by Qt or not.

As part of this refactoring the fix for QTBUG-63443 in ac35f9c44c
got lost. We restore the behavior by treating Qt::SubWindow as a
reason not to create a NSWindow for a view. This flag is set by
QMenuPrivate::moveWidgetToPlatformItem already.

Fixes: QTBUG-63443
Change-Id: I12bff546eefcb8f6c9ca43b1b879773d129a28f9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-29 05:10:30 +00:00
Rafael Roquetto
d02fed6781 macOS: restore hidden popup windows
We need to to explicitly unhide popup windows that were previously
explicitly hidden by applicationWillHide, so that their visibility will
be effectively restored when the application is unhidden (otherwise the
windows are gone forever even though their internal visibility is set to
true).

Change-Id: I4dbd209b07f769cc815851b40c41db0739ca2dc9
Task-number: QTBUG-71014
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-28 22:52:00 +00:00
Ivan Komissarov
95476bfcf6 qendian: Fix float conversions
Since Qt 5.10, qTo/FromBig/LittleEndian<float/double> stopped working.
It may be confusing, but big endian floats do exist, so not to break old
code, we should support them.

Change-Id: I21cdbc7f48ec030ce3d82f1cd1aad212f0fe5dd0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-28 22:26:56 +00:00
Tor Arne Vestbø
acf5c37046 macOS: Add local auto-release pool during updating of window flags
Prevents no-longer used QNSWindows from staying around (closed and
invisible, but alive), due to being auto-released when there is no
pool in place (during main(), before exec).

Change-Id: I4eb63c7140290ffe6bded8a76732354c846ed579
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-26 08:54:23 +00:00
Tor Arne Vestbø
199b67f11c macOS: Log Qt and macOS version information at startup
The SDK and deployment target versions are helpful to know when
diagnosing issues.

Change-Id: I85026bd9c1d706a923e8953837bd59bf9ed0266f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-10-25 21:14:48 +00:00
Lorn Potter
269172037d wasm: use maintainTimers instead of processEvents for touch callback
Change-Id: If39cdeedef60a47c0ba1afbab6adf1668bf5d0d6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-25 18:42:54 +00:00
Kirill Burtsev
d2e0e416d4 Fix leaking QTabletEventPrivate instance
Fixes: QTBUG-52279
Change-Id: I4f40fc9d3ce938b4c821f10cacd21e6f652a2227
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-10-25 14:08:32 +00:00
Simon Hausmann
ae57e271e8 Fix out of bounds memory access when setting motif window hint properties
Commit b4bd5f9df3 removed two members from
the mwm hints structure but told xcb_change_property that the structure
has still five members when it had been reduced to three.  This lead to
xcb_change_property accessing memory out of bounds.

As identified by Gatis, the safest option to avoid the access is to add
the two members again. Other window managers may be expecting their
presence in the window property.

Change-Id: Id4f0c9536cd317c35f2c6ebd1ac9ccc6f72de6a5
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
2018-10-25 12:28:36 +00:00
Gatis Paeglis
8e1c807628 xcb: fix unresponsive mouse clicks after VT switch
This patch amends d67214302f.

The issue was caused by mistakenly interchanging
m_hasXRender <-> m_hasXRandr. Also renamed
selectXRandrEvents() -> xrandrSelectEvents() to be more
consistent with xi2Select*() API. And moved the xrandrSelectEvents()
to QXcbConnection ctor for the same reason.

Fixes: QTBUG-71305
Change-Id: I26f9bac3ae1f997f53134eb97f3569fb6d3c13fe
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-25 11:42:30 +00:00
Andre de la Rocha
88fe7c8cad Windows QPA: Fix 2-finger scroll not working with some touchpads
It seems some touchpads only send legacy WM_MOUSEWHEEL/WM_MOUSEHWHEEL
messages for 2-finger scrolling, instead of WM_POINTERWHEEL/
WM_POINTERHWHEEL, even after EnableMouseInPointer(TRUE), in spite of
sending the expected pointer messages for normal pointer movement/taps.
This change adds a workaround to handle legacy wheel messages even when
in pointer mode.

Task-number: QTBUG-71257
Change-Id: Ib360051147c4521751a5b91d90fa7657496777fa
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-25 11:40:30 +00:00
Oliver Wolff
013cf4aeb3 angle: Add additional information to qt_attribution.json
Task-number: QTBUG-71112
Change-Id: If1b81589f295657597a9dfa3671128a927cbe488
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-10-25 11:24:10 +00:00
Andy Shaw
509d566ec0 Don't block mouse events if the window is a Tooltip type
If a tooltip was shown on an application modal dialog then it would end
up blocking mouse events to the dialog while the tooltip was visible.
Since tooltips are special in this case, they should not cause mouse
events to be blocked.

Fixes: QTBUG-65599
Change-Id: Ibf1729ca4942f5854e4f9687c5586382e23c1c31
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-24 10:47:43 +00:00
Michael Brüning
72bedd49bf [cocoa] Disable offline renderers for dual AMD FirePro GPU
The AMD FirePro dual gpus on the Mac Pro have a problem with offline
renderers in Chromium. Therefore, Chromium and thus Qt WebEngine
disable this option via the pixel format attributes.

The Qt Cocoa plugin on the other hand enables it in the recent versions,
causing context creation in Qt WebEngine to fail when run on a Mac Pro
with dual AMD FirePro gpus due to incompatible context options.

This patch uses the environment variable QT_MAC_PRO_WEBENGINE_WORKAROUND
which is set by Qt WebEngine upon application startup if the application
is running on a late 2013 Mac Pro. It should typically not be set from
anywhere else.

[ChangeLog] Offline renderers will be disabled when the application is
using Qt WebEngine and running on one of the late 2013 Mac Pro models.

Fixes: QTBUG-70062
Change-Id: I0b0831efb6f4073ebd37672040aaed6370853fc0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-23 08:29:31 +00:00
Tor Arne Vestbø
ebfad73b4e macOS: Fix NSOpenGLContext view association check
The expression "m_context.view = view" always evaluates to the view,
so the check was flawed.

Change-Id: Icef4ba5244975ccd78a151c7d40c53b2364c6148
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-10-23 07:21:24 +00:00
Friedemann Kleint
c053885735 Windows/QPA: Fix receiving mouse clicks after double clicks in QQuickWidget
The Qt QPA does not handle native double clicks as such; change the plugin
not to send them.

For Ink, remove the doubleclick detection. For the old code path,
map them to Press.

Fixes: QTBUG-70999
Change-Id: I54b858f9e146bf325a861554d5ef74143db7d2b7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-22 17:25:01 +00:00
Ivan Komissarov
903666a602 qtriangulator: Remove a bunch of dead code
There is no sense in testing the 'm_array' pointer against null, as the
memory was allocated using the 'new' operator. The exception will be
generated in the case of memory allocation error.

Task-number: QTBUG-71156
Change-Id: Ib76d16d38d2b0b0c4c9fae3d8d5bdd86af0d08ff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-22 16:24:25 +00:00
Andre de la Rocha
1bb8627f8f Extend PDF engine to allow the generation of PDFs with huge pages
Qt's PDF engine previously supported only the PDF v1.4 standard, which
only allows pages of up to 200x200in (about 5x5m). This patch optionally
enables the generation of PDF v1.6-compliant files that allow the
redefinition of user space units, so that pages of up to 381x381km are
now possible. By default, generated files are compliant to v1.4 spec.
v1.6 compliance must be enabled by, e.g., calling QPrinter::setPdfVersion()
with QPrinter::PdfVersion_1_6. PDF v1.6-compliant files require Adobe
Reader 7.0 or newer (also worked with the built-in viewers in current
versions of Chrome, Firefox and Edge).

Task-number: QTBUG-69386
Change-Id: I21708e0d465d5d7d9e46ff06dd04acfe1dfb0858
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-22 15:53:17 +00:00
Arnaud Bienner
0cb44e2cfb Fix stylesheet example for QLineEdit:read-only code example
Change-Id: I987a4129968e9af74e21a2d855c4576a9caada73
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-22 11:27:47 +00:00
Frederik Gladhorn
a87f85dbf9 Linux Accessibility: Fix expandable state
The state was forgotten from the translation layer, this is important for tree views.

Fixes: QTBUG-71223
Change-Id: Ief4004fe455889f9d5a7eb018bf34d37c36a6bd9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-10-22 10:27:06 +00:00
Ivan Komissarov
07f79a8029 qimagescale: Get rid of the memset call
There is no need to call a memset as long as class is initialized with
new and default-constructor will initialize values.

Change-Id: I02f9ec524e32cb72713f6b5e37b60f3dec72fb28
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-21 18:15:09 +00:00
Ivan Komissarov
1a6a78171a qdir: Fix a condition typo
A part of conditional expression is always false: if "c > 'z'"

Task-number: QTBUG-71156
Change-Id: I6ee20c45d80e476d97e59167c481b157e4a233d0
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-21 13:45:01 +00:00
Anton Kudryavtsev
ef02dd14cd QMovie: use rvalue more
Change-Id: Idf052436190bf225662ff6c1d4b7b8e3c0c84685
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-10-21 12:11:56 +00:00
Ivan Komissarov
c6c31b14a7 qjson: add missed Q_CHECK_PTR
There might be dereferencing of a potential null pointer 'h'

Task-number: QTBUG-71156
Change-Id: I63c34f8cba3e358f109d70ff9b34199c31895202
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
2018-10-21 11:46:20 +00:00
Qt Forward Merge Bot
9ef793ba95 Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into refs/staging/5.12 2018-10-20 23:19:30 +00:00
Qt Forward Merge Bot
7a252ac467 Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: Iaf28977e7ecf566b28b9406dcb005d48621169c2
2018-10-21 01:00:09 +02:00
Ivan Komissarov
e631e900fd itemviews: Fix a condition typo
'QAbstractItemView::NoSelection' named constant with the value of 0 was
used in the bitwise operation

Task-number: QTBUG-71156
Change-Id: I2d5099f9ed03cc42061508cc78282412a09825cb
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2018-10-20 20:42:00 +00:00
Ivan Komissarov
5d61fd8c22 qfilesystemengine: add missed Q_CHECK_PTR
There might be dereferencing of a potential null pointer

Task-number: QTBUG-71156
Change-Id: I202d314d001917a2de0500caf762d2b54ff517cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
2018-10-20 20:41:15 +00:00
Lorn Potter
10b8ed816d wasm: fix wheel scroll logic
Task-number: QTBUG-71180
Fixes: QTBUG-71180
Change-Id: If442da096b847fdf69f3b24615e99c2ca988fb79
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-20 01:41:35 +00:00
Giuseppe D'Angelo
2708c6c11d OpenSSL: force the "1.0.0" soname when loading OpenSSL 1.0
Some Linux distributions patch OpenSSL's soname, making builds
on such distributions not deployable elsewhere. The problem is that
the code loading OpenSSL symbols would attempt to use the soname
of the build machine, and therefore not finding the OpenSSL
libraries on the deploy system.

The binary builds of Qt for Linux are affected by this problem,
as they build under RHEL7.4 which changes to soname of OpenSSL to
a non-standard string. This makes the binary builds not pick up
OpenSSL 1.0 from the machine where the build gets installed on.

Given that in the pre-1.1 versions only the 1.0 series is supported,
bump the minimum requirement of Qt to that. The 1.0.x releases
(up to 1.0.2, at the time of this writing) have kept binary
compatibility, and advertise a soname of "1.0.0", which is used
by most distributions.

So, if loading of OpenSSL with the build-time soname fails,
try to load them with the "1.0.0" hardcoded soname.

[ChangeLog][QtNetwork][SSL] OpenSSL >= 1.0 is now required to build
Qt with OpenSSL support.

Task-number: QTBUG-68156
Change-Id: Ieff1561a3c1d278b511f09fef06580f034f188c6
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-10-19 20:21:44 +00:00
Timur Pocheptsov
3c4f94b7cb QMacStyle: fix group box for macOS Mojave
This change is based on a patch started by Gabriel. It works around the
apparently noop (on macOS Mojave, light theme)  -drawRect: call on NSBox,
replacing it with  -displayRectIgnoringOpacity:inContext:. Unfortunately,
this turns out to be  extremely slow with dark theme, so we have to resort
to a custom version of NSBox/-drawRect:  which calls its super's -drawRect:
and look more or less correct.

Task-number: QTBUG-69650
Change-Id: I5a614d7cd8002b378c6c3804663b6559e227f628
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-19 13:23:51 +00:00
Timur Pocheptsov
0b4ab214db Fix a regression in qmacstyle
square/flat button had an erroneous size adjustment, resulting in a
wrong highlighted area. This button is anyway nothing like a real
control on macOS - they don't have 'flat' button which highlights
when pressed. Anyway, now our flat button looks more like AppKit's
'square' button when pressed.

Task-number: QTBUG-69533
Change-Id: I9643c1d4a25329c3f3c2148cc1821922655d9a8b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-19 13:03:43 +00:00
Christian Ehrlicher
c18a91b0dc QTableWidget: fix cellChanged signal emitted by takeItem()
QTableWidget::takeItem() emitted cellChanged with row and column set to
-1. The internal functions searched for item after it was reset to
nullptr and therefore it was not found.
Since the modified cell is known because it's passed to the takeItem
function, the correct row/column can be retrieved from there.

Task-number: QTBUG-70478
Change-Id: I5ff5991c49f3200efe95fde4c7d0d28e19be7ebf
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-19 12:19:20 +00:00
Edward Welbourne
c14103be50 Update dbus header and document its provenance
There's been one minor change in a struct and some minor re-ordering
of other things within their files (reflected here to simplify future
checks); and qt_attribution.json didn't document enough details to
ensure reliable review.

Task-number: QTBUG-70011
Change-Id: Iccff9cfd899e58cb42837c4628acacd7877c5b01
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2018-10-19 12:15:51 +00:00
Simon Hausmann
b98b49ba00 Fix re-running of cmake when a qrc file changes
Commit 2af1277631 renamed out_depends to
_out_depends inside qt5_add_resources but the old (empty) variable was
used with add_custom_command.

Change-Id: I8005674992b4538bd82375a4f1f70484bc0f0ae5
Reviewed-by: André Klitzing <aklitzing@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-10-19 11:30:16 +00:00
Mikhail Svetkin
ef567c3b67 qedidparser: Fix a condition typo
'\040' is 32 and '\176' is 126.
The condition is always false "if (buffer[i] < '\040' || buffer[i] > '\176')"

Task-number: QTBUG-71156
Change-Id: Ic3d6eae5b8ddb56742315af7e78b58bea2393d7a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-10-19 11:00:10 +00:00
Timur Pocheptsov
5760545ebb QCocoaMenuItem: ignore font hints
Native applications do not use custom fonts in menus, so we should
avoid it - our own example app 'menus' demonstrates the problem.
To quote Gabriel: Although the Mac HIG don't say that you shouldn't, and there's
even a API to do it (which we're obviously not using properly), the truth
is that nobody does it. Simply put, it looks wrong on Mac (although it's
arguable whether it looks good or bad regardless of the platform).

Task-number: QTBUG-29654
Change-Id: Iffd08ad63d419164102b2e738cdf1ebda1967a05
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-19 10:54:29 +00:00
Thiago Macieira
948f8ce2ec QWinEventNotifier: fix crash on application shutdown
The event dispatcher can be null already but we may have outstanding
QWinEventNotifier objects (like in a QProcess).

Patch-By: Tamas Karpati
Task-number: QTBUG-70214
Change-Id: I5e432e273def425ea334fffd154f34abfd6cb11a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-19 05:47:37 +00:00
Giuseppe D'Angelo
44eeeb8e81 Upgrade PCRE2 to 10.32
[ChangeLog][Third-Party Code] PCRE2 was updated to version 10.32.

Change-Id: Id3bf7df0003f626cd1135d0508a5a489ff02f1e5
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-10-18 21:14:48 +00:00
Morten Johan Sørvig
b88eaa255a macOS: Use correct text background color
Commit 582d221b29 introduced a regression where
the default Base color is no longer white in light mode,
for some use cases like querying QApplication::palette()
and when using style sheets.

[NSColor windowBackgroundColor] is not the correct
color for QPalette:Base, [NSColor textBackgroundColor]
is, except for the Disabled state which uses windowBackgroundColor
to get a grayed-out look.

This also changes the dark mode Base color slightly, from
RGB(0.196, 0.196, 0.196) to RGB(0.118, 0.118, 0.118).

Task-number: QTBUG-70966
Change-Id: I1ff494a09980ff2d04b2e2c43ee0bcc8e26ba9e7
Fixes: QTBUG-70966
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-10-18 20:31:24 +00:00
Andre de la Rocha
83d56811ec Windows QPA: Fix Drag&Drop from touchscreen/pen
The Drag&Drop functionality had stopped working with touchscreen/pen
after the WM_POINTER-based input handling was added. The Drag&Drop
functionality internally uses the DoDragDrop() WIN32 call which,
according to Microsoft docs, is not supported for invocation inside
handlers for touch/pen messages, and should be invoked in handlers
for mouse messages that are synthesized by the OS afterwards. The
result was that when DoDragDrop (which is a blocking function with
its own event loop) was called it would hang ignoring all touch/pen
messages until a mouse/touchpad message arrived. This change
implements a workaround for this issue by enqueuing Qt touch/pen
events that would be generated inside the pointer message handler,
and that could start a Drag&Drop operation, and only producing them
after the OS sends the associated mouse messages.

Task-number: QTBUG-70887
Change-Id: Id45e0ecc70358ba250de9b3268856781ed21c9dd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-18 12:38:37 +00:00
Kirill Burtsev
57b09b903e Fix QString latin1 conversion and comparison for -optimize-size build
Change-Id: I5f0ae946151e9733cbe21cb24387636ba68bc177
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-10-18 17:37:14 +00:00
Gatis Paeglis
96218681f2 Restore "Do not create instance of QPlatformIntegration for invalid displays"
This patch is amended version of 67cc8fea10,
which was temporary reverted to simplify integration of conflicting
patches. What was amended:

- Dropped the factory interface. It is sufficiently clean to check for
QXcbConnection::isConnected().

Task-number: QTBUG-68859
Change-Id: I810897b3ea20e356fc4d62e6f01231fd287962dc
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-18 17:06:48 +00:00
Eirik Aavitsland
6599c1f758 QPicture: fix crash for malformed picture
A file with the correct QPicture magic bytes, but shorter than a full
QPicture file header, could cause the header decoder to access memory
out of bounds. Add a size check to avoid.

As a driveby, generally harden the parsing against malformed files.

[ChangeLog][QtGui][QPicture] Fix crash reading malformed picture file

Task-number: QTBUG-71208
Change-Id: I86eb1f915ca9b3a4b91c7433036d76ed6061e2f0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-10-18 09:03:03 +00:00
Friedemann Kleint
5ac2b9ef59 Windows QPA: Fix maximizing windows without title bar
Extends the code from qtbase/0d6612af65161f6e659af6985bb2c0b76accb856
to cover the case of windows without title bar, too.

Fixes: QTBUG-4362
Task-number: QTBUG-8361
Change-Id: I5cff8814174069922936f3fcfbb3aef154c7a7e7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-18 06:36:03 +00:00
Thiago Macieira
7f60940fbe Re-disable statx() on Android
Commit b7887f9b4f removed this explicit
disabling because it shouldn't be needed anymore. Turns out it was, as
new Android SDK do include modern Linux headers and those define the
structs and constants needed for statx().

Repeat of 8eb3944dac.

Task-number: QTBUG-64490
Fixes: QTBUG-71200
Change-Id: If7e743cf8476463880ccfffd155e6d5c2b5a3da9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-10-18 05:30:34 +00:00
Friedemann Kleint
6764e7b020 Remove empty function QWidgetPrivate::registerDropSite()
Apparently it is a left-over from Qt 4.

Task-number: QTBUG-70240
Change-Id: I6b882728defef1ab78331b03e76459a7419cd386
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-17 19:11:20 +00:00
Friedemann Kleint
0aa27af801 Windows QPA: Add helper function to obtain DPI-dependent metrics on Windows 10
Use newly introduced SystemParametersInfoForDpi() API with some convenience
overloads.

Task-number: QTBUG-4362
Change-Id: I4c41c700007bf7cc4fd5868356e3145c136704c0
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-17 19:11:10 +00:00
Mathieu Velten
5e6bbbc1b8 xcb: use 128 as a reference DPI for small screens
This is a better version of 23b139038a
which was reverted.

Task-number: QTBUG-68620
Task-number: QTBUG-53022
Task-number: QTBUG-57211
Change-Id: I0b37fc261945c542bbfb30cecfe4b0a97c655e3c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-10-17 15:23:51 +00:00
Gatis Paeglis
b4bd5f9df3 xcb: cleanup _MOTIF_WM_HINTS handling
The existing code was difficult to follow, it contained some code
duplication, inconsistencies and legacy code (mwm/dtwm support).
Most of this code was copied over from Qt 4 as is, with some
unexplainable (accidental?) modifications.

Most of Motif code was never ported over to Qt5. In addition to the
properties and protocols described in ICCCM, Motif uses properties
and protocols of its own. In Qt4 we had an implementation of Motif
DnD protocol. This was never ported over and mentions of this support
was removed on Oct 2012, 4c41cb48d0.
Nobody has complained for all these years, so it is safe to remove
the remaining leftovers. Motif style support also was removed around
the same time 4c41cb48d0.

Keeping only those Motif hints that do not have any replacement in
modern window manager specifications - decorations hints.
MWM_INPUT_*MODEL* in modern specs was replaced by _NET_WM_STATE_MODAL

The existing code was setting _MOTIF_WM_HINTS from 2 places - from
QWindow setter (::setWindowFlags) and again before mapping the window
(::show). We don't need the logic from updateMotifWmHintsBeforeMap().
That function read the current value of _MOTIF_WM_HINTS and merged in
few additional hints, hints that are not relevant based on all the
reasons from above.

Change-Id: I9cb10bcad9bfac8762e3909895c2e9de613e622c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-10-17 15:21:25 +00:00
Albert Astals Cid
1625e53cc8 Update 3rdparty valgrind headers to Valgrind 3.14.0
Change-Id: I8d36f03e52ad77e89d92a9df4d3bff389bd3baf2
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-17 11:26:08 +00:00
Mikhail Svetkin
4e680bee86 qreadwritelock: Fix Q_ASSERT typo
Task-number: QTBUG-71156
Change-Id: Idc249b8b499106c3683a7fd641f27d22047386fe
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-17 10:53:31 +00:00
Mikhail Svetkin
7d03b9b300 qpainterpath: Fix Q_ASSERT typo
Task-number: QTBUG-71156
Change-Id: Id1669f72a684171ad8c72badad56e72ee20ee625
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2018-10-17 10:53:22 +00:00
Miguel Costa
69d977b993 Fix ANGLE build failure with mingw
Added the files libEGLd_mingw32.def and libGLESv2d_mingw32.def that were
deleted by mistake in the recent ANGLE update, causing failure when
building with mingw in debug.

Fixes: QTBUG-71189
Change-Id: I0bf446c3f2d189afb806bbfed2fdc1a3f70750c1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-17 10:34:17 +00:00
Gatis Paeglis
67c3c0f240 xcb: qxcbconnection_screens
Moved all screen handling method implementations into
qxcbconnection_screens, the same way we are doing with
xinput2 code in qxcbconnection_xi.cpp.  The goal was to
reduce the size of qxcbconnection.h/cpp.

Change-Id: I9bad55ca4b0874171b7313d923b13c66034c3b3e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-17 10:02:51 +00:00
Gatis Paeglis
d67214302f xcb: qxcbconnection_basic
A basic base class that creates a connection and initializes
extensions. The goal was to reduce the size of qxcbconnection.h/cpp.

Made QXcbAtom into a class that handles atom initialization and
exposes the relevant APIs. Before this patch, all of that logic
was inside of qxcbconnection.h/cpp.

Change-Id: Ia893c3b31e2343dfbe62fe2aa6bfd0017abf46ea
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-10-17 10:02:45 +00:00
Allan Sandfeld Jensen
5fe2ed48d6 Fix scrollbar updates in QPlaintTextEdit on block-visibility changes
Trigger documentSizeChanged when block visibility changes, since block
count remains constant in this case.

Task-number: QTBUG-69310
Change-Id: I5ec7a4f9008f26ea8602356bcbaefbda293e54a3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-17 09:21:26 +00:00
Gatis Paeglis
76c762558a 3rdparty/xkbcommon: update bundled version 0.4.1 -> 0.8.2
0.8.2 + subsequent commits up to 31f1f355700870c6615399fbfa7934934b3a9a57.
There were couple commits after 0.8.2. Mostly minor stuff, with 2 exceptions:
fix off-by-one error in xkb_file_type_to_string() and undefined behavior in src/x11/keymap.c

We currently don't use any of the features added in later releases of
libxkbcommon, therefore the minimal required version in src/gui/configure.json
remains the same.

[ChangeLog][Third-Party Code] updated bundled libxkbcommon 0.4.1 -> 0.8.2 (up to 31f1f355700870c6615399fbfa7934934b3a9a57)

Task-number: QTBUG-71109
Change-Id: Ia03c3dc31c5f39e78dcb5915a45e82797b065ccb
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-10-17 08:49:53 +00:00
Anton Kudryavtsev
aa633ff276 QMetaEnum: fix UB
Check ptr before usage.

Change-Id: Iac757a2e260b237d837318932cc0b5896c6e04c2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-17 08:48:13 +00:00
Anton Kudryavtsev
7bf4ebfb26 Create empty list only if it's needed in QMetaMethod::parameterNames
Change-Id: I2d370dff0c4939f27709db0ebf2b15a15eb14877
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-17 08:48:03 +00:00
Liang Qi
ccf26f6a88 Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
	src/plugins/platformthemes/platformthemes.pro
	src/printsupport/kernel/qplatformprintdevice.cpp

Change-Id: Iac01729ad954bb1c7af5867d982eb243b2139ee6
2018-10-17 10:35:28 +02:00
Anton Kudryavtsev
8ff1ae89bf QWindowsContext: proper check resolved function
Change-Id: I9a223dc2efa2205dc3ae8d300cf06b12e06ed0f9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-16 11:34:48 +00:00
Tor Arne Vestbø
25b8af0747 Clarify behavior of QAbstractEventDispatcher::processEvents
The function, although implemented differently in each event dispatcher,
is not supposed to process newly posted events, only the events that
were queued at the time of the call.

This is tested by tst_QEventDispatcher::processEventsOnlySendsQueuedEvents,
which is not blacklisted on any platforms, so we know it's the behavior
in practice.

Change-Id: If9a874eeeb8ebcebe88ed119b065ae12fc545129
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-16 11:27:17 +00:00
Friedemann Kleint
a517eb24fa uic: Ignore obsolete pixmap functions
After qtbase/550d2a0a15c9403894448ab83863e71bbac2d349,
pixmap functions are used for icons as well which can cause compile
errors for old UI files that still use them.

Task-number: QTBUG-8563
Change-Id: I61bd4b9c1bf774e071a35c5806657054a77ff4d0
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-10-16 11:25:35 +00:00
Tobias Hunger
a174b3df44 Fix wrong keyword in configure.json
'description' is used only once in all configure.json files, so
I assume that was meant to be 'purpose'.

Change-Id: I66e9d9196c27d2f2131c2d57ea03895e8f5ce754
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-16 11:24:09 +00:00
Allan Sandfeld Jensen
1cd2955173 Fix enum passed to QFontDatabase::findFont
The script taken here is a QChar::Script, not a
QFontDatabase::WritingSystem. This means it was passing QChar::Unknown.

Change-Id: I919ae7187ba277346a7719116a94776dce24dd84
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-10-16 11:14:31 +00:00
Laszlo Agocs
e0b1c39bed Drop cached shaders when arch is different
According to reports Intel on Windows gets confused when feeding
program binaries retrieved from x86 and x64 builds into each other.

Task-number: QTBUG-64697
Change-Id: Ia7748f532ad06942a92c6fbfc4c9d1ad16bc785a
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2018-10-16 07:20:12 +00:00
Ulf Hermann
402efef57b Don't drop update requests when closing and reopening windows
Before commit 4d15f393a7 update requests
were handled by a timer on QWindow. Therefore they survived the closing
and re-opening of platform windows. Now, as the timer was moved to
QPlatformWindow, it gets reset when you close the QWindow, and any
pending update requests are lost. However, we do set the
updateRequestPending variable on QWindow when requesting an update.
Therefore, we can also restore the update timer on the platform window
when creating it.

Change-Id: I23b00f24a46706beac7d1455edd8a5623db46b22
Fixes: QTBUG-70957
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-10-16 07:09:36 +00:00
Gatis Paeglis
00ae1e6b7b xcb: respect QEventLoop::ExcludeUserInputEvents in native event handlers
This was a regression from Qt 4.

Before this patch, we supported filtering events only at QWindowSystemInterface
level, but to properly support filtering in QAbstractEventDispatcher::filterNativeEvent,
we have to filter the events earlier. Now it is possible to enable/disable this
feature for platforms that support native event filtering.

The mapping of which events are user input events were taken from
QWindowSystemInterfacePrivate::EventType.

Task-number: QTBUG-69687
Change-Id: I9a5fb9f999451c47abcdc83fdcc129b5eeb55447
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-16 06:57:01 +00:00
Gatis Paeglis
dd8a66daa4 xcb: rework connection error handling
This patch reworks 0b1ce5db9e.

Just by looking at the source code it was unclear why is this
signal-and-slot connection necessary. It doesn't do anything on
normal exit - at the time we call dtor of this class,
QCoreApplication::instance() already is nullptr, which means that
no further event processing happens and we never get this signal.
Without digging into git history it may appear that the goal was
to process the remaining events on application exit, which would
be a questionable code by itself.

Change-Id: I202d11584901e3b52254d8e3c347aece17844b72
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-16 06:56:47 +00:00
Eirik Aavitsland
fc4b0769a5 Fix pdf printing in static builds
The pdf engine uses a resource file, but Q_INIT_RESOURCE() was lacking.

Task-number: QTBUG-71070
Change-Id: I685961b3f2eea0ffe6b5313c72d504a8ad9a98e5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-10-16 06:56:19 +00:00
Ulf Hermann
c89d0f9d53 QNetworkAccessManager: defer call to _q_networkSessionStateChanged
Also, call it only if the state really changes. If we stay disconnected
the whole time, there is no point in trying to create the session over
and over.

Change-Id: Ic3a92dd0575bed1a23ae36a944cc51b9741fb64a
Fixes: QTBUG-49760
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-10-16 06:46:00 +00:00
Paul Wicking
2b1913a7cb Doc: Clarify that BC does not apply to Qt Test
Task-number: QTBUG-17531
Change-Id: I59c02f456a16a48391247fdf7010358ad013c0ac
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-10-16 06:41:31 +00:00
Andy Shaw
298c00e530 Update bundled sqlite to 3.25.2
[ChangeLog][Third-Party Code] Sqlite was updated to version 3.25.2

Change-Id: I2d74ee924745a5e1edd6fe511777965313a4b77a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-16 06:38:34 +00:00
Friedemann Kleint
dc3dd8c5db Windows QPA: Add WM_INPUT to the list of input messages for event filtering
Amends a0a22037cd.

Task-number: QTBUG-67095
Change-Id: I32d2e78f9d9525d56c1d4477d69cf7b9d7f8e7a3
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2018-10-16 06:05:22 +00:00
Miguel Costa
8727bbd800 Fix build failed with ANGLE
Added eglext_angle.h and gl2ext_angle.h to the list of header files
copied to include/QtANGLE during install. These two header files were
introduced by the recent ANGLE update but were not added to the install.
This was causing build failures when including the ANGLE headers (e.g.
in qtmultimedia).

Task-number: QTBUG-71158
Change-Id: If2f1a9ecfcdf509cccf2b3671adf575cc39892d4
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-16 05:19:43 +00:00
Gatis Paeglis
03b1380613 xcb: cleanup WM_HINTS handling
- The only place where window flag Qt::WindowDoesNotAcceptFocus changes is inside
QXcbWindow::setWindowFlags and from there we call updateDoesNotAcceptFocus(). The
current code was redundantly calling xcb_wm_hints_set_input in various places.

- Similar as above: call xcb_wm_hints_set_normal/iconic only where it can change.
This hint depends on window state, so update it only from setWindowState().

Removed unnecessary call to setTransparentForMouseEvents(), which is already called
few lines above from setWindowFlags().

Change-Id: I8da919b135a4dfda0c8c1dad51d85d3e706153ab
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-15 18:33:55 +00:00
Gatis Paeglis
4aa86d38ef xcb: utilize thread-safety of QAbstractEventDispatcher::wakeUp
QAbstractEventDispatcher::wakeUp is a thread-safe method, using
a queued connection to invoke it is wasteful. This type of connection
involves allocating temporary QMetaCallEvent on a heap and locking of
destination thread's post-event queue. In most use cases this is ok,
and really convenient when target method is not thread-safe. But in
this case the existing solution was suboptimal, especially because
the events we are reading can be high frequency.

The solution that we use here is lock-free. There can be only one
time when it might need to wait for the lock, which is upon exiting
the application. If we have entered the critical section in
QXcbEventReader::run(), then the registered post routine (qAddPostRoutine)
will block the QCoreApplication's dtor (this is where dispatcher is
set to 0) until we exit the critical section. We also know when not
to enter the critical section, in case dtor is already running.

With this approach we might need to compete for the lock at most
once, instead of whole application lifetime, which was the case
with the existing code.

Change-Id: If6737329c972347b0050d67658e28dbaa6f552e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-15 18:33:47 +00:00
Gatis Paeglis
80b1cce0cf xcb: call processXcbEvents() on every event loop iteration
It is necessary for QTBUG-69687. The original code processes the xcb
event queue only when new events have arrived, but if we want to do an
event filtering that buffers some events and processes them later based
on set/unset flags (e.g. QEventLoop::ExcludeUserInputEvents), we need
to call processXcbEvents() on every event loop iteration, not only when
new events have arrived from X server.

The required functionality is implemented by having custom event dispatchers,
instead of using the generic ones from QtGenericUnixDispatcher::
createUnixEventDispatcher() / eventdispatcher_support-private. This also
enables for further customizations, as might be necessary by QTBUG-70095.

Task-number: QTBUG-69687
Change-Id: I1f8b2400d26cccf17279d57bb4b678e40c615f33
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-10-15 18:33:40 +00:00
Cristian Maureira-Fredes
793a36258d Fix typo vice versa
Change-Id: I639d6f9d2019998d91b52506afa2cbd861a0dbe4
Reviewed-by: Gabriel de Dietrich (DO NOT ADD TO REVIEWS) <gabriel.dedietrich@gmail.com>
2018-10-15 10:55:31 +00:00
Cristian Maureira-Fredes
1f6bfc2207 Doc: Move literal code block to a separate file
We need to override this snippet for the documentation
we generate for Qt for Python, and it is easier to have
it on a separate file.

Task-number: PYSIDE-801
Task-number: PYSIDE-691
Change-Id: Ideb5b6af25024279f167137d3b65660bb9c96a7e
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-10-15 10:55:18 +00:00
Johan Klokkhammer Helsing
02a2144427 QToolTip: Don't crash if a tool tip is shown outside screen geometry
In some cases, a tool tip may be shown outside screen geometry, i.e. if:

- QToolTip::showText is invoked manually with a position outside.
- In tst_QToolTip::setPalette if there is no screen at (0, 0). This might
  happen in a multi-monitor setups where one screen is taller than the other.
- On Wayland windows are (by design) not allowed to know their position on
  the screen. This means that global positions can't be trusted.

This started crashing when QDesktopWidget::screenGeometry(pos) was replaced
with QGuiApplication::screenAt(pos)->geometry() because screenAt will return
null if no screen is found, while screenGeometry defaulted to the primary
screen.

This reverts to the old behavior of falling back to the primary screen.

This won't solve the issue completely for the Wayland case, but at least we
will stop crashing.

Change-Id: I42dd07cc21c2f9f0ea0d69f0c25bd46d8a2615a0
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-15 07:44:04 +00:00
Eirik Aavitsland
f2f040ae1c Improve support for QImages in QDataStream read transactions
QImage's operator>>(QDataStream&) did not set an error mode on the
stream on read failures. That would break QDataStream transactions.
Since the current QImage serialization cannot differentiate between
truncated and corrupted data, we set the ReadPastEnd error as expected
by the transaction system.

Also specify the expected file format on decoding QImage from stream,
to avoid all the format handlers' canRead() being invoked. This is
necessary since some of them may call ungetChar(), which fails when
the stream is in a transaction.

Also add testing of this feature to the QDataStram transaction
autotest. That required a slight rewrite of the fake sequential
QIODevice subclass. The previous implementation had incorrect
behavior of peek(), which is required by QImage decoders.

Task-number: QTBUG-70875
Change-Id: If3f1ca7186ad1e6ca0e6e8ea81d2b2fbece6ea01
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-15 07:18:57 +00:00
Andre Hartmann
0479379d24 Fix docs for QStandardPaths::DesktopLocation
Was broken by 1afe110b8f

Change-Id: I63e000c663d227f8527ad5162c7662c5c011cf72
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-15 07:18:03 +00:00
Kai Koehne
2935131511 Fix attributions for wasm fonts
Change-Id: I83251f49f62f502ac2cc21048e9d4e079cee5e99
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-10-15 06:48:01 +00:00
Lorn Potter
52070f3a6c wasm: fix wasm shader compile
This fixes qopenglwindow shader in the triangle

Task-number: QTBUG-67338
Change-Id: I8552183bf9ca45e9b56760b340d014ddd34c21f4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-10-15 00:19:13 +00:00
Giuseppe D'Angelo
72fc65784d QImageReader: add tracepoints for image loading
Change-Id: I5fe25793eeda01a4fa1658091890af23f66b7089
Reviewed-by: Rafael Roquetto <rafael@roquetto.com>
2018-10-14 22:00:26 +00:00
Allan Sandfeld Jensen
8ec98fc2dc Fix launching with depth 30 XOrg
Our fallback logic for inexact matches was not very good at accepting
better suggestions.

Change-Id: I40fb78bf583171105725156148e4a2245fb81354
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-10-14 20:41:49 +00:00
Alexandra Cherdantseva
1192c463db QImageWriter/QPNGHandler: Quality option should be CompressionRatio
Wrong option was used to set zlib compression level for png
setCompression with negative value uses default compression
setCompression with value between 0-100 converts to zlib compression level 0-9
setCompression with positive value overrides Quality option

Change-Id: Ic4b048a1e30d6940019c2a00a6c24d0c11e3f821
Reviewed-by: Alexandra Cherdantseva <neluhus.vagus@gmail.com>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-10-14 19:36:33 +00:00
Gatis Paeglis
502a6cc253 xcb: localize handling of Qt::AA_Compress* flags
Handle both of them inside the QXcbConnection::compressEvent().

Change-Id: Ibe7184ba5c5b636013145e887c817dca701345ad
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-10-14 18:40:07 +00:00
Gatis Paeglis
243c3044b6 xcb: lock-free event processing
For details how this works refer to the documentation in the patch.

The follow-up patches will switch to calling processXcbEvents() on every
event loop iteration. With the existing code that would mean frequent
locking of shared data (event queue). Acquiring a lock is fast, but
lock contention isn't. To avoid potential problems, reimplement xcb event
processing to be lock-free. Besides theoretical performance benefits,
this definitally improves code readability in qxcbconnection.cpp. Thanks
to Mikhail Svetkin for questioning the design of the existing code.

Done-with: Mikhail Svetkin <mikhail.svetkin@qt.io>
Change-Id: I935f2b6ca802580f5c80205aef7b2f9afc172d26
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-14 18:38:24 +00:00
Gatis Paeglis
a880780ff9 Revert "XCB: Do not create instance of QPlatformIntegration for invalid displays"
This reverts commit 67cc8fea10.

I forgot about this patch and now it makes rebasing the local changes
too time-consuming. Besides, 67cc8fea10 broke a build for -no-xcb-xlib.
I will restore this patch, with adaptations to the new QXcb*Connection
hierarchy.

Task-number: QTBUG-68859
Change-Id: I938f32b5da22ce18f95d761f9b34e77fff923e24
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-10-14 18:38:07 +00:00
Gatis Paeglis
3af4b59e8b glib dispatcher: rework userEventSourcePrepare() event source
This is a better solution for fbb485d4f6.

The existing solution was working fine, but it was exposing logic that is
internal to QWindowSystemInterface and platform plugin interaction. Some
platform plugins do event filtering at native event level - those that
support QAbstractEventDispatcher::filterNativeEvent(). Other plugins rely
on QWindowSystemInterface to do the filtering. Dispatchers should not care
about this.

The new logic rely on the fact that QWindowSystemInterfacePrivate::handleWindowSystemEvent
calls QAbstractEventDispatcher::wakeUp(). The same way postEventSourcePrepare()
rely on QCoreApplication::postEvent() to call QAbstractEventDispatcher::wakeUp().

Event sources run in the order they are attached, postEventSourcePrepare runs
before userEventSourcePrepare(). We rely on that order to pass wakeUpCalled
value.

Change-Id: I0327f4f2398fd863fb2421b8033bb1df8d65f5af
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-14 13:41:16 +00:00
Timur Pocheptsov
f5204067a0 qt_mac_createRolePalettes: fix the highlight color for ItemViewPalette role
While this requires from us calling a deprecated method, a (non-deprecated)
method we were using gives a wrong color which is too bright/saturated.

Task-number: QTBUG-70676
Change-Id: Icebeb53e351caa646c533595ca1a886e5eb6b5b8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-14 09:49:47 +00:00
Miguel Costa
0a7aebadfb Update ANGLE to chromium/3280
Change-Id: I0802c0d7486f772d361f87a544d6c5af937f4ca1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-13 21:36:35 +00:00
Timur Pocheptsov
656e89f875 qnsview_keys - fix a typo
that resulted in 'Cmd' reported as combo of Qt::Meta/Qt::Control and
Qt::KeypadModifier.

Task-number: QTBUG-71006
Change-Id: I3dddc56f4d404a1ceefb21d57ac120b6273456ec
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-13 05:10:14 +00:00
Christian Ehrlicher
bbe08d6b68 QCss: properly parse functions which contains additional spaces
When there were additional spaces between the function definition and
the first parameter, the parser failed to parse it when it contained
another function (e.g. 'qlineargradient(... rgb() ...)').
The reason for this was that ::until() needs the function at index-1 so
it can correctly count the opening parenthesis.

Fixes: QTBUG-61795
Change-Id: I992f556e7f8cd45550f83bc90aa8de2b4e905574
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-12 22:01:14 +00:00
Thiago Macieira
b7887f9b4f Linux: Remove our use of syscall() for statx(2) and renameat2(2)
Those system calls are present in glibc 2.28. Instead of using
syscall(3) to place the system calls directly, let's use only the glibc
functions. That also means we no longer accept ENOSYS from either
function, if they were detected in glibc.

Change-Id: I44e7d800c68141bdaae0fffd1555b4b8fe63786b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
2018-10-12 15:39:32 +00:00
Andre de la Rocha
4d51e099b3 WinRT QPA: Fix crash in QWinRTBackingStore::flush()
QWinRTBackingStore::flush() was not considering the possibility
that the supplied region may fall partially outside the bounds
of the paint device. This resulted in possible accesses to invalid
memory addresses, causing a crash. This bug was exposed by an update
in ANGLE that was causing a crash when running tst_QTableView::bigMode
with a small screen size. With this fix the function will use the
intersection of the supplied region with the paint device bounds.

Change-Id: I2f0f0f7f5510688bfa1459320a0c146df6be65d1
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2018-10-12 14:42:03 +00:00
Liang Qi
3eebadc173 Modernize the "mimetype" feature
Change-Id: I9b67c2cbc0891a38ece18d521c86fbc7344dce7a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-12 14:26:33 +00:00
Liang Qi
9c8ca26a48 Modernize the "codecs" feature
Change-Id: Idee19112581bff64a2e0b8e331dd3d779aca165b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-12 14:26:27 +00:00
Liang Qi
4e7b58629a Modernize the "big_codecs" feature
Change-Id: Ic23f4a1f81a21711cd81aaa2942b493aca5b38b8
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-12 14:26:22 +00:00
Liang Qi
c593492d16 Modernize the "animation" feature
Change-Id: Ibc164b3df3cf87db569ef4813de458a9067b7f7d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-12 14:26:15 +00:00
Laszlo Agocs
9098ef697a windows: Disable shader disk cache for all Intel GPUs
Follow up to dff9bb2f9b

Task-number: QTBUG-64697
Change-Id: I73a114dd3c75f3ed1272fa73dad378ecfdc0db09
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-10-12 14:09:38 +00:00
Gatis Paeglis
8315acfb16 Revert "glib dispatcher: ensure all window system events are flushed"
This reverts commit 341bfcd1ea.

As it turns out there might be use cases where we want to have proper
windowing system event integration with glib dispatcher via g_source_attach().
For example with gtk_dialog_run, where GTK blocks in a recursive main loop.
We want to continue dispatcing our windowing system events during this nested
event loop. Not having a proper glib integration can result in rendering issues,
e.g. when resizing parent window via mouse while GTK-based dialog is shown. Can
be seen on examples/widgets/richtext/textedit/ -> Format (from menu) -> "Color..."

The issue from 341bfcd1ea actually should be fixed inside XCB platform plugin,
by improving integration with event dispatcher. That is handled in follow-up patches.

Change-Id: Icabc6d841a554aefbdd460765a3165d22e65f651
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-12 10:21:32 +00:00
Gatis Paeglis
466d65cd5b xcb: remove runtime check for xcb_poll_for_queued_event
xcb_poll_for_queued_event() was introduced in libxcb 1.8.
The minimal required libxcb version was bumped up to 1.9 in
1f5d791708. Before this version
bump we needed the runtime check to support older versions
of libxcb.

Updated connections in the event reader to use the new signal
and slot syntax. Removed threadedEventHandling() method because
now it is always 'true'.

Change-Id: I0bce61fd478a871d35e676239ee5280c4f40be8a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-12 10:21:22 +00:00
Eirik Aavitsland
0d7c049e44 Update bundled libpng to version 1.6.35
The remaining diff to clean 1.6.35 is archived in the qtpatches.diff file.

[ChangeLog][Third-Party Code] libpng was updated to version 1.6.35

Change-Id: I925b3d95f6da20e12fc3274b4713e3fea05094f7
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-10-12 08:14:03 +00:00
Andy Shaw
dc5f9d0c31 Only use a translucent background if there is support for alpha
Change-Id: Ia8d9e543fac4b6e790fa38cf04c5a782d72d72df
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-10-12 07:26:55 +00:00
Paul Olav Tvete
091a386eaf Use native visual ID when creating GBM surfaces for KMS
According to the Khronos documentation, gbm_surface_create() will give
a BAD_MATCH error if the format does not match the EGL_NATIVE_VISUAL_ID.
Newer drivers have started to enforce this.

Change-Id: I61360b0f52965ad8057e7de8f824ffca64fea904
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
2018-10-12 07:22:57 +00:00
Anton Kudryavtsev
02f7caaa7d QPixmap: use rvalue more
Change-Id: Ifb8c014abf6e02dc782fab2d653e4edfc4972125
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-10 12:20:32 +00:00
Allan Sandfeld Jensen
f864a62ccd Add missing null checks after detach
A few places we didn't check if detach() succeeded including
in reinterpretAsFormat(), where it can be undone.

Task-number: QTBUG-70785
Change-Id: Ibcc8e26e2961f6288eb7a045ae1cb28e59213a49
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-10-10 08:23:31 +00:00
Mårten Nordheim
4dc251879c Ssl: Fix contrived crash when calling resume
If you, directly after connecting, call "ignoreSslErrors()" followed by
"resume()" then you will most likely crash.

It is very contrived and there's no reason to do this.

Change-Id: I949a303238f5012296d0e84eb76173764eb9de2e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-10-10 07:45:09 +00:00
Lorn Potter
49f1f944bc wasm: rewrite QNetworkReplyWasmImpl to remove EM_ASM
and fix handling of incoming binary data

Change-Id: I31e97505ad4ff64cf8e380df5d0d6b70c3cd60b0
Reviewed-by: Ryan Chu <ryan.chu@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-09 20:44:24 +00:00
Allan Sandfeld Jensen
b7c5c2e65b Add NEON optimized ARGB32 unpremultiply routines
Mirroring similar routines recently added for SSE4.1

Change-Id: Ibb9d10cc34655ce1dc0e97fdff4e4f6a81d47d05
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-10-09 13:17:47 +00:00
Edward Welbourne
ba0ff45109 Update the DNS public suffix list from publicsuffix.org
It has had some changes and should be kept up to date.

Fixes: QTBUG-70386
Task-number: QTBUG-70852
Change-Id: I868a558811c34cf5a800c3087a0ca96e7fb49b1a
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-10-09 09:43:48 +00:00
Eskil Abrahamsen Blomfeldt
5c94130a67 doc: Document version of bundled Freetype in qt_attribution
Task-number: QTBUG-70901
Change-Id: Ibc330320cf3851e9aed13a66a3552bd8b2ad34da
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-10-09 06:26:52 +00:00
Lorn Potter
b2fd16b478 wasm: fix parse error
Task-number: QTBUG-70952
Change-Id: I8a39de1d16b5301d221be4e9e47cabd4827b71aa
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-08 23:46:41 +00:00
Marc Mutz
8e5a2f63c3 Fix UB (invalid pointer comparison) in QList, QVector, QVLA
QList, QVector and QVarLengthArray check the validity of iterators
passed to member functions using isValidIterator(), which checks that
the underlying pointers are in the range [begin, end]. This check is
well-defined when the outcome is positive, ie. when the iterator is
valid. But if the iterator is not valid, and does not happen to point
into [end, begin + capacity], the comparison, which uses normal
operator<, invokes UB.

Fix by using std::less<T*>, which defines a total ordering.

Change-Id: I1e5757789b4b9779f5e3e298e7f2b2dd0b27576c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-08 16:18:53 +00:00
Edward Welbourne
55d640483c Update 3rdparty valgrind headers to Valgrind 3.13.0
The version we're using is at least seven years old.
Let's try staying up to date ...

Change-Id: I450a2fc37c22740fe554a81b471bf0fad340498e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-08 14:18:54 +00:00
Edward Welbourne
bc099f33dd Support QCborMap::operator[] taking a string literal
Use a template on the size of the char[], as suggested by Ville
Voutilainen.  This resolves ambiguity about whether such look-ups
should be done via QString or QCborValue (not that it would have made
any difference).

When we come to add mutating indexing of QCborValue, chained
dereferences like map[i][j][k] need to stay in operator[] const
throughout, to avoid detaching intermediates to create references into
them due to using the mutating operator[] on the earlier dereference's
return.  So const-qualify the QCborValue operator[] const variants at
the same time, to match those of QCborValue itself.

Change-Id: Ib1652ae9440fe3767a653afa2856b74040210e07
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-08 14:11:23 +00:00
Edward Welbourne
ff7f09d187 Change QCborArray to pad with invalid on inserting past end
Likewise have mutating operator[] insert an invalid entry at its
target index, if beyond the end of the array. This makes it possible
to fill an array from high index to low, for example.

Change-Id: If71699c20e2623142214ce2c11c4d6e4a120c989
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-08 14:11:08 +00:00
Christian Strømme
7f079bf9d0 Android: Update the targetSdkVersion in the manifest to 28
Change-Id: I9fe8117ed75f82638b6a03166434bf83e23f166f
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-10-08 11:14:03 +00:00
Christian Strømme
52813712c4 Default to no style extraction on Android P when the target SDK is < 28
Applications with target SDK version lower then 28 running on a device
with version greater or equal to 28 will cause compatibility warnings,
so default to none when the extract_android_style value is set to
default.

Note that the new value "default" was introduced to allow this kind
of changes in the future, i.e., selecting the best solution based on
some simple heuristics. Adding a new value also keep compatibility and
allows the user to explicitly set a value when needed.

Task-number: QTBUG-69810
Change-Id: I68301716767870ce6de40e45742d9c5fc263ee25
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-10-08 11:14:01 +00:00
Liang Qi
1170e707b7 Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into refs/staging/5.12 2018-10-08 11:10:14 +00:00
Alexandru Croitor
836a2fb887 [macOS] Fix position of sheets when using unifiedTitleAndToolBarOnMac
Modal sheets are supposed to appear below the toolbar if a toolbar
exists, or below the title bar if a toolbar doesn't exist.
In the unified title and toolbar mode, sheets should to appear
directly below the toolbar, if the toolbar is positioned at the
top of the window.

Code-wise we achieve that by calling setUnifiedTitleAndToolBarOnMac on
a QMainWindow, which results in adjusting the top content border of
the NSWindow via [NSWindow setContentBorderThickness:forEdge], which
Cocoa uses to position a modal sheet (the sheet top edge is aligned
with the top edge of the content view + the Y border thickness
value).

The issue is that because NSWindow.titlebarAppearsTransparent is set
to YES, for sheet presentation purposes, Cocoa considers the content
view to begin at the position of the top left corner of the
frame (where the title bar is), and thus sheets appear somewhere
in the middle of the unified toolbar.

To fix that we need to account for the title bar height in the
border thickness value.
Compute the title bar height from the window frame height - window
content view height, and add it to the top border thickness value.

Amends 8ac9addd94

Change-Id: Icf85c513035cc3710b438e60eb14dc04c5bbaced
Fixes: QTBUG-65451
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-08 10:38:37 +00:00
Qt Forward Merge Bot
b4da5c6b93 Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
	src/corelib/tools/qtimezoneprivate.cpp

Change-Id: Icbb5999d378711ce3786a4fe0aba176a45ac702c
2018-10-08 10:00:49 +02:00
Oliver Wolff
29208fa07c winrt: Explicitly set main thread in QCoreApplication's constructor
For winrt we cannot rely on the fact, that QThread::current will be called
from the correct thread for the first time. The application's main entry
point creates a suspended thread and starts it right afterwards. At that
moment, other functionality (QLoggingRegistry for example) might have
called QThread::current, which set the wrong thread as the main thread. In
order to avoid this situation, the main thread is explicitly set in
QCoreApplication's constructor.

Task-number: QTBUG-66418
Change-Id: I8b6347357a80eb395ae758bd3d420adef0826751
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-10-08 05:34:28 +00:00
Alexander Volkov
05b8ba5155 QLineEdit: take the size of actions' icons from a style
The height of a line edit depends on the height of its font,
which in turn depends on DPI. So use the DPI-scaled icon size
from a style instead of hard-coded values.

Task-number: QTBUG-65627
Change-Id: Ic1f5af61b0d6346cfbc828817c4a3a39296a41ba
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-06 19:47:44 +00:00
Sergio Martins
7146c9075c Fix DejaVu fonts URL
http://dejavu-fonts.org is something else nowadays

Change-Id: Idb03b864fb145b016ce4ae1a2f0df02ff80280a8
Reviewed-by: Rolland Dudemaine <rolland.dudemaine@esol.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2018-10-06 11:10:49 +00:00
Simon Hausmann
cd3374c4ef Cleanup in eglfs device integration .pro files
There is no need to apply QMAKE_LFLAGS_NOUNDEF in a .pro file that loads
qt_module.prf or qt_plugin.prf, both of which do the same.

Change-Id: I1ec86cddb4d0991becc136f8bd50d6652c885a6b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-10-05 21:13:28 +00:00
Jarek Kobus
9f710b15f0 uic: Write the float and double properties in 'f' format
Make the code consistent with the DomProperty::write() method.

Task-number: QTBUG-70613
Change-Id: I622b4a019a4473823584de97304f8324f2cf0c6b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-05 20:06:03 +00:00
Allan Sandfeld Jensen
9d27aec869 Optimize gamma-table lookup on SSE2 and NEON
Speeds up gamma-corrected text rendering.

Change-Id: I38c12ff52f4601853c3f3524de2761a932111160
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2018-10-05 19:56:15 +00:00
Friedemann Kleint
bde6a04949 QtWidgets: Fix Qt application coming to the foreground when launching app by popup menu
Check on the application state before requesting activation.

Fixes: QTBUG-70810
Change-Id: I550137dc00209b17f4b3c033287ceef1b871ff50
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-10-05 15:10:52 +00:00
Sergio Martins
92f42caff1 Fix ICE on QNX 6.6
qabstractitemmodeltester.cpp:223:31: internal compiler error: in expand_expr_real_1, at expr.c:9170

Change-Id: I098c1bdf706512c91c649205f4675de0ca374227
Reviewed-by: David Faure <david.faure@kdab.com>
2018-10-05 11:30:42 +00:00
Christian Ehrlicher
2bd6f5e8d1 QTreeView: adjust documentation of key bindings
The documentation for key bindings was a little bit unclear for key
asterisk. Also sync the names of the left and right key was not
consistent (Left/RightArrow - Left/Right)

Change-Id: Icee0821880fcc3ebc2ade939cf80127ebf0976ad
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-10-04 18:50:41 +00:00
Leena Miettinen
04aeffbe8f Doc: Describe behavior of QSslConfiguration::caCertificates() on iOS
In iOS, the system certificates cannot be accessed, so this function
will return an empty list for the default configuration.

Task-number: QTBUG-60407
Change-Id: I0d691a0dd5e6367594e71c7ebccfbdc866d4a3f0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-10-04 13:26:50 +00:00
Morten Johan Sørvig
d7e274a446 StyleSheetStyle: Load @Nx images
Perform a @Nx image file lookup when loading pixmaps.

Make drawBackgroundImage() handle high-dpi pixmaps,
here the layout calculations needs to be in device-
independent pixels

Fixes: QTBUG-36825
Change-Id: I61e6f53c59f61f3bd88c34a036349e51e8c8ad92
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2018-10-04 07:01:05 +00:00
Timur Pocheptsov
0cae5a4c4b Cocoa integration: fix incorrect keyboard mapping
When switching between different input sources, we have to update layouts.

Task-number: QTBUG-50865
Change-Id: I0c23c19b79a2102dcc533822b0f861c387582c6c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-04 07:00:39 +00:00
Ulf Hermann
28c831fa13 QCocoaKeyMapper: Properly initialize all members and reset on update
Previously some of the members would have random initial values. Also,
on updateKeyboard() if we don't find usable uchrData, we should just
reset keyboard_layout_format and keyboard_mode, rather than keep the
previous values.

Task-number: QTBUG-50865
Change-Id: I1297fa55bb1593dd549d0bc122713d5d98f7b1fc
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-04 07:00:30 +00:00
Ulf Hermann
21355b3630 QGraphicsScene: Make focusing on touchBegin optional
Usually we focus in when we receive a click or equivalent.
QGraphicsScene by default also transfers the focus when you start a
touch on a trackpad or similar. Most of the time this also generates a
synthetic mouse click, so people don't necessary notice. However, at
least on macOS you can configure this behavior. With focusOnTouch
switched off, QGraphicsScene behaves as one would expect on macOS.

Fixes: QTBUG-59442
Change-Id: Ib87112640eef6b77892ad2490d80eedd055e6dce
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-10-04 07:00:21 +00:00
Christian Ehrlicher
d37d8e962a QAccessibleTable(Header)Cell: fix isValid()
QAccessibleTable(Header)Cell::isValid() did not check if the view is
still valid as it is done in QAccessibleTable::isValid() which can lead
to a crash during destruction when e.g. operator<<(QAccessibleInterface)
is called.

Change-Id: I930bf4c22aa0aa6868f58a8e5d0dd1557f6b17af
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-10-03 18:00:29 +00:00
Tor Arne Vestbø
01ade488dd macOS: Don't call [NSOpenGLContext update] for every frame
Calling update has a cost, and should only be done when the drawable
object changes size or location. Instead of calling update each time
makeCurrent is called, we listen for the appropriate notifications,
limiting the number of update calls significantly.

We still call update on the thread owning the QOpenGLContext, which
is not ideal, as [NSOpenGLContext update] should only be called on
the main thread, but in practice this works. Getting out of this
situation is tricky, and setView has in theory the same problems.
Until those problems have been solved we keep the behavior as is.

Task-number: QTBUG-63572
Change-Id: Ibac9f8be7843f2aa006af6f7ee670bf027122440
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-10-03 13:04:41 +00:00
Tor Arne Vestbø
9c839f95a2 macOS: Ensure QFontDialog picks up changes in NSFontPanel
When the font changes in NSFontPanel, it notifies NSFontManager via
-[NSFontManager modifyFontViaPanel:], which in turn sends the font
manager's action (by default changeFont:) to its target (nil, unless set).

Sending the action in -[NSApplication(NSResponder) sendAction:to:from:]
will sanitize the 'to' argument via _NSTargetForSendAction.

If the argument is non-nill (if we've set the NSFontManager target
explicitly), and we're running in an app-modal session (which we are),
the target is checked for worksWhenModal -- a property which is defined
on NSWindow, and only supposed to be set for subclasses of NSPanel.

Since our QNSFontPanelDelegate class doesn't implement this method, the
_NSTargetForSendAction function will return nil, and the action is never
sent.

If we don't set the NSFontManager target (leaving it as nil), the function
will skip the worksWhenModal check, and fall back to resolving the target
via the responder chain, which includes taking the NSPanel's delegate
into account:

  #0 -[NSWindow delegate] ()
  #1 -[NSWindow(NSEventRouting) supplementalTargetForAction:sender:] ()
  #2 _objectFromResponderChainWhichRespondsToAction ()
  #3 _NSTargetForSendAction ()
  #4 -[NSApplication(NSResponder) sendAction:to:from:] ()
  #5 -[NSFontManager sendAction] ()
  ...

Since we want to end up in the QNSFontPanelDelegate, we can rely on the
default logic to resolve the target based on the responder chain. But in
case _NSTargetForSendAction will at some point also check the resolved
target for worksWhenModal, we also implement the worksWhenModal method,
to be on the safe side.

Fixes: QTBUG-69878
Change-Id: Ie739d016fe0efd17b3d8a99cc1fb1ace81807aff
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-10-03 13:03:54 +00:00
Allan Sandfeld Jensen
114c4593b6 Restore styling of QDockWidget title font
Do not override a custom font with the style default.

Task-number: QTBUG-70276
Change-Id: I58bf43f791aee5409e29459d579725365703e4f3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-03 13:01:12 +00:00
David Faure
ddeec1b07e QSFPM: don't let setFilterRegExp(QString) overwrite CaseSensitivity
This is a regression from commit 346c15102b, which creates a new QRegExp
in setFilterRegExp, losing previously set case sensitivity property
(i.e. when the code does proxy->setFilterCaseSensitivity(Qt::CaseInsensitive)
before setFilterRegExp).
Interestingly that commit ensured that setFilterFixedString would still
preserve CaseSensitivity, but not setFilterRegExp(QString).

Change-Id: I3d37d001ce6e86dd90e7e07431440a42607172f9
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
2018-10-03 11:45:50 +00:00
Christian Ehrlicher
5f9a0d64b3 QtSql: fix code snippets
The code snippets retrieving the native database driver handles was
using qstrcmp() wrong since that is returning 0 when the strings are
equal. In some snippets there was even a plain char * comparison which
would not work at all.
Fix all the places by correctly using qstrcmp() and replace the checks
for the valid pointer by not checking for 0.

Fixes: QTBUG-70598
Change-Id: I5c53dcfc51c958203fc60fa6a23dd6b27faa1d96
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2018-10-03 10:48:50 +00:00
Friedemann Kleint
91d43a48f7 Prevent instantiation of QGestureManager in ~QWidget, ~QGraphicsItem()
Debugging PYSIDE-815 revealed that QGestureManager is instantiated in
the application destruction sequence. To prevent that, add a "force"
parameter defaulting to true to QGestureManager::instance() and pass
false in the destructors and QGestureManager::gesturePending().

Change-Id: I1b76173c926c2a156252b88832b032508d8e8a73
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-03 09:13:56 +00:00
Andre de la Rocha
4840668994 Windows QPA: Fix multiple mouse button presses detection
The detection of multiple mouse button presses was broken in the new
WM_POINTER-based implementation. The bug was due to the incorrect
assumption that the press/release of a second mouse button (while
another one is held) would also send WM_POINTERDOWN/WM_POINTERUP, while
in fact it sends a WM_POINTERUPDATE with the actual event type given
by pointerInfo->ButtonChangeType.

Task-number: QTBUG-70787
Change-Id: Ib6776ab7f3d0b8eb5e832a0c863a15bde456e0dd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-02 23:42:29 +00:00
Friedemann Kleint
18ec0a8b09 Windows QPA: Fix WM_NCHITTEST not being sent to QAbstractNativeEventFilter
The message is not sent to the QAbstractEventDispatcher, so it needs to be
excluded from the list of input messages not sent to
QAbstractNativeEventFilter.
Amends a0a22037cd.

Fixes: QTBUG-70873
Change-Id: Id84d73b46e8954867c06a4ddf5dc9e536ecd897e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-10-02 17:05:36 +00:00
Andy Shaw
d8817ddde6 Use update() instead of repaint() when displaying a new message
There is no advantage to using repaint() here, so using update will
give a performance improvement.

Change-Id: Icc6a28dfc12dffb8ea3df0300fd14c66c775bf16
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-10-02 15:33:46 +00:00
Edward Welbourne
ced34cb3d5 QDateTimeParser: avoid using an invalid hour by default
When a time-zone does a spring-forward, skipping an hour (either to
start DST or to move its standard time), there's an hour that doesn't
exist on the day in question.  That hour can be the first hour of the
day, in which case using 0:0 as the default time is broken.  So catch
this case and use the first time that day that makes sense.

Fixes: QTBUG-70823
Change-Id: I23dae9320a3cdd2c988841a7db1b111edb945730
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-02 13:49:45 +00:00
Edward Welbourne
5a295a1009 Scale seconds by a thousand to get milliseconds
QTimeZonePrivate::dataForLocalTime()'s handling of times in a
spring-forward gap added offsets in seconds to values in milliseconds.
Supply the missing factor of a thousand.

Change-Id: Ic32d87675f902e1c7fd85025fb70c8272a4f2db2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-10-02 13:49:31 +00:00
Kai Koehne
c958fb8b48 zlib: Fix spelling of license
Follow spelling convention at https://spdx.org/licenses/Zlib.html

Change-Id: Ib25b98cf7f3a052ec25ba6924748a962733e2ed8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-10-02 10:19:14 +00:00
BogDan Vatra
18be2337ea Android: bump android gradle plugin version
Needed to fix "No toolchains found in the NDK toolchains folder for ABI
with prefix: mips64el-linux-android"

Change-Id: I62d9bae0bf424bb9ba32adce98426245922a841b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-10-02 06:59:13 +00:00
Samuel Gaist
933df86bbc QSFPM: setFilterRegExp and setFilterRegularExpression overloads to slots
The setters of both filterRegExp and filterRegularExpression are
currently normal functions. This patch moves them to slots to make
them usable using the old syntax. This can be done since there are
already overloads for both of them so people using the new connect
syntax would have needed to use qOverload already therefore there is
no SIC.

[ChangeLog][QtCore][QSortFilterProxyModel] Setters of both the
filterRegExp and filterRegularExpression properties are now slots and
can be used with the old as well as the new syntax.

Change-Id: Id5cd9a50fa4a62e2bbd6bd665b44bd25a0402852
Fixes: QTBUG-18113
Reviewed-by: David Faure <david.faure@kdab.com>
2018-10-02 06:19:10 +00:00
Samuel Gaist
b6022eccc4 Doc: fix QRegularExpression::wildcardToRegularExpression snippet
The sample output from wildcardToRegularExpression was from an earlier
version of the implementation. This patch fixes this.

Change-Id: I48108add01aafed69490ef2527c1ea6a209b220b
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2018-10-02 06:19:05 +00:00
Lorn Potter
989e86074a wasm: use config for natural scroll on safari
Change-Id: Idc2ee096144194e3f0d9ca165a578ff9745ef13d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-10-01 23:20:22 +00:00
Jarek Kobus
d2ca870660 Make overloaded function appear in assistant index
When there are overloaded function for one class,
at least one of them mustn't possess \overload command,
otherwise it won't appear at all in doc index.

Task-number: QTBUG-59506
Change-Id: I650a3969cb45c1a5efdfc3a654e01d113c398f16
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-10-01 13:20:14 +00:00
Andrew O'Doherty
b2b32d3147 fix HTML subset documentation is not very readable on smaller screens
When viewing "Supported HTML Subset" documentation in Qt Creator (in
QTextBrowser), the first table that lists all tags is quite unreadable
(see images). It happens because there is a code snippet in Comment
column for tag "meta" that uses pre-formatted text. Because it should
not be wrapped automatically, it ends up pushing first 2 columns into
their minimum size, which mostly makes them take a single letter per
row.

Task-number: QTBUG-64126
Change-Id: I08bf6f61806d52e7a2f47bdbed1b5950825ce739
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-09-30 21:05:03 +00:00
Qt Forward Merge Bot
07e9261105 Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: Iaa438d14357be1bf75bb645cb8d3245947c055b8
2018-09-30 01:00:19 +02:00
Friedemann Kleint
69e68218e5 Windows: Fix QDir::drives() to no longer list ejected media
Add a check using GetVolumeInformation() (modeled after QStorageInfo::ready)
within a SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX scope.
Remove old #ifdef used for Windows CE.

[ChangeLog][QtCore][QDir] On Windows, QDir::drives() no longer
returns drives whose media were ejected.

Fixes: QTBUG-69029
Change-Id: I2d4a32e9281ccf3c0f2ebfa427122609aa4f327f
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2018-09-29 19:45:40 +00:00
Friedemann Kleint
364d3da3d5 QDockWidget: Fix icons being too large when using a style proxying Windows style
Extend the check for Windows style to QProxyStyle. Amends
43b9c9b993.

Task-number: QTBUG-38776
Change-Id: I5331d0c29bea59c59309feeab153437a72e0e30f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-09-29 19:45:38 +00:00
Friedemann Kleint
97f4366202 QLineEdit: Disable input methods for password unless IME supports hidden text
Move the checking logic from QGuiApplicationPrivate::_q_updateFocusObject()
to QInputMethodPrivate::objectAcceptsInputMethod(), which is also called
from QWidget::updateMicroFocus() via QInputMethod::update().

Fixes: QTBUG-56767
Change-Id: Ia4cce5e7e766008df891537048d5daf739c010ff
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2018-09-29 19:45:35 +00:00
Alexander Volkov
a34054c75e xcb: Extract QXcbWindow::isTrayIconWindow()
Introduce this static function to detect tray icon windows.
The old non-static method was unused, so drop it.

Change-Id: Ia97b8a857bd1807ecd56340efbc9b145844d593e
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-09-29 09:33:11 +00:00
Alexander Volkov
60cecc86f8 xcb: Initialize OpenGL integration only when required
In some cases OpenGL integration may be unnecessary, e.g.
an application may set Qt::AA_ForceRasterWidgets attribute
and don't use OpenGL in any other way. In addition OpenGL
initialization can take noticeable time on some configurations.
So do it on demand only.

Change-Id: If88953f8d5c826bc96fd49eb397b5e1ad693546d
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-09-29 09:33:04 +00:00
Shawn Rutledge
e4a5483eae Doc: fix minor issues in QMessageBox docs
Change-Id: I58a41b3d66bc1fd8af0136f2ef616f717f4a1173
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2018-09-29 09:32:49 +00:00
Ulf Hermann
076eef86db iOS: add support for custom buttons in native MessageDialog helper
[ChangeLog][QtWidgets][QMessageBox] On Android and iOS it's now possible
to show a QMessageBox with custom buttons as a native dialog.

Task-number: QTBUG-35545
Change-Id: Id3be69e70468f767a43ea5f2ba64f9bac1898423
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-09-29 09:32:43 +00:00
Thiago Macieira
caa598c843 Fix QUrl::matches for when removing authority parts (other than host)
QUrl::RemoveAuthority is RemoveUserInfo | RemovePort | 0x10, so the
condition

    if (options & QUrl::RemoveAuthority)

would match if any of the other bits for the username, password or port
were set, which meant we would skip the host comparison. Ditto for
username and RemovePassword.

[ChangeLog][QtCore][QUrl] Fixed a bug that caused QUrl::matches to
incorrectly compare two URLs with different hostnames or different
usernames as equal, if certain QUrl::RemoveXxx options were passed.

Change-Id: I015970a03b874898bba7fffd155856ab9d6cb1be
Fixes: QTBUG-70774
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2018-09-29 00:33:39 +00:00
Alexander Akulich
94884246d4 QCommandLineParser: Ensure that an option text ends with a newline
Before this change we inserted newline only if an option has a
description and ended up with an arbitrary long line with all options.

[ChangeLog][QtCore][QCommandLineParser] Fixed a bug that caused the help
output to show two options or more in the same line if the options didn't
have a description.

Task-number: QTBUG-70174
Change-Id: Id54b9ae13ee596869e4dc14e09301aea19eed2f8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-28 22:01:05 +00:00
Mårten Nordheim
ef4ba0285f SSL: Don't write to closed socket or write to deallocated buffer
Change-Id: I061848ae570b382d640f8e46a1c54aeaeddbd77d
Fixes: QTBUG-61307
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-09-28 21:08:16 +00:00
Paul Wicking
9a8175a131 Doc: Remove expired link and add see also entry for style sheets
Remove link to qt.nokia.com and add see also link to Qt Style Sheets
that contain the necessary information.

Change-Id: I05f6f760f3f9735f99385bdb39507b0878ec220c
Fixes: QTBUG-70805
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-09-28 19:45:58 +00:00
Eirik Aavitsland
e63dba14fb Update bundled libjpeg-turbo to version 2.0.0
New, manually created configuration files (jconfig.h / jconfigint.h)
for building in Qt are now placed outside the src directory.

[ChangeLog][Third-Party Code] libjpeg-turbo was updated to version 2.0.0

Done-with: André Klitzing <aklitzing@gmail.com>
Change-Id: I77e34419ebe2f70038b9b80cdf13876055c2a35f
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-09-28 14:11:44 +00:00
Friedemann Kleint
ecfa33e751 Windows QPA: Work around intermittent clipboard copy failures
Repeatedly attempt to open the clipboard in case it is opened
by other applications.

Task-number: QTBUG-27097
Change-Id: Ic1cfec0bb17e34f8c7f744add21a4431dae4f5b7
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-09-28 14:04:20 +00:00
Laszlo Agocs
76c4a70499 QOpenGLShader: report geom. and tess. on GLES 3.2+
Also fix up the docs.

To make everything more complicated, OpenGL ES 3.2 does not support
default tessellation levels. Therefore the related functions remain
OpenGL 4.0+ only.

[ChangeLog][QtGui] QOpenGLShader has been fixed to expose geometry and
tessellation evaluation/control shaders with OpenGL ES 3.2.

Task-number: QTBUG-66074
Change-Id: I2e4277912800d8302824e3fb74f61ec16f4b341d
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2018-09-28 13:59:42 +00:00
Friedemann Kleint
05e2690009 Windows QPA: Don't test for Desktop GL if Qt::AA_UseDesktopOpenGL is set
Pass the requested render to detectSupportedRenderers(), replacing
the bool glesOnly parameters. This allows for simplifying the code.

Fixes: QTBUG-70733
Change-Id: Iab65f62d24bf750019180e3b00e2d23c105e5997
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-09-28 13:32:51 +00:00
Jussi Witick
47bbc6d6f6 Fix disabled IME when QPlainTextEdit read only property is toggled
Mirror the behavior of working QTextEdit in QPlainTextEdit. The
WA_InputMethodEnabled flag was overridden by the following call
to setTextInteractionFlags().

Task-number: QTBUG-55699
Change-Id: I46402f5d94204acd304d56f488bb0fb342d1a846
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-09-28 13:31:59 +00:00
hjk
f286027e6b Fix QXmlStreamWriter xmlns attribute placement
Done-by: Eugenio Rustico
Change-Id: Ibd6aa6cc8be9090a4fad4f96628086d8a498b8e0
Fixes: QTBUG-63434
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-28 13:19:48 +00:00
Friedemann Kleint
1d09b0d1b2 QGraphicsScene::update(): Keep the list of updatedRects() unique
Otherwise, the rects will pile up when the item is not part of a view.

Task-number: QTBUG-54275
Change-Id: I29c989e25ce0ca1ac0b87d0388a476ef1acd9cfd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-09-28 13:17:22 +00:00
Maurice Kalinowski
e2d79b4963 Do not fall back after resizing a dock
This is a follow up to 60be2fb6a1.

Above change only covers resizes via QMainWindowLayout::hover. Doing a
resize via the separator was not covered.

Task-number: QTBUG-70571
Change-Id: Ic1d1cc6d672b97e8c130864f8708268fd6003204
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
2018-09-28 13:16:25 +00:00
Friedemann Kleint
34af9fa0dc Windows QPA: Fix programmable keyboard shortcuts being triggered twice
Suppress keyboard events following a WM_APPCOMMAND except for
APPCOMMAND_BROWSER_HOME, which does not trigger two events.

Task-number: QTBUG-62838
Change-Id: If04206c9ef9409224b4cbc96190792b9be4f656d
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-09-28 05:24:26 +00:00
Lorn Potter
9f5b63a337 wasm: enable filesystemmodel for nothread
Task-number: QTBUG-70005
Change-Id: I10b09c1681716b4610147b57db14bce7b0f91b47
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-28 02:22:24 +00:00
Lorn Potter
cd60b78765 wasm: enable Network for nothread
Task-number: QTBUG-70208
Change-Id: Ib73ca0d3c0736336bf517ffb968cbdbab4610319
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-28 02:22:21 +00:00
Lorn Potter
9c72ae61aa wasm: make maximized and fullscreen windows not draggable
Also make fullscreen windows not have a titlebar

Task-number: QTBUG-69318
Change-Id: I017fc40fecb9f46d6540ffb72a71c9b62097a368
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-28 02:22:19 +00:00
Liang Qi
353a58ceb9 Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into refs/staging/5.12 2018-09-27 18:34:12 +00:00
Luka Modric
3ed8dc3788 Android: fix log output pattern
Remove hardcoded android log pattern as this is already part of the message to
match behavior on other platforms.

Task-number: QTBUG-69450
Change-Id: I529b550114a2164beafe305f8392891c4ead88f0
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-09-27 17:15:17 +00:00
Timur Pocheptsov
586650f81d SecureTransport - require the latest SDK 10.13.4
Testing barely 10.13 seems to be insuficcient: we have developers working
on macOS 10.12 with SDK 10.13, but apparently they cannot update to the
latest SDK 10.13. We can try to be more specific and use __MAC_10_13_4.

Task-number: QTBUG-70757
Change-Id: I083d51f1a945f63f0413792387475341ecb96118
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Andy Maloney <asmaloney@gmail.com>
2018-09-27 14:45:34 +00:00
Paul Wicking
d24a705039 Doc: Add link target to fix QDoc warning in Qt Declarative
Change-Id: Iddaef1ce3f739c3dfb98eb87430fe85e3b2bd01c
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-09-27 14:32:50 +00:00
Paul Olav Tvete
d429146431 Keep tiled subwindow order on resize
QMdiArea::tileSubWindows() will move the active window to the first
position, in order to be consistent with other MDI applications on
Windows (according to the original commit message). However, the same
function is also used for re-tiling on resize, so we must make sure
to not reorder in that case.

Fixes: QTBUG-51761
Change-Id: Ibf93a0bf7e663f983b9160364f812c84b5539171
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-09-27 14:31:34 +00:00
Liang Qi
d0fcaa7eaa Merge remote-tracking branch 'origin/5.11' into 5.12
Conflicts:
	src/corelib/global/qconfig-bootstrapped.h
	src/widgets/util/qcompleter.cpp

Change-Id: I4f44f0f074982530f2f2e750ce696230b2754cf3
2018-09-27 11:08:55 +02:00
Liang Qi
555a6b5d5d Modernize the "filesystemwatcher" feature
Change-Id: If030b56ad97e047d89d442629262b4839df306d4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-09-27 08:18:55 +00:00
Eskil Abrahamsen Blomfeldt
720e243d88 Fix crash when detaching dangling QTextCursor
When a QTextCursor survives its QTextDocument, the internal
QTextDocumentPrivate pointer is set to null. There are checks for
this in all the QTextCursor functions to skip out early if such
a QTextCursor is used.

However, when executing the "if (d->priv)" condition in setters,
this will access the non-const operator->() of QSharedDataPointer
and detach the QTextCursorPrivate, and in the copy constructor of
this class, there was an unprotected call into priv->addCursor().

In theory, we could cast all the checks for d->priv to avoid
detaching, but in practice this doesn't matter, since the setters
will typically detach anyway later on.

[ChangeLog][QtGui][Text] Fixed a crash that can happen when calling
a setter on a QTextCursor after its QTextDocument has been deleted.

Task-number: QTBUG-70293
Change-Id: I8f6dc5bb344d1d824f673c0c220b68b7fee237a8
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-09-27 06:51:37 +00:00
Eskil Abrahamsen Blomfeldt
9601ad4e27 Fix font weights on macOS 10.14
On later versions of macOS, the font weight trait of fonts is a 64 bit
double, not a 32 bit float, and on macOS 10.14, CFNumberGetValue()
started returning false for values when the type conversion is lossy,
like it is documented to. Therefore, we would end up without weight
information in 10.14.

The fix is to ask for a double instead, which works regardless of
whether the CFNumber represents a 32-bit or 64-bit value.

[ChangeLog][macOS][Text] Fixed font weights on macOS 10.14

Task-number: QTBUG-69955
Change-Id: Ia0577236ddc6b96f9231e6de7b1c49f7f8a837a6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Jason Haslam <jason@scitools.com>
2018-09-27 06:50:46 +00:00
Paul Wicking
f6ce2d42b3 Doc: Improve HarfBuzz configure options documentation
Task-number: QTBUG-63632
Change-Id: Iedaf34d016d13eeae3dc2e9030a3cea28e602ccc
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-09-27 03:32:02 +00:00
Alexandru Croitor
5e64957ee4 Fix QCompleter popups preventing the application from exiting
Due to an implementation detail regarding setParent() and
setWindowFlags(), if a QCompleter popup ends up being the last open
window after closing the main window, the application would be
prevented from exiting even after selecting an item in the popup.

This is due to adjustQuitOnCloseAttribute() not being called when
passing a Qt::Popup flag to setParent(parent, windowFlags).

Use setWindowFlags() directly, which adjusts the quit on close
attribute, and allows an application to exit properly.

Change-Id: Ic4cff9504df268556d851e40d5ae08b7ed4dc3bf
Fixes: QTBUG-69924
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-09-26 08:35:30 +00:00
Oliver Wolff
7b00eab593 qwinrtcursor: Use QPointF as much as possible in pos/setPos
Using QPoint for calculations can lead to rounding errors which can
result in a situation where
"QCursor::setPos(somePos); QCOMPARE(pos, somePos)" fails.

Change-Id: Iaba499f67abcf5ec66adfe93bfbd79ef0102e6d0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-26 05:41:07 +00:00
Friedemann Kleint
fdcbf0b2a2 Windows UI automation: Add missing override
Fix warning by clang-cl:
qwindowsuiamainprovider.h(89,31):  warning: 'SetFocus' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
    HRESULT STDMETHODCALLTYPE SetFocus();

Task-number: QTBUG-63512
Change-Id: Iac3cbf8577423ed799796034953be39ed1663116
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2018-09-26 05:41:06 +00:00
Oliver Wolff
7421a0e882 winrt platform plugin: Fix clang warnings
Fixed warnings:
  - missing override specifier
  - 0 as nullptr constant
  - implicit change of signedness
  - non portable path to header file

Change-Id: I6977bc561176ac7804ac01325b84c15ba849bbf2
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-26 05:41:05 +00:00
Oliver Wolff
e5b4e7a9ed QWinRTInputContext::hideInputPanel: return early if panel is not visible
If the input panel is not visible TryHide will result in
"Failed to hide input panel. (The operation completed successfully.)".
That happens a lot in Qt's auto tests for example.

Change-Id: Ieae17e07c3646dce8f348e21f537a2455fe03461
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2018-09-26 05:41:03 +00:00
Aleix Pol
50b995d114 Fix typos in the documentation
Returnes -> returns

Change-Id: I52372488a16d7c13e85fca0e11eaab738db9355d
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
2018-09-25 23:39:06 +00:00
Allan Sandfeld Jensen
c33faac32b More fixups for GL_CONTEXT_LOST
Fixes the rest of the places we use the pattern of emptying the OpenGL
error stack to be able to handle GL_CONTEXT_LOST, and adds a note about
it in the documentation.

Change-Id: I7eb97dbca45f39295b832d44937023b538b19947
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-09-25 22:35:58 +00:00
Thiago Macieira
e3e28915c3 Fix erroneous use of errno with qErrnoWarning
On Windows, the error code to be used with qErrnoWarning is not errno,
but Windows's GetLastError(). Obviously, right?

So don't pass errno to it, just let it get the error message straight
from qt_error_string(), which will use GetLastError().

Change-Id: I44e7d800c68141bdaae0fffd155619c93e3f3dab
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-25 22:14:10 +00:00
Thiago Macieira
7e1a0c0739 Add tests for decoding too-short UTF-8 sequences
We were handling this properly, but not testing them. I guess we weren't
testing because the condition is a valid intermediate state, so
hasFailure() is correct it returning false.

Testing inspired by the bug reported in
https://github.com/intel/tinycbor/issues/137

Change-Id: Ib47c56818178458a88b4fffd1554ecfdd0af637e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-09-25 22:14:07 +00:00
Thomas Miller
4d40f09a45 Upgrade double-conversion to v3.1.1
Utils.h now includes defines for _M_ARM and _M_ARM64 to enable
compilation on Windows arm and arm64.

The locally added __ghs and __EMSCRIPTEN__ clauses are preserved.

[ChangeLog][Third-Party Code] double-conversion got updated to upstream
version 3.1.1.

Task-number: QTBUG-70008
Change-Id: Ie5411ee8d9cb32c39d7dca5a2262e6b3854732a5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-09-25 22:13:59 +00:00
Giuseppe D'Angelo
42c545faf7 Tracepoints: trace signal activation
Change-Id: I1ef8074178386166157d9b3416fd432014585857
Reviewed-by: Rafael Roquetto <rafael@roquetto.com>
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
2018-09-25 21:22:47 +00:00
Andy Shaw
80406d2c25 Correct documentation about the datastream versions
This amends f5fe9fc5a4

Change-Id: I1d21f5b5f4896a11376f37ed0e39f00f2214c67b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-09-25 19:57:07 +00:00
Anton Kudryavtsev
9941719a8d QWindowsCursor: fix typo and change enum CursorState into enum class
Change-Id: I55b539da99254d3f7318193669c409552e429a6a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-09-25 19:29:37 +00:00
Topi Reinio
1a9b8715ce Doc: Fix QEasingCurve code snippets
Commit ff2a71e3 accidentally removed a code snippet used in documenting
EasingCurve::EasingFunction. This commit restores it and fixes other
minor issues in QEasingCurve code snippets.

Change-Id: Ib19f602a4abbca3511d3d26c5f6da4910f7104a3
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2018-09-25 16:39:01 +00:00
Edward Welbourne
35020c2394 Fix some infelicities in the Q(Date|Time)+ docs
Some of the claims made were not strictly acurate.

Change-Id: Ia7c83ce44257acce32814c0bbb3b787bb6b8596b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2018-09-25 14:35:36 +00:00
Shawn Rutledge
4c631c0bf9 Android: add support for custom buttons in native MessageDialog helper
New API in QMessageDialogOptions and implementation on Android.

Task-number: QTBUG-35545
Change-Id: I59567251199f220862d01ba76979266379eecd86
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-09-25 14:15:40 +00:00
Eirik Aavitsland
7a6a9dbb7d QImageWriter: Fix default compressionratio
Before asking a image format handler to save an image, QImageWriter
sets the value of all supported options. For options like quality and
gamma, the default value is an illegal value (-1 and 0.0 resp.),
effectively telling the handler that the application has not requested
any particular value. But in the case of compressionratio, the default
was 0, a legal value. Fix by changing it to -1.

Change-Id: Iad6d4c2dbe269b25863e7d4967aa9ed2a7d1247f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-09-25 12:32:34 +00:00
Eirik Aavitsland
b233ce66d3 QPainter cosmetic stroker: Fix painting error for FlatCap lines
Initialize the lastDir properly, to avoid the stroking algorithm doing
direction-change handling for a single line. That could cause a cap to
be painted for a single FlatCap line.

Also fixes a bug in tst_qpainter, revealed by the above fix. The
result drawPolyline was erroneously compared to the result of drawing
the lines individually, for a case where the former correctly paints
the pixel of the join point in the corner, while the latter by
coincidence used to paint the same pixel as a cap because of the bug
above.

Task-number: QTBUG-70101
Change-Id: Ie20eda33214cfe9e7627f17ef4c7a5b3835c9c24
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-09-25 12:32:24 +00:00
Morten Johan Sørvig
d0528d558e macOS: Use light color for tooltip text in dark mode
Tool tip text is drawn by QLabel using ToolTipText
text role. Give it a system palette entry.

Change-Id: I2e1b4f0b130783efd8d03f53a42c3e64aec32425
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-09-25 12:15:28 +00:00
Morten Johan Sørvig
02f7444c85 No-thread: prevent double delete of QThreadPrivate
Change-Id: Ie34c06ad798be6bd91f5c356051daaa72800c20a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-25 12:15:19 +00:00
Timur Pocheptsov
f99e956d65 Add QT_REQUIRE_CONFIG(ssl) to pre-shared key authenticator
As it's done (albeit in old-style there) in other public QSsl-classes.

Task-number: QTBUG-70604
Change-Id: If3cd9da0e8f8378fd29a80215cd889e459aa7bce
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-25 05:51:19 +00:00
Shawn Rutledge
b4b706d454 Ensure that QTabletEvent is not pre-accepted before sending
In QWidget-world it's normal for input events to have the accepted
flag false by default, so that it's obvious after visiting a widget
subclass that does not override a particular handler function that it
did not handle that event type at all.  For tablet events in
particular, the contract (to which we've been paying more attention to
ensure that QTBUG-47007 remains properly fixed) is that if a
QTabletEvent is not accepted, a mouse event will follow.
Tablet-unaware applications need to get the same mouse events from a
Wacom stylus as they would receive from an actual mouse.

In this case the issue was missing hover events (mouse movements
in which no mouse button is pressed).  Without those, the enterEvent
and exitEvent virtuals are also not invoked properly.

Task-number: QTBUG-47007
Task-number: QTBUG-65199
Change-Id: I957005aad9d2bf85a3a41bbdebe3e046e34dee4d
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-09-25 03:57:35 +00:00
Christian Ehrlicher
02663718a9 QHeaderView: Don't unhide hidden sections on layoutChanged()
When storing the persistent indexes within _q_sectionsAboutToBeChanged()
there was a limit one how much persistent indexes should be stored due
to performance concerns. This resulted in unhiding hidden rows.
The rationale behind this was that storing persistent indexes is slow
and that hiding a large amount of rows/columns should be done with a
QSortFilterProxyModel.
Fix it by removing the limit since it does not really hurt performance.

Task-number: QTBUG-70633
Change-Id: I2311213c2b63c67e2210aa7f73f07d28dc0e47be
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-09-24 19:25:19 +00:00
Liang Qi
b26cd68bf6 Modernize the "datestring" feature
Change-Id: I2236a456fe3758d9054b22e36fe6316f3522d533
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-24 17:12:29 +00:00
Liang Qi
e226b0f94a Modernize the "textdate" feature
Change-Id: Ic0b6f13e17c301ed66d6a8297c242086c94ac87d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-09-24 17:12:24 +00:00
Timur Pocheptsov
2e94947c56 qnsview_key/qnsview_mouse make Ctrl+left click work again
A result of typo/incorrect keyboard modifiers extracted +
wrong button sent via QWindowSystemInterface::handleMouseEvent.

Task-number: QTBUG-70512
Change-Id: I809168e363496884312412051e8d435f5794b3be
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-09-24 17:01:08 +00:00
Dmitry Shachnev
6948bf20a7 QSslContext: Use 0 instead of TLS_MAX_VERSION
According to the SSL_CTX_set_max_proto_version manpage [1]:

> Setting the minimum or maximum version to 0, will enable protocol
> versions down to the lowest version, or up to the highest version
> supported by the library, respectively.

This should make it possible to use Qt Network with older versions of
libssl than it was compiled against. In particular, use with 1.1.0 when
compiled against 1.1.1.

Also, one of OpenSSL developers is suggesting to remove TLS_MAX_VERSION
from the public header in the future [2].

[1] https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_max_proto_version.html#DESCRIPTION
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908567#59

Change-Id: Ie76054b917daa8e54d5c0156e848dbaca7bb8a82
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-09-24 13:40:30 +00:00
Timur Pocheptsov
4b7ff8e98c Protect HSTS code for no-feature-settings build
Under the hood we use QSettings to store HSTS policies.
Qt configured with 'no feature settings' would fail to
build then. For such builds, we fall back to in-memory
only HSTS cache.

Change-Id: I6df551d8c6c96d982080a51ce6b1bdce71d04b9f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-24 11:49:05 +00:00
Thiago Macieira
4fc4f7b0ce Export qt_open64 from QtCore
Other libs use qcore_unix_p.h.

qopenglprogrambinarycache.cpp:function QOpenGLProgramBinaryCache::load(QByteArray const&, unsigned int): error: undefined reference to 'qt_open64(char const*, int, unsigned int)'

Change-Id: I44e7d800c68141bdaae0fffd155675d15eded2e4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Eric Lemanissier <eric.lemanissier@gmail.com>
2018-09-24 10:59:02 +00:00
Andy Shaw
8aa9bb6d3f Clarify docs regarding the states of a QFutureWatcher with no future set
Task-number: QTBUG-55554
Change-Id: I49b475a95d8ee65864cfa6d1024cb17cfe648b43
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-09-24 10:32:49 +00:00
Kai Koehne
12c357bebb Document IAccessible2 version
The update to 1.3.0 was done in
b2a7d865b2.

Change-Id: Ie4227d49a1ee0707abff754a5edbcb2b9663ccfe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-24 10:30:56 +00:00
Morten Kristensen
f30bf5fbd5 Fix shortcuts in dock widgets with custom title bar
QWidgetResizeHandler cannot be sure that it will see the MouseReleaseEvent and therefore buttonDown
could be set wrong (and is set wrong in QGraphicsViews). When the mouse is up, the widget should
not think it is moving or re-sizing the dock widget. A similar fix exists in the code a few lines
above.

Task-number: QTBUG-70596
Change-Id: I52ce487836bc71da8fd7d71f8a89e21b51406d00
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-09-24 09:57:55 +00:00
Gatis Paeglis
232fe3ab6a doc: add note about QAbstractEventDispatcher::wakeUp() for {Unix,Glib}
Task-number: QTBUG-70229
Change-Id: I3efc20baf0cfeb79834f3f2b7aa5a4cb049542f6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-16 11:22:48 +00:00
Thiago Macieira
cb5c24fa26 Fix integer overflow in very long sections in ELF objects
The source is an ElfXX_Off, which is an unsigned 32- or 64-bit. That
means any section bigger than 2 GB would cause an overflow when we
assigned in

    m_stringTableFileOffset = strtab.offset;

Change-Id: Ib47c56818178458a88b4fffd15546bd47a89894e
Fixes: QTBUG-70560
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-09-15 19:46:40 +00:00
Olivier Goffart
6ff862a682 Fix binary compatibility with old generated moc files
Commit 1c623bc6d1 introduced a new
QMetaObject revision, which change the size of the QMetaEnum data.
When looking up QMetaEnum in a QMetaObject, this size need to be
checked for every different QMEtaObject from the hierarchy, not just
the first one.

Change-Id: I6f0d3982329822e15e284aef9b141d4c9ab351b9
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-09-15 15:06:38 +00:00
Allan Sandfeld Jensen
1511bfef52 Disable RGB64 backend for ARGB32 when it will be very slow
Fixes a speed regression on ARGB32 painting on low end hardware
introduced when it was switched to using the RGB64 raster routines.
It turns out several of our embedded QPA targets use ARGB32 as native
format.

Task-number: QTBUG-69724
Change-Id: I6d7993c12da46a85b8354eb905930dae9602b5e6
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-09-14 16:57:02 +00:00
Romain Pokrzywka
5728a9d8a7 Windows QPA: Dispatch skipped touch/pen events if compression is off
If the hardware produces events faster than the app can consume between
two updates, Windows automatically coalesces them into a single message
with the latest touch/pen pointer state and coordinates, effectively
compressing those events. But the pointer API also supports querying
and retrieving the skipped individual touch and pen frames.

There are cases where keeping all the events generated by the hardware
is desired, especially for pen events where having the most sampled
points available is critical to precisely rendering curves.

Qt already defines application attributes to control event compression
for general high frequency events and for tablet events in particular.
Use them on Windows also to control whether to retrieve skipped frames.

[ChangeLog][Windows] The application attributes AA_CompressTabletEvents
and AA_CompressHighFrequencyEvents are now supported on Windows 8 and
above for touch/pen input, with the same defaults as on X11 (compress
touch events, don't compress tablet events)

Task-number: QTBUG-44964
Task-number: QTBUG-60437
Change-Id: I1b11a043e2d71ee502895971fafb3a46306a89d8
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-14 15:41:28 +00:00
Paul Wicking
74700493c3 Doc: Remove extra \a command causing QDoc macro expansion error
Change-Id: I453a68a579e4fd519616cd1a9f934501b01ef44c
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-09-14 03:56:09 +00:00
Qt Forward Merge Bot
42f84de26a Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: Ic4c1a8041dcfd143861c39e0014fbdaaa3fb25c6
2018-09-14 01:00:08 +02:00
Florian Bruhin
49efea26a5 sqlite: Fix QSqlError handling when opening/closing database
Both sqlite3_open_v2 and sqlite3_close are documented to return an error code:
https://www.sqlite.org/c3ref/open.html https://sqlite.org/c3ref/close.html

However, those were ignored (other than checking whether the operation
succeeded), causing QSqlError::nativeErrorCode() to always be "-1" when there
was an error while opening/closing the database.

Additionally, the error string needs to be read (via sqlite3_errmsg16) in
qMakeError *before* d->access is set to 0, or the databaseText() will always be
"out of memory" no matter what error actually happened.

Task-number: QTBUG-70506
Change-Id: I75cbf178c9711442e640afd26c4502214d20c598
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-13 18:18:47 +00:00
Andy Shaw
c9f316c8b9 ODBC: Correctly check if the field is within the fieldCache range
This was found while running the ODBC tests. tst_QSqlQuery::isNull()
accounts for this already.

Change-Id: Idf99a85396d7aa4e69b89467f873b105ef946f7f
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-13 17:07:57 +00:00
Tor Arne Vestbø
704a3989d1 Fix spelling mistake in qimage.h
Change-Id: I2138318894587cc0b5f03af14a57b2a39509f0da
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-09-13 15:53:18 +00:00
Tor Arne Vestbø
2c649856d5 macOS: Clarify what static mutex in QCocoaGLContext is used for
Change-Id: I4af0b78dbecad40b2a73cdbdb09a8eb60efdb013
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-09-13 15:53:17 +00:00
Andy Shaw
45c1473847 Detect when we are at the sentence boundary
On Samsung devices this would cause it to always to captalize each word
even if it was not a new sentence. Therefore we use QTextBoundaryFinder
to determine if it is a new sentence or not.

Task-number: QTBUG-69398
Task-number: QTBUG-66531
Change-Id: I24bf36f09a2570acfefd4343551cb1720ddc6279
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-09-13 15:36:34 +00:00
Allan Sandfeld Jensen
bff307ab93 Fix XCB on endian mismatched client and server with SHM off
If SHM is disabled, that code path already does its own bswaping.

Change-Id: I6c17f6c5c5502c8f89098d38d931b6b8f50b2640
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-09-12 11:56:38 +00:00
Christian Ehrlicher
0d1481b4d2 SQL PostgreSQL/SQlite: Properly decode default varchar parameter
The default values for varchar columns were not decoded properly.

Task-number: QTBUG-46968
Change-Id: Ie13d48c316cd694240f7e287010b97afc8c6c341
Reviewed-by: Robert Szefner <robertsz27@interia.pl>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-09-12 09:11:04 +00:00
Eirik Aavitsland
9d1c881f49 Texture file support: add mipmap reading to ktx handler
Change-Id: Ic2c10b3e64d63d2272a8a3922d2b3f99dfd45bdb
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-09-12 08:41:38 +00:00
Laszlo Agocs
2d82cb7d77 QVulkanWindow: Fix some load/store ops in the default renderpass
Stencil is - very likely - cleared just like depth. Also, switch to
STORE_OP_STORE for the multisample buffer, for correctness.

Change-Id: I31b56658286205af8551018115ca2abbe541be67
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2018-09-12 08:34:20 +00:00
Laszlo Agocs
d6c7089e6c QVulkanWindow: Fix bogus stage masks in readback
Change-Id: I08882a02204c95272b100647923c9903f825912c
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2018-09-12 08:34:17 +00:00
Laszlo Agocs
1c6bd414dd Fix device local alloc in hellovulkantexture
Running with QT_VK_FORCE_STAGE_TEX does not work at all with recent
NVIDIA drivers due to QVulkanWindow's and the example's naive way of
picking the memory index. Enhance this and add a warning note to the
QVulkanWindow docs as well.

Change-Id: I7f200e11d982b56e3da3b71ee3915bd7bfca5cc1
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2018-09-12 08:34:15 +00:00
Allan Sandfeld Jensen
73af8e7553 Add optimized fetch ARGB32 routines for NEON
After convert and fetch were split, only convert was still NEON
vectorized, while fetch is the more commonly used version.

Change-Id: Iea2af7ccee6589b3d6e9908afeaae2d1ad2753be
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-09-12 07:26:55 +00:00
Paul Wicking
cfb8d70888 Doc: Fix typo and add precision to method description
As transform() returns worldTransform(), point out that it is an alias
in its description.

Fixes: QTBUG-18117
Change-Id: I0eb1f78c6955b499906024105f9969cdccf13303
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-09-12 06:42:40 +00:00