Commit Graph

42377 Commits

Author SHA1 Message Date
Thiago Macieira
02eb9df851 Add new AVX512 extensions found in Intel CLX, ICL and ICX processors
Cascade Lake (CLX) added AVX512VNNI, Ice Lake has added that plus the
integer multiplication (IFMA), the vector bit manipulation instructions
(VBMI and VBMI2), bit algorithms (BITALG), the extended vector AES
instructions (VAES), among others.

I haven't turned on the configure check for those yet. I believe the
VBMI and IFMA instructions will be interesting for Qt image algorithms,
but we'll need some Ice Lakes to do benchmarking on.

Change-Id: Ib5d667bf77a740c28d2efffd15cb43dd821d4b2d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-02-03 11:31:49 -07:00
Tor Arne Vestbø
bf2216c32b Fix isRunningArmOnX86 unused function warning
Change-Id: Ic51e85d2e6e24860f8e980a243a45ec4dc1253cd
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-03 15:03:51 +01:00
Tor Arne Vestbø
27db9e458c testlib: Clarify that our XUnit reporter is actually a JUnit reporter
The reporter was probably named 'xunit' based on the historical use of
xUnit to refer to testing frameworks derived from Smalltalk's SUnit.
These frameworks typically added their own prefix, e.g. JUnit for Java,
RUnit for R, etc.

The most popular of these was the JUnit framework, and the corresponding
XML output produced by the Ant built tool became somewhat of a de facto
standard, which is probably why we chose to model our reporter after it.

Nowadays however, naming it 'xunit' is problematic as there is actually
a testing famework named xUnit.net, typically shortened to, you guessed
it: xunit.

Test report consumers will typically have a junit mode, and an xunit
mode, and the latter could easily be mistaken for what testlib outputs,
unless we clarify this.

The clarification also allows us to safely extend our support for the
JUnit XML format to incorporate some elements that are nowadays common,
but where we are lagging behind the standard.

[ChangeLog][QTestLib] The formerly named 'xunitxml' test reporter has
been renamed to what it actually is: a JUnit test reporter, and is now
triggered by passing -o junitxml to the test binary.

Change-Id: Ieb20d3d2b5905c74e55b98174948cc70870c0ef9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-03 13:48:25 +01:00
Laszlo Agocs
75ad13d2bc rhi: Improve isClipDepthZeroToOne() doc
Quick 3D is now having a use case for calling this directly, so use this
opportunity for enhancing the docs to make it clear what this is about.

Change-Id: I19ec956ac25175dbfb754192abaad8d65a6eeb0e
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-02-03 12:05:03 +01:00
Alexander Neundorf
71cf207b54 QGraphicsItem: optimize setCursor() for large number of graphic items
This patch optimizes setCursor() by invoking view->items(position) only
if the current graphics item is under the mouse cursor. If it is not,
setting the cursor for this item should not have any effect on the
actually currently visible mouse cursor, so there should be no
reason to call _q_setViewportCursor() at all in this case, so
it is not necessary to query for all the items under the cursor
position.
In my use case this gives a significant performance improvement
from slow behavior to almost immediately (Linux with X11).

My scenario is that I have many rectangular graphic items next to each
other in a graphics view, and there is the functionality to add one
more graphics item (a "handle") to one of those rectangular graphics
items, and then for this new "handle" a new graphics item will be
added on each of the other existing rectangular graphics items.
The ctor of the "handle" graphics item calls
setCursor(Qt::OpenHandCursor). QGraphicsItem::setCursor() calls
view->item(cursorPosition), and then updates the visible cursor
according to the top most graphics item under the cursor.

So assuming that there are e.g. 1000 rectangular graphics items next
to each other, each showing e.g. 5 "handle" graphic items, adding one
more "handle" graphics item will add one graphics item on each of the
1000 rectangular items, so 1000 times view->items(cursorPos) will be
called, at the beginning with 6000 graphic items (1000 rectangles and
5000 handles) already in the scene, for the last one with 6999 items
in the scene (999 "handles" have been already added), from which the
ones under the cursor have to be found.
This is basically O^2 complexity. With the patch it changes to
linear regarding the number of rectangular graphics items.

Change-Id: I9836fc710a8f11d01a94930ea64c6c946e0db282
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-02-03 11:40:52 +01:00
Eskil Abrahamsen Blomfeldt
07e5a05dcb Suppress deprecation warnings for QFont::ForceIntegerMetrics
This flag has been deprecated, but until we remove it completely
we need to continue supporting it, so we just suppress the warnings
for now.

Change-Id: I464e1cce42f78af76d46ec12eeb3e8d53d64d6a3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-02-03 07:08:53 +01:00
Christian Ehrlicher
06f88d2177 QtSql: add missing key for MariaDB
When support for MariaDB was added in
947704cefe the key 'MARIADB' was not added
to the json file.

Change-Id: I8565a4a3804028806c1d2ff992329ece24de3fc5
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-02-02 13:04:46 +01:00
Vitaly Fanaskov
dd42e5d5e7 QSignalMapper: deprecate overridden signals
Task-number: QTBUG-80906
Change-Id: I9beab78d8fe8dfc712969f65792f50360a890287
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2020-02-01 21:23:44 +01:00
Friedemann Kleint
e56b8e1e59 QWindowsXPStyle: Fix MDI button size for maximized QMdiSubWindows
The controls as drawn by the UxTheme library are too tiny; add an
additional correction factor to
QWindowsXPStylePrivate::drawBackgroundThruNativeBuffer(), allowing
to scale the result via the QImage.

For the MDI button size, calulcate the factor by comparing the
theme size to the subcontrol rectangle.

Fixes: QTBUG-75927
Change-Id: Iab0911b51d13f3de0d9278a32cb4598ce709d745
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2020-02-01 17:48:37 +01:00
Tor Arne Vestbø
0c8ff269dc testlib: Unite Windows and Unix signal handler code
Change-Id: I7b9d480008167c071bf925d655eb97ef437bc206
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-01 10:43:52 +01:00
Tor Arne Vestbø
d005d743de testlib: Implement FatalSignalHandler inline
Change-Id: Ie6f151cb099151616f83ea8d5e11e6625bedeb8c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-01 10:43:44 +01:00
Kari Oikarinen
89f443dfbc QScopeGuard: Fix build failures with qScopeGuard()
Partially reverts 4f077b7e5f.

Can't overload with forwarding references and lvalue references. Use a single
forwarding reference overload, but take care of not trying to create a
QScopeGuard of reference type and forward instead of moving.

Add tests to ensure calling with both lvalues and rvalues is possible.

Change-Id: Ia034afe0a8feb08246c2c7c154a85cae37421c98
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-01 11:07:08 +02:00
Eskil Abrahamsen Blomfeldt
beede51bca Fix rendering offset when using DirectWrite engine
When rendering the glyphs into the texture, we need to translate
by the margins (this is accounted for later). The visible
symptom for this was that when the DirectWrite engine was used
all glyphs would be two pixels to the left (which could be seen
when placing a cursor at the glyph for instance, and sometimes
the edge of the glyph was clipped).

Change-Id: Ife72ae8b5663cf43448ae0f8323a459210609b4d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-02-01 10:04:19 +01:00
Friedemann Kleint
b35dda7ee7 QWindowsXPStyle: Adapt the size of MDI buttons for maximized MDI subwindows to High DPI
Scale the size according to DPI, fixing the buttons being too small
on High DPI screens with Qt High DPI scaling turned off.

Task-number: QTBUG-75927
Change-Id: Ibdcfa994164ca7bb72a831f1afe1267b4d5010cf
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2020-02-01 09:39:50 +01:00
Friedemann Kleint
2a5f5f6049 QWindowsXPStyle: Factor out repetitive code for MDI/Window title bars
Use static helpers to populate the XPTheme struct.

Task-number: QTBUG-75927
Change-Id: I49201f56fd5a4ef7eeb86c01dfc858022f465792
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2020-02-01 09:39:50 +01:00
Tor Arne Vestbø
facb8b7491 testlib: Properly cleanup after caught exception
We were only doing half of what qCleanup was doing in the
exception case, and in an inconsistent order. There's no
reason not to just call qCleanup to align the behavior.

Change-Id: Ic4e63afb4733de5b01a79272cca8908fca3de762
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-01 00:49:23 +01:00
Tor Arne Vestbø
0dc31e667f testlib: Simplify macOS setup/teardown code
Change-Id: If92845ccb044becee136c7791fdb3cfe3641b28d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-01 00:49:19 +01:00
Tor Arne Vestbø
5940d20c69 testlib: Fix indentation
Change-Id: I54bb2c3dda731e1fd6c7e909aa30a3cedb53612b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-01 00:49:15 +01:00
Tor Arne Vestbø
828e14b5f9 Fix unused argument warning in test
Change-Id: I9f55efee82f8d855d89977b3e4db32855e110c87
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-02-01 00:49:11 +01:00
Tor Arne Vestbø
ac0a266e75 testlib: Don't disable watchdog when the macOS crash reporter is enabled
The debuggerPresent() function was used both to decide whether we should
print our own stacktrace, and if we should start the watchdog timer, but
checking for the macOS crash reporter only applies to the former usecase.

The crash reporter check has now been split into a separate function, only
used to decide whether we should print our own stacktrace or not.

Change-Id: I282aa57a51c14b07d3cbd547b551b6bf81b61897
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-02-01 00:49:07 +01:00
Sze Howe Koh
e6f479a830 tst_QDataStream::readQCursor(): Replace deprecated QCursor API
Task-number: QTBUG-48701
Change-Id: I4205d278b1cd6b088f8f58020f6a5e49a7f1ca33
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-02-01 07:31:02 +08:00
James McDonnell
aec3c6a9cb Add EglDisplay resource to the QNX platform plugin
QtWayland requires this resource.

Change-Id: I41f83d93582bfe7c471208e8ca844e24dc2c6da5
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2020-01-31 18:31:01 -05:00
Sze Howe Koh
b90eaa3bb5 Examples: Replace deprecated QLabel API
Task-number: QTBUG-48701
Change-Id: I6fc875a35dfc3bf4d906d0f0e495c18ef566d1e1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-02-01 07:31:01 +08:00
Allan Sandfeld Jensen
967e55a628 Allow creating a valid QColorSpace one value at a time
The change to using setters left a quirk from the previous un-mutable
design where you couldn't set values on an invalid color space and
create a valid one.

This changes that so it works as expected for an imperative API, but
is also needed for the declarative QML bindings.

Change-Id: I246cfc38b364b156238151c42c1df82a3f1cc9d3
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-02-01 00:31:01 +01:00
Allan Sandfeld Jensen
c76dd72dc6 Add a constructor for QRunnable from anonymous functions
This makes it easier to create one without having to create
a derivative class. The patch also adds a path to avoid using
QRunnable directly in QThreadPool.

Change-Id: I9caa7dabb6f641b547d4771c863aa6ab7f01b704
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-01-31 19:20:43 +01:00
Edward Welbourne
6c4e0f2d2d Deprecate QLocale::toTime() variants taking a calendar
The calendar is ignored, so adding these methods was a mistake.

[ChangeLog][QtCore][QLocale] Deprecated toTime() variants taking a
calendar. The calendar is ignored in time parsing.

Change-Id: I79fa994ce88f13fdb931163b447eb1a9ad655c09
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-01-31 19:20:43 +01:00
Edward Welbourne
d6ba2ae441 Consolidate some Q(Date|Time)+ methods to call calendared versions
The string-returning methods were in any case delegating to either a
local static or QLocale methods that delegate to their calendar
variants, so do the default-calendar step early and reduce the number
of distinct code-paths, along with the gross number of lines of code.

In the process, short-cut past QDate::toString() when we can save its
switch and go direct to the toString{Text|Iso}Date() it's calling.
Tidy up somewhat in the process.

Change-Id: I8ba70b29ef9e8b6553c41310ebb2b63ec5570bb9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-01-31 19:20:43 +01:00
Edward Welbourne
d6d98f782a Deprecate locale-related DateFormat enum members
Qt 6 shall remove all locale-dependence from Q(Date|Time)+.

Task-number: QTBUG-80441
Change-Id: Iebaaa2bd776bccfe0d73c15f36cbdd456b71ca59
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-01-31 19:20:43 +01:00
Edward Welbourne
05ce1821cd Add missing calendar methods to QDateTime and docs
We missed a few, so complete the general scheme of accepting an
optional calendar, where it would be relevant.

[ChangeLog][QtCore][QDateTime] Added some missing QCalendar variants
of QDateTime::toString(). Included docs for QCalendar variants in both
QDate and QDateTime.

Change-Id: Ief7b4dada73d7a4055b75d8b47ff4d2e310ce738
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-01-31 19:20:43 +01:00
Edward Welbourne
b4b3b5c694 Clarify handling of unspecified year in two QCalendar methods
[ChangeLog][QtCore] QCalendar::monthsInYear(QCalendar::Unspecified)
now returns maximumMonthsInYear(). QCalendar::daysInYear() now makes
clear that its handling of unspecified year is undefined.

Change-Id: Ifef8723193868c666f6afeb7f190af4929d30dea
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-31 12:26:34 +01:00
Laszlo Agocs
a5be18cc7d rhi: Enable sampler address mode W in the API
Internally this is already supported by all backends. The frontend was just
not exposing addressW, instead defaulting to the (arbitrarily chosen) ClampToEdge.

Add the parameter to newSampler(), but make it optional, defaulting to the more
natural Repeat (because that's what one would get with OpenGL for WRAP_R by default)

Change-Id: I0b991d8b649db37d4da86ac8e98ab7845601cf67
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
2020-01-30 19:56:21 +01:00
Edward Welbourne
037369cc4d Deprecate QDateTime(const QDate &) in favor of QDate::startOfDay()
It needed re-implemented in terms of the new API (in case QTime(0, 0)
was skipped, on the date in question, by a spring-forwrd), which makes
it redundant (and supports choice of spec and zone or offset, which it
did not).

Change-Id: I1e3c3e794632c234f254be754ed6e4ebdaaaa6bc
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-01-30 19:56:21 +01:00
Mårten Nordheim
6a1df2d206 QNetworkProxy/doc: Remove mention of network configuration
The support for QNetworkConfiguration was deprecated in 5.10 but the
documentation was still alluding to the functionality.

Change-Id: I7597388c646196fb4744d7bac4f890ca582c5b75
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-30 19:56:21 +01:00
Allan Sandfeld Jensen
2e7a28958d Deprecate QImageIOHandler gamma correction
Don't do gamma correction at image decoding time, it can be a whole
lot more than just a simple gamma function, so it is better to use
QColorSpace and QColorTransform.

Change-Id: Iebc960bad6ecdd878240be965699d2df869572ad
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-01-30 11:23:50 +01:00
Mårten Nordheim
22d0e91970 QHash: Re-remove Java-style iterator
When deprecating reverse iteratation for QHash the macro defining
QHashIterator was expanded but QT_NO_JAVA_STYLE_ITERATORS was
unfortunately forgotten. This patch brings it back.

Amends dbb54805f6

Change-Id: I7b1912a13f6f8d2446c1f61a1c4a19afb2f28993
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-01-30 07:11:40 +01:00
Kari Oikarinen
4f077b7e5f QScopeGuard: Make constructor public
With Class Template Argument Deduction users might want to use the constructor
itself instead of a separate helper function. In both cases it's possible to let
the compiler deduce the template arguments.

Try to make the usefulness of the helper function in the absence of CTAD still
clear in the documentation.

Change-Id: I9b07983c1fb276a6dd9e7ed4c3e606764e9b68ca
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2020-01-30 07:30:17 +02:00
Volker Hilsheimer
601ce9e08a Implement moving of a single file system entry to the trash
This implements the operation for Windows, macOS, and Unix, for now
only as a private API (since QFileSystemEngine is private). This adds
the capability as a testable function; public API to be agreed on and
added in a separate commit.

The Unix implementation follows the freedesktop.org specification [1]
version 1.0.

[1] https://specifications.freedesktop.org/trash-spec/trashspec-1.0.html

On macOS and Windows, native APIs are used, with each having some
limitations:

* on macOS, the file in the trash won't have a "put back" option,
  as we don't use Finder automation, for the reasons provided in the
  comments
* on Windows, we might not be able to use the modern IFileOperation
  API, e.g. if Qt is built with mingw which doesn't seem to provide
  the interface definition; the fallback doesn't provide access to
  the file name in the trash

The test case creates files and directories, and moves them to the
trash. As part of the cleanup routine, it deletes all file system
entries created. If run on Windows without IFileOperations support,
this will add a file in the trash for each test run, filling up
hard drive space.

Task-number: QTBUG-47703
Change-Id: I5f5f4e578be2f45d7da84f70a03acbe1a12a1231
Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
2020-01-30 06:14:56 +01:00
Mårten Nordheim
7321a2c624 QNetworkAccessManager: deprecate bearer related functions
In Qt6 QNAM will no longer use bearer in any way so we deprecate it now.

Also mark bearermanagement-conditioned sections for removal in Qt6,
the _q_networksession property is part of how QNAM passes the
QNetworkSession around.

Task-number: QTBUG-81609
Change-Id: I04aad9dd96482c6822dffba1b9af7aa58961149c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-30 05:29:35 +01:00
Lorn Potter
4df303ece7 wasm: fix c++17 detection on windows
Our copy function for qtloader.js does not handle quoting when a
directory has '+' in the path, and this makes the copy method fail.

This is fixed the same way the cxx_future test works

Fixes: QTBUG-79552
Change-Id: Iad8331800aa73eea948e7d2650568645a4c0640c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-01-30 13:59:23 +10:00
Timur Pocheptsov
b36b7abb40 Implement/fix session resumption with TLS 1.3
The session we cache at the end of a handshake is non-resumable
in TLS 1.3, since NewSessionTicket message appears quite some time
after the handshake was complete. OpenSSL has a callback where
we can finally obtain a resumable session and inform an application
about session ticket updated by emitting a signal. Truism: OpenSSL-only.

[ChangeLog][QtNetwork] A new signal introduced to report when a valid session ticket received (TLS 1.3)

Fixes: QTBUG-81591
Change-Id: I4d22fad5cc082e431577e20ddbda2835e864b511
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-29 19:38:43 +01:00
Mårten Nordheim
33c9a1e0bc Remove some usage of deprecated QSslCertificate::fromPath
The changed function was added in September 2019 in 5.15 branch before
the new overload was added and the old one was deprecated, so we can
freely change it.

Amends 1068d579ee

Change-Id: Iff9d72c26ce557c28b188e1754daa03fd061d531
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-29 10:53:30 +01:00
Qt Forward Merge Bot
6f44c40f18 Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2020-01-29 01:01:12 +01:00
Qt Forward Merge Bot
a3fc03c130 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I98b1a5a11ece3957a1115c1d9be8841759206ffe
2020-01-29 01:00:56 +01:00
Friedemann Kleint
9109461809 Manual test foreignwindows: Modernize code
Use nullptr, range-based for and replace typedef by using.
Fix duplicated setting of option. Replace deprecated API.

Change-Id: I2628e8b41e64e9809b2f405dfd2be6bee18b048c
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-01-28 22:39:07 +01:00
Volker Hilsheimer
6e1d70ae12 QPushButton: only trigger button when click occurs within the bevel rect
On the mac, the push button's bevel doesn't cover the entire widget
rectangle, but is smaller to leave space for focus frame, shadow, and
in general to meet style guidelines. Without this change, a click
anywhere inside the widget would activate the button.

QAbstractButton::hitButton can be reimplemented to limit the area in
which the button is triggered. However, getting the rectangle also
requires an addition to QStyle, so that we can query
QStyle::subElementRect for the actual area the button's bevel covers.

As a side effect, tests that use QPushButton and assume that it
responds to clicks at position 0,0 have to be fixed so that they
don't fail on mac.

Change-Id: I01b60a763bccf39090aee5b2369af300f922d226
Fixes: QTBUG-81452
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-01-28 22:26:26 +01:00
Robert Loehning
94bc57213f configure: Add switch for clang's "source-based" code coverage feature
This adds instrumentation to the binaries. At the end of their
execution, these will then write a file containing information which code
was executed. This can be used for code coverage analysis.

[ChangeLog][QtCore][configure] Add switch "-coverage source-based" to
enable clang's "source-based" code coverage feature. This can be used
for code coverage analysis.

Change-Id: If31c6849aa797ff8820e041e85a492a14e2f1a6b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-01-28 20:26:15 +00:00
Leena Miettinen
382619de65 Doc: Fix copy-paste error in QOpenGLTexture::Target docs
Add a link to https://www.khronos.org/opengl/wiki/Array_Texture.

Fixes: QTBUG-49802
Change-Id: Ic740dd758c41a8f3e471a503bd2d02f6d3096f50
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-28 18:42:58 +01:00
Johan Klokkhammer Helsing
a611c632bb Add QWindow::startSystemMove and startSystemResize
This can be used to create custom client side window decorations.

Refactors the xcb implementation to use edges instead of corners and we now use
the last mouse position for `root_x` and `root_y` in the `_NET_WM_MOVERESIZE`
event. Touch has also been changed, so just pick a point that's currently being
pressed.

The workaround for QTBUG-69716 has now been moved to QSizeGrip, as the comment
in the bug report says that it should ideally be fixed at the widget level.

On Windows, we no longer abort when GetSystemMenu returns false. I assume this
code was added to check whether the window didn't have any decorations and not
resize in that case. However, since the point of this patch is to let windows
without native decorations resize/move, it makes most sense to remove the
check.

Adds a manual test, which calls QWindow::startSystemMove and startSystemResize
on touch and mouse events.

[ChangeLog][QtGui] Added API for starting interactive window resize and move
operations handled by the system.

Fixes: QTBUG-73011
Change-Id: I7e47a0b2cff182af71d3d479d6e3746f08ea30aa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-01-28 16:52:13 +01:00
Qt Forward Merge Bot
6c3eb39832 Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2020-01-28 16:02:04 +01:00
Liang Qi
54b1f1d199 Merge remote-tracking branch 'origin/5.14.1' into 5.14
Conflicts:
	mkspecs/features/create_cmake.prf

Done-With: Artem Pisarenko <artem.k.pisarenko@gmail.com>
Change-Id: I2ecb9fdca06fe687be8ab3457a58dd81e5e81c4c
2020-01-28 09:16:11 +01:00