Commit Graph

37522 Commits (2cc458abfb2ab252d34bbdedcecf73ebd19335e5)

Author SHA1 Message Date
Andre de la Rocha f1eccab04e Windows QPA: Fix accessibility focus event for table/tree/list
The focused element within a table, tree or list was not being informed
in the UI Automation focus change events, causing the focused element
to be missed by screen readers.

Fixes: QTBUG-91029
Pick-to: 6.0 6.1 5.15
Change-Id: I738502e6871358508b4510763018837c304b618e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2021-03-25 11:16:21 +01:00
Andreas Buhr 0aae7b9593 Add documentation for internal Q_OBJECT_COMPAT_PROPERTY
The internal class QObjectCompatProperty and the associated macro
Q_OBJECT_COMPAT_PROPERTY did not have any documentation so far.
This patch adds some initial documentation.

Task-number: QTBUG-90511
Change-Id: Ie55e7d7829363bd5a29430a4250ddba14a761912
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-03-25 11:14:38 +01:00
Volker Hilsheimer 42e659b320 Fix deprecated macros
The QTextCharFormat::fontFamily  methods are deprecated as of Qt 6.1,
not as of Qt 6.0.

Mark them as obsolete in the documentation and point to the replacement
there as well.

Address API review comment.

Pick-to: 6.1
Change-Id: Id71ea1ebab6f7a385c8c3f286a35f88ba1177857
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2021-03-25 11:08:21 +01:00
Joni Poikelin e287582cba Fix removing columns when QSortFilterProxyModel has not been sorted yet
Fixes: QTBUG-91788
Pick-to: 6.1 6.0 5.15
Change-Id: Iddcafd3171f0f3703b94893a32b4ccaaeea9e713
Reviewed-by: David Faure <david.faure@kdab.com>
2021-03-25 11:32:22 +02:00
Alex Trotsenko 856e0a187f QProcess/Win: simplify logic inside waitForBytesWritten()
Also, remove obsolete comments and an unnecessary check.

Change-Id: If64fa660d5434de94edfa48aafcaeb755aa8d68c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2021-03-25 10:35:04 +02:00
Eskil Abrahamsen Blomfeldt 70251867a5 Fix compilation with experimental x11 paint engine feature
Adding support for vertical subpixel positions in
d79a9b1a4f changed some private APIs
which were used from the xcb-native-painting feature.

This fixes this (it does not implement vertical subpixels but
simply sets the vertical subpixel position to 0). It also
adds a missing "override" which triggered the warnings-are-errors
when compiling for me.

Fixes: QTBUG-92011
Pick-to: 6.1
Change-Id: If214a0d19a41e623ca9ef8e6215bc145f9846ae9
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2021-03-25 09:06:25 +01:00
Hyungchan Kim 3dcdd89dd1 Fix compilation error when LTTng enabled
Updates tracepoint for qtgui and qtopengl fit to current source code.

Change-Id: I2e8ecc86a37942425734202a11bbc792e8f27bf3
Reviewed-by: Hyungchan Kim <hyungchan2.kim@lge.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2021-03-25 15:37:55 +09:00
Andy Shaw 5577cbaac5 Return the result we have already when getting an object with no name
This will ensure that something is set for the AutomationId based on
the actual object and the parents that do have object names until it
reaches one without an object name.

Pick-to: 6.1 6.0 5.15
Change-Id: I205485bc0ba772e321879e00e64ea8e1d8f1ba91
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2021-03-24 07:48:03 +01:00
Zhang Hao be643a27f4 Account for multiple screens when computing QSizeGrip available geometry
In a multi-screen setup, when the window was resized on one
of the screens, the resize was limited to the available geometry
of the screen the window was on.
Fix this by using the whole virtual geometry of all the screens
as basis for the resize.

Fixes: QTBUG-91714
Change-Id: I28dd241d73f6a68550af88e368f0dbdcb9ebf42b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-24 00:54:02 +00:00
Qt CI Bot 2db455aff4 Merge integration refs/builds/qtci/dev/1616505582 2021-03-23 19:38:31 +00:00
Qt CI Bot 1bf62d37d1 Merge integration refs/builds/qtci/dev/1616510551 2021-03-23 19:37:01 +00:00
Qt CI Bot 7d5a183e9d Merge integration refs/builds/qtci/dev/1616509627 2021-03-23 19:00:59 +00:00
Qt CI Bot cf4e607098 Merge integration refs/builds/qtci/dev/1616492874 2021-03-23 15:28:39 +00:00
Qt CI Bot 0c97ef1abb Merge integration refs/builds/qtci/dev/1616500234 2021-03-23 15:10:59 +00:00
Fabian Kosmale 932c10fcda Revert "qtypeinfo: make variable templates inline"
This reverts commit 6de9acf779.

Reason for revert: This might cause ICEs in clang

Task-number: QTBUG-91782
Change-Id: I987d2242b04a22208b54ecbc386a1f6cfc625c1d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-23 14:32:22 +00:00
Shawn Rutledge c0e31d6387 Remove QWindowSystemInterface::handleGestureEventWithSequenceIdAndValue()
This was added in fbfc8ffbf3 but left
unused in Qt 5; and we don't anticipate needing it now either.

Change-Id: I3d1f1301c8896df04255ebef5bacb5c5027dc7ae
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Povilas Kanapickas <povilas@radix.lt>
2021-03-23 15:25:54 +01:00
Qt CI Bot c5d0abdc3b Merge integration refs/builds/qtci/dev/1616491690 2021-03-23 13:58:05 +00:00
Alex Blasche edfab62cb0 Remove qualification for Julian calendar
The given qualification was wrong but also not needed in the first place,

Fixes: QTBUG-92046
Pick-to: 6.1 5.15
Change-Id: Id28347fee2ef11ffcb0df8320b1025568b59de9c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-03-23 13:15:01 +00:00
Allan Sandfeld Jensen 35ef3fb009 Test incoming formats more throuroughly
Just to protect against invalid data in d->format.

Change-Id: I5e7cc04d5d8e42bdcb0edd2ab5fa34a08b96b6a8
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2021-03-23 12:49:08 +01:00
Edward Welbourne 824d963700 Restore support for reading /etc/timezone for system zone name
This restores one of the two mechanisms removed in
commit b0383cbd38,
transformed to fit in with the new cached system-zone determination.

Fixes: QTBUG-87326
Pick-to: 6.1 6.0 5.15
Change-Id: Ic270acb0d958e17dbc74a0ff93a5a1843c939678
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-23 10:46:33 +01:00
Laszlo Agocs 3c85f8e9fc rhi: vulkan: Prevent a misplaced assert from triggering in debug builds
One place where this popped up was the qrhi autotest (in debug builds).

This check is meant for VkRenderpass objects for texture render targets,
should not bother with it for the "main" renderpass.

Amends 19384f2e8f

Change-Id: I877a2458fe17fe339b4741d4aa8af3fbda4dabcc
Pick-to: 6.1
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-03-23 10:27:10 +01:00
Lars Knoll 22c66e12e4 Provide an inline implementation of currentThreadId() on Windows
As this method is rather critical for performance of some central
parts of Qt, it really should be inline whereever possible. This
commit adds an inline implementation for Windows 32 and 64 bit.

Amends 5e9b2ade67

Change-Id: Iea51ef905b1cb7f91ca64b718d79bdc4f5c02c3a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-23 06:42:16 +01:00
Qt CI Bot dd7920821e Merge integration refs/builds/qtci/dev/1616448750 2021-03-22 23:46:28 +00:00
Qt CI Bot adf8ba820a Merge integration refs/builds/qtci/dev/1616446659 2021-03-22 23:17:07 +00:00
Niclas Rosenvik 75296f347f Fix backtrace on non-linux systems
On BSD systems backtrace lies in libexecinfo. Use
FindBacktrace from CMake to be able to resolve
backtrace on more unixes than linux.

Change-Id: Ie14fd1727d2da03645fc2d6de10c0217baabad6b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-22 21:31:09 +00:00
Fabian Kosmale 8771669ca9 QMetaTypeInterface: Do not make member itself const
Dynamic metatypes, like the ones used in QML any Python, benefit if the
pointer in the interface is mutable: They can -either by inheritance
from QMetaTypeInterface or by copying one of its instances- get a
"prefilled" interface, and then replace any member to fit their use
case. Except that before this change, this was not possible for
metaObjectFn.

Change-Id: I6afba13f97174eb08391af38b73fcfc7b37a2276
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-22 21:56:24 +01:00
Giuseppe D'Angelo 647c0e80ed Enforce __cplusplus >= 201703L on MSVC
Client code on MSVC *must* pass /Zc:__cplusplus when using Qt.
Otherwise, this makes Qt code that relies on feature-testing
macros a mess. For instance, in QTBUG-91117, we trip on this code:

  // C++ version guard is necessary: you may have the header,
  // but including it in pre-C++20 will cause an hard error
  #if __has_include(<bit>) && __cplusplus > 201703L
  #include <bit>
  #endif

  #if defined(__cpp_lib_bitops)
  // use some <bit> functionality
  #endif

The #define __cpp_lib_bitops should've come from the preceding include
directive, but there's another possibility: that it comes from
<version> (or some other similar header) included transitively,
when compiling in C++20 mode, and *without* a bumped __cplusplus.
Yes, that's an actual possibility on MSVC.

Then, since we did not include <bit> ourselves due to the __cplusplus
version check, using the functionality will cause a compile error.

We're not going to fix *every* post C++-17 feature detection macro
because of MSVC and feature-test shenanigans. It's time to require
compilers to tell us the truth about what they support.

Fixes: QTBUG-91117
Change-Id: I9d74f9d8b74b5ac35dce3528e7a2006746a00676
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2021-03-22 19:57:07 +00:00
Qt CI Bot 65b4937f34 Merge integration refs/builds/qtci/dev/1616419842 2021-03-22 19:25:52 +00:00
Qt CI Bot f5e300bf6a Merge integration refs/builds/qtci/dev/1616415197 2021-03-22 16:45:12 +00:00
Qt CI Bot e8c3fc7c43 Merge integration refs/builds/qtci/dev/1616410126 2021-03-22 15:22:00 +00:00
Qt CI Bot b4afffd6a2 Merge integration refs/builds/qtci/dev/1616406519 2021-03-22 15:19:48 +00:00
Allan Sandfeld Jensen c32cd44d34 Fix alpha handling of QImage::setPixel
It was treated differently depending on format, made it consistently
behave the same for all formats (following the behavior of the primary
formats).

Pick-to: 6.1 6.0 5.15
Change-Id: Ie24e19957d076fdf3ebd333074e26ede187489eb
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2021-03-22 14:29:14 +01:00
Fabian Kosmale abd7496fba QFutureInterfaceBasePrivate: reorder members to save 8 bytes
And use in-class member initialization where applicable.

Task-number: QTBUG-92045
Change-Id: I54715709f2d8e54017311f45016c16d86ed3078b
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
2021-03-22 13:12:15 +01:00
Qt CI Bot fc76a348e4 Merge integration refs/builds/qtci/dev/1616402489 2021-03-22 11:14:01 +00:00
Zhang Yu c47bb4478a Fix invalid pointer return with QGridLayout::itemAt(-1)
QGridLayout::takeAt() and QLayoutItem *itemAt() only check the upper bound.
If the index < 0, these function will return invalid pointer.

Fixes: QTBUG-91261
Pick-to: 5.15 6.0 6.1
Change-Id: Idfb9fb6228b9707f817353b04974da16205a835c
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2021-03-22 18:47:36 +08:00
Qt CI Bot 248ed57e05 Merge integration refs/builds/qtci/dev/1616400978 2021-03-22 10:36:21 +00:00
Qt CI Bot f7e697f7bc Merge integration refs/builds/qtci/dev/1616400051 2021-03-22 10:31:24 +00:00
Fabian Kosmale e07aec7eaa QFuture: cleanup headers
Do not include vector; we currently do not use std::vector, and the plan
is to use QList when that one supports move-only types.
Use QMutexLocker instead of std::mutex_locker, considering that the
former is already included with <QMutex>.
Use forward declarations where applicable.
Add header which were currently only indirectly included (to make
QtCreator's code model happy).

Change-Id: I37d5cd3982047a6d8a3132fd66571878298039b3
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
2021-03-22 10:47:13 +01:00
Oliver Wolff 5910adae74 QWinRTFunctions::await: Return proper error in case of timeout
The await function is still used in other Qt modules which depend on UWP
API (like Qt Bluetooth).

ERROR_TIMEOUT is a win32 error not an HRESULT so that the check for
FAILED(ERROR_TIMEOUT) in "static inline HRESULT await" will not work as
expected if we do not use HRESULT_FROM_WIN32.

The await function will fail in asyncOp->GetResults but the error
message will not be related to a timeout but about a function being
called at an unexpected time.

Change-Id: Iac46b27f379f80769913d544e32320c77b799b4f
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2021-03-22 09:40:29 +01:00
Albert Astals Cid 9e837c936f Make QMovableArrayOps::Inserter non copyable
copying it would be a mistake
QGenericArrayOps::Inserter is already mark as non copyable

Change-Id: Ib9eba5e26bf943fe82c5cfc83f0785e214d3cc67
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-22 09:03:29 +01:00
Nico Vertriest c535933d89 Doc: Fix qdoc warnings on snippet files
qtwidgets-index.qdoc:123: (qdoc) warning: Cannot find file to quote from: 'snippets/snippets.pro'
qtwidgets-index.qdoc:123: (qdoc) warning: Unexpected '\snippet (//! [qmake_use])'

Task-number: QTBUG-90662
Change-Id: I702b685e7cd9c34b5a07480ecb99e913ce250d70
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-03-22 08:59:23 +01:00
Fan PengCheng b6fe187f0d Avoid a crash in QMessageBoxDetailsText, just in case
Change-Id: I3322767363c34ad1f131b6ef24e274e5e5cc9f16
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2021-03-22 15:28:14 +08:00
Fabian Kosmale 5da3f1e4b6 Merge "qarraydata.h: use __has_builtin directly" 2021-03-21 20:12:20 +00:00
Fabian Kosmale 1687f4c963 qarraydata.h: use __has_builtin directly
All our supported compilers support __has_builtin; also, no need to
check for old GCC versions; we require at least GCC 8.

Change-Id: I86d955188e71d6da5ebd1b2455e0f7fad8072bfb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-21 18:30:15 +01:00
Fabian Kosmale 3b281f6693 QAbstractFileIconProvider: Fix compilation without feature mimetype
Change-Id: I3aecc1ab97ed549511bc9a5cbc8eb780f5e9a4dd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-21 16:39:03 +01:00
Giuseppe D'Angelo a4ea58bf04 Merge "QSqlQuery: make it a move only type" 2021-03-21 11:24:27 +00:00
Giuseppe D'Angelo 14f9f00fdb QSqlQuery: make it a move only type
QSqlQuery is a broken value class. Copying one object would mean
copying database state (the result set, the cursor position, etc.)
which isn't generally available for all database drivers.
For that reason, the current implementation does not honor value
semantics -- modifying a QSqlQuery object has visible side effects
on its existing copies (!).

The correct solution is to accept that QSqlQuery is a move only
type, not a value type. Add move semantics to it, and deprecate
its copies.

(We can't just *remove* copies in Qt 6 due to SC/BC constraints).

[ChangeLog][QtSql][QSqlQuery] QSqlQuery copy operations have
been deprecated. QSqlQuery copy semantics cannot be implemented
correctly, as it's not generally possible to copy a result set
of a query when copying the corresponding QSqlQuery object. This
resulted in modifications on a QSqlQuery having visible (and
unintended) side effects on its copies. Instead, treat QSqlQuery
as a move-only type.

Fixes: QTBUG-91766
Change-Id: Iabd3aa605332a5c15c524303418bf17a21ed520b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-21 10:16:56 +01:00
Giuseppe D'Angelo 37e0953613 QHash: add a Qt 7 TODO
The hashing seed's type has been changed from int to size_t in Qt 6.
However the functions setting/getting the seed, and the seed itself,
are still simply int, meaning that we've crippled our seeding.
Add a TODO to amend it.

Change-Id: Ie9dd177149ec299ccf16d4e31f9f4b065804cfed
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-03-21 10:16:28 +01:00
Fabian Kosmale ce73ca0b55 qcontainerfwd.h: Do not include variant and tuple
utility is enough to get std::pair; qtypeinfo.h needs to include tuple
now though.

Change-Id: I9feb625f9feb148b3f3133747ab5405c2eca049d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-03-21 09:13:04 +01:00
Fabian Kosmale b8b50c6c7a Clenaup Q_COMPILER_THREADSAFE_STATICS
Change-Id: I1cf0646d4e6c9b30a7ef6538d81f92faf2e511e1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-21 09:13:00 +01:00
Fabian Kosmale 52e0a91fbc QUtf8StringView: Check size directly in operator==
We can avoid the non-inlined function call if the sizes do not match up.
This aligns the implementation of QUtf8StringView's operator== with the
one used for the other string classes.

Change-Id: Iaaf71b236edc0385551639961f753f11b324b327
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-21 09:12:57 +01:00
Andy Shaw 58437836f0 Merge "SQLite: Update to 3.35.2" 2021-03-20 12:50:27 +00:00
Andy Shaw 022fd8e79c SQLite: Update to 3.35.2
[ChangeLog][QtSQL][SQLite] Updated SQLite to v3.35.2

Pick-to: 6.1 6.0 5.15 5.12
Change-Id: I1e784627d7ed3a226acfbb28d8379d4c69f91a84
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-20 11:41:24 +01:00
Fabian Kosmale 411ab34c96 QMetaObjectBuilder: remove unused serialization code
Change-Id: I73a13265a69079581d2974400b3311d3fdfda2d0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-20 10:24:27 +01:00
Alexandru Croitor d68486547a CMake: Get rid of the Core_versiontagging object library
We don't currently handle object libraries when creating prl files for
static Qt builds, so it's best to compile files as part of the main
Core target.

Use source file COMPILE_OPTIONS to add the -fno-lto flag to the
global/qversiontagging.cpp source file.

Amends 2d4a40f93f

Pick-to: 6.1 6.0
Change-Id: Iac1d37ecb4caa7c9889d44b3a103a9bdafec49f3
Reviewed-by: Christophe Giboudeaux <christophe@krop.fr>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-03-19 21:42:15 +01:00
Timur Pocheptsov f6a603f0f5 Merge "Suppress warning (MSVC, C4250)" 2021-03-19 18:49:15 +00:00
Timur Pocheptsov a9300f2c34 Suppress warning (MSVC, C4250)
This design decision was intentional and reflects the fact that we
cannot have inheritance tree 'linear' as before, since the base
interface is an abstract class without any data-members.
Also, fix a warning about size_t -> int implicit conversion.

Fixes: QTBUG-91866
Change-Id: Icbc73c22d8adf72bbd8949125d4404ea6da69c6d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit 1a7faeef94dcf6826c6ee564a1bfb31ebb952e56)
2021-03-19 17:32:59 +01:00
Eirik Aavitsland e08eaf2c10 paintengine: improve error handling
Just check for null image/oom initially, no need to do it for every
scanline.
Reported by static analysis.

Change-Id: I86c3f09556b99b889e720901a3691bb0f730ac02
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2021-03-19 16:47:49 +01:00
Volker Hilsheimer 8f2f70a8ff Merge "Consistently check for nullptr in QGraphicsTextItem::inputMethodQuery" 2021-03-19 15:46:17 +00:00
Alexandru Croitor ea5cc229e2 Merge "CMake: Make Platform a dependency for all Qt internal targets" 2021-03-19 15:12:33 +00:00
Volker Hilsheimer 7edf0fbb9e Consistently check for nullptr in QGraphicsTextItem::inputMethodQuery
If dd->control is nullptr, then it's nullptr all the way, so don't
dereference it in the calls to dd->controlOffset.

Fixes static analyzer warning 9c33d9bc9b8cf438dccb63aa52afcbe0.

Pick-to: 6.1 6.0 5.15
Change-Id: I7a61b6438422373678d4fcb66255b750c550724d
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2021-03-19 14:26:03 +01:00
Laszlo Agocs 98e4652a96 Merge "rhi: Make it possible to clone a QRhiRenderPassDescriptor" 2021-03-19 13:05:37 +00:00
Alexandru Croitor d962c9ff85 CMake: Make Platform a dependency for all Qt internal targets
In particular that influences BundledLibrary targets.

Most internal targets already depended transitively on Qt::Platform
via Qt::Core as a public dependency. This was not the case for
BundledLibrary targets which don't link to Qt::Core.

This led to compilation issues in user projects when targeting
WebAssembly, due to mismatched flags between a bundled Harfbuzz vs
a user project. Probably other subtle issues as well (e.g. none of the
Windows specific compile definitions were passed to bundled libs).

Bundled libraries depend on PlatformCommonInternal already, so make
PlatformCommonInternal turn depend on the public Platform target.
I thought that was already the case, but we merely relied on the
Qt::Core dependency.

Note that Qt::Core should still list Platform as a public dependency,
so it gets propagated to user projects.

Amends acf9b3a68b

Change-Id: Ida3b219818f89ec6eba2c2d92c5db65ad56bc5a4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-03-19 12:52:49 +00:00
Fan PengCheng 57c737f325 Merge "Improve the sample code" 2021-03-19 12:10:46 +00:00
Laszlo Agocs 19384f2e8f rhi: Make it possible to clone a QRhiRenderPassDescriptor
Pick-to: 6.1
Task-number: QTBUG-91888
Change-Id: Ib6d2e639e6c24f3e9a733c6563dc8a6d6da47719
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-03-19 10:46:23 +00:00
Fan PengCheng 7b62b846ae Improve the sample code
maybe you forgot this line

Change-Id: I1f5abd08023bd344e5bb2bf811b6195cbcf61dff
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2021-03-19 17:54:34 +08:00
Christian Ehrlicher e4bd73dc54 QSql/MariaDB/MySQL: use utf-8 as encoding for username and password
The mariadb driver sets the encoding for the connection to utf-8 but
only after the username and password was already set. Therefore
non-ascii characters were not correctly encoded when the local character
set was not the default one from the database.
Move mysql_set_character_set() above the username/password setting and
encode all as utf-8 instead local8Bit.

Fixes: QTBUG-55444
Change-Id: Iff7ee24159d54b578cd854e620aa814d72da3801
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2021-03-19 09:11:38 +00:00
Thiago Macieira 969337bcfd QHostAddress: prepare moving NetworkLayerProtocol from QAbstractSocket
This can only be completed in Qt 7, due to BC guarantees. I've only
updated the source code for QHostAddress and its unit test and even then
I did not touch the documentation. This needs to be completed in Qt 7.0

Change-Id: I26b8286f61534f88b649fffd166b695882f8f3b5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-03-18 19:54:01 -08:00
Thiago Macieira 8614491aa1 QAbstractSocket: fake a bind(QHostAddress::SpecialAddress)
Because this is misleading:

  socket.bind(QHostAddress::AnyIPv4);

The conversion of enum to int has preference over the construction of
QHostAddress from enum, so that ends up calling bind(6), which attempts
to bind to privileged port 6 and just returns with error. Meanwhile,

  socket.bind(QHostAddress::AnyIPv4, 0);

does construct the QHostAddress because that is preferred to converting
the int to the BindMode enum.

Ideally we'd simply add the overload to QAbstractSocket but we can't do
that because QHostAddress depends on QAbstractSocket. So I've added a
Qt7 task to invert that dependency.

Change-Id: I26b8286f61534f88b649fffd166b683266597796
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-03-18 19:53:56 -08:00
Volker Hilsheimer 180f78d126 QDial: use qRound to round
The calculation rounds early and often, which is intentional. Add
unit test to make sure we don't regress.

Fixes static analzyer report about incorrect rounding in
c903a34347776fe3b89785faa35c446d.

Address some outdated comments and documentation. The property
is read only and calculated, so don't imply that it can be changed
from its default value.

Change-Id: If2dbd9890e533dfccda3eae4cbc96db4f1246f4d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2021-03-18 22:34:13 +01:00
Robert Löhning 2b9bc46670 Merge "QAsn1Element: Avoid overflow in QAsn1Element::toInteger" 2021-03-18 21:04:48 +00:00
Eirik Aavitsland 6194b2e58a Merge "Triangulator: Ensure all members are initialized" 2021-03-18 20:38:55 +00:00
Robert Löhning 11a3eab1e1 QAsn1Element: Avoid overflow in QAsn1Element::toInteger
Fixes oss-fuzz issue 29534.

Pick-to: 5.15 6.0 6.1
Change-Id: I51d0b8238c73e5860c40d3b74577ddb8926647a3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-03-18 17:00:33 +01:00
Eirik Aavitsland 1cbd5fbf74 Triangulator: Ensure all members are initialized
Increases robustness and fixes a number of static analysis reports.

Change-Id: I2062e3fbb69a78831ef8c937e36cb318abf3529e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-18 16:26:42 +01:00
Edward Welbourne b6544dc36c QTzTimeZonePrivate: provide correct data for before the first transition
We previously used the data for after the first transition; but the
Olson database knows about local mean time for each zone, and it does
get used by the system libraries, so systemZone will conflict with
LocalTime once we use the time_t functions outside their 32-bit range
(coming shortly). Record the pre-zone data during parsing and use it
in the (fortunately only one) place that needs it.

Discovered the issue in the course of debugging other issues while
purging QDateTime of its wilful ignorance of pre-1970 DST.

Change-Id: Icf957460fa3ccbaf5165e79f38ac68b450ecf98f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-18 15:31:06 +01:00
Volker Hilsheimer eb3395328a Merge "Don't combine enum values from different enum types" 2021-03-18 13:52:55 +00:00
Andreas Buhr 8ae3191757 Merge "Add documentation on how to write a value to a bindable property" 2021-03-18 13:40:36 +00:00
Laszlo Agocs e933df8ce4 Merge "rhi: Make unreleased resource warnings available in release builds" 2021-03-18 11:55:43 +00:00
Andy Shaw 4c6949d655 Merge "macOS: Don't draw scrollbar handle when there is no range" 2021-03-18 11:18:00 +00:00
Andreas Buhr 48a77e0961 Add documentation on how to write a value to a bindable property
Writing a value to a bindable property is a surprisingly dangerous
operation. This patch adds a section to the documentation
describing the pitfalls which exist when writing bindable properties.

Task-number: QTBUG-90511
Change-Id: I73fea40756a1495d272bc46a7a51776ebcb07ea7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-03-18 11:53:18 +01:00
Volker Hilsheimer 20639d565b Don't combine enum values from different enum types
Address static analyzer warning dceb66e05690ed1fb2f1455a9eb517f6.

C++20 is deprecating arithmetic operations between unrelated enumeration
types, and not all of the enums involved here are clearly bitmasks.

Pick-to: 6.1
Change-Id: I61c9dcdc42ccd2b01a6208e067d216107672cc4d
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-18 11:46:02 +01:00
Laszlo Agocs 8a0dd61911 rhi: Make unreleased resource warnings available in release builds
...but tie to an environment variable still.

When destroying a QRhi object, it has the ability to print warnings for
each QRhiResource that got created from the QRhi and is still alive.
This includes only QRhiResources that own native objects underneath.

It can be handy to enable this in release builds as well. Therefore,
make this possible by setting QT_RHI_LEAK_CHECK=1. In debug builds this
continues to be always on.

Pick-to: 6.1
Change-Id: I5283676594284fadf2adf4f123b4fc6adb6db1f7
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-03-18 10:05:47 +01:00
Andy Shaw aac33296e6 macOS: Don't draw scrollbar handle when there is no range
If the minimum and maximum is set to be the same then we should not
draw the handle. An empty groove should be shown instead.

Pick-to: 6.1 6.0 5.15
Change-Id: Ie79f55cd761f9a8f614967c40c23a7f59e700a0f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-18 08:35:54 +00:00
Timur Pocheptsov b4f3c5d646 Stop using QSslConfigurationPrivate inside the plugin code
It was reasonable while backends were a part of QtNetwork.
Now if moving them outside (or just trying to implement
a new backend as a plugin), accessing data-members of
QSslConfigurationPrivate means that any plugin knows
about memory layout actual only for the version of Qt
it was built with/for. Instead, we have to use the
public class. Since it does not have all needed setters
and some data-members have no access at all, we
provide an API in QTlsBackend (which stays a part
of QtNetwork) that knows the actual memory layout.

Task-number: QTBUG-65922
Change-Id: I5ca1de4f982b4b11d9a87c4b40413367dcb83c16
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 31cc0df7607a4d5887812c304aac0001c2cd7705)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2021-03-18 07:10:51 +00:00
Giuseppe D'Angelo 2409e9b2c7 QPainterPath: plug memory leak
The copy operations didn't take into account the recent upgrade
to QESDP, just reimplement them idiomatically and thus avoid a leak.

Change-Id: I796c02b7d7835cfecd8e097c9979a6d431ee3f07
Fixes: QTBUG-91916
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-17 21:37:53 +01:00
Volker Hilsheimer 48ce0bed62 Merge "QSqlError: protect against self-assignment" 2021-03-17 19:51:49 +00:00
Timur Pocheptsov fc52acf621 Merge "Convert QSslSocket(Backend)Private into plugin" 2021-03-17 18:26:54 +00:00
Volker Hilsheimer 872f3fffbf QSqlError: protect against self-assignment
Address static analyzer warning 6eb3060fd64e459b6cd5586dc561e0ba.

Also make assignment from a moved-from object safe.

Task-number: QTBUG-91912
Change-Id: I732dc244ac0c731a02d85e88023dbd952b9eb112
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2021-03-17 17:22:08 +01:00
Sona Kurazyan 659f7a06e9 Remove the unnecessary template parameter from the class specialization
This seems to cause errors when compiling with gcc-11. Although this is
most likely a compiler bug, specifiying the template parameter type in
this case isn't necessary.

Fixes: QTBUG-91909
Fixes: QTBUG-90568
Pick-to: 6.0 6.1 5.15
Change-Id: Ib231257ccb2e16cc533f23ca5840d31e26a66d53
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-03-17 16:38:36 +01:00
Timur Pocheptsov b477d823ad Convert QSslSocket(Backend)Private into plugin
All backend-specific code is now separated and removed
from QSslSocket(Private) code. The original code is mostly
preserved to avoid (as much as possible) regressions (and
to simplify code-review).

Fixes: QTBUG-91173
Task-number: QTBUG-65922
Change-Id: I3ac4ba35d952162c8d6dc62d747cbd62dca0ef78
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit 9391ba55149336c395b866b24dc9b844334d50da)
2021-03-17 16:25:37 +01:00
Alexey Edelev fac23d695f Merge "Rework the failure macros in the Qt CTest kit" 2021-03-17 15:15:38 +00:00
Alexey Edelev e6a0b26729 Merge "Unify QLibraryInfo settings" 2021-03-17 13:06:37 +00:00
Alexey Edelev fec5b8e81c Rework the failure macros in the Qt CTest kit
The _qt_internal_test_expect_fail macro fails when the test fails
during the configuration step. Rename this macro to
_qt_internal_test_expect_build_fail and add
the _qt_internal_test_expect_fail macro that expects inverted test
result.

Change-Id: I4635e99152f7a32f5c48202e84fec59800453d34
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-17 13:34:39 +01:00
Robert Löhning 35ca446e3b Merge "Fix compiler warnings in 32-bit builds" 2021-03-17 11:52:42 +00:00
Alexey Edelev 6fb569af95 Unify QLibraryInfo settings
Exporting QLibraryInfo internals allows to reuse settings in
qmake/qtpath without having to keep its own instance.
Also there is no need to check setting groups in QLibraryInfo
except the 'Paths' group, since this logic belongs to qmake/qtpaths
only.

Change-Id: If762defba025ad7f7489f8a86ef5768a8628bd2f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-17 11:57:11 +01:00
Joerg Bornemann a423c0d211 Merge "Fix installation of Find*.cmake files in shadow per-repo builds" 2021-03-17 10:39:14 +00:00
Kai Köhne 8dac535a87 Merge "MSVC: Build harfbuzz with -Zc:__cplusplus -permissive-" 2021-03-17 10:12:10 +00:00
Robert Löhning bc5fecf948 Fix compiler warnings in 32-bit builds
comparison of integers of different signs: 'unsigned int'
and 'qsizetype' (aka 'int') [-Wsign-compare]

Pick-to: 6.1
Change-Id: Ia27f79ab4abca8b757b65ef5f1d30151842088fe
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2021-03-17 09:12:05 +00:00
Joerg Bornemann 7b4507d0be Fix qmake user projects for QT_LIBINFIX builds on Windows/iOS
QMake user projects could not be built on Windows or iOS if Qt was
configured with QT_LIBINFIX set. The code that generates
qt_lib_entrypoint_private.pri file did not take into account the lib
infix.

Pick-to: 6.1 6.0
Fixes: QTBUG-91511
Change-Id: Ibc40548a269238320f8f89a710d10e7f639246cb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-17 09:04:56 +01:00
Kai Köhne 78fee50e53 MSVC: Build harfbuzz with -Zc:__cplusplus -permissive-
harfbuzz includes QtCore/qatomic.h. But the Qt headers are expected
to be compiled with -Zc:__cplusplus.

Change-Id: I28847844e9a00f2b7c84f0d5d7d3257eb22e2e8e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-17 07:59:35 +00:00
Thiago Macieira ae9e433753 Remove unnecessary int() casting in QRandomGenerator::bounded
Commit 21d3916817 added the 64-bit
version, so qsizetype now works cross-platform. The casts were added to
make qtbase compile on commit df853fed66.

Change-Id: I26b8286f61534f88b649fffd166c409c5c232230
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-03-17 06:21:52 +00:00
Oliver Eftevaag 57f752b30a Add nullptr check
Adding a nullptr check before dereferencing in case q is null.

Pick-to: 6.0 6.1
Change-Id: Ia440e2ed41cbaf06a5919930c2e1615bb3916ff3
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-16 18:44:17 +01:00
Sona Kurazyan 2eec7db03d Merge "Mention QPromise in the QFuture docs" 2021-03-16 17:03:59 +00:00
Niclas Rosenvik a03d0ba208 Merge "Enable X11 on other platforms than just Linux" 2021-03-16 15:54:26 +00:00
Morten Johan Sørvig c48a5b2458 Merge "Round physical dpi when calculating scale factor" 2021-03-16 15:24:31 +00:00
Topi Reinio bddad0079f Merge "Doc: Fix various documentation issues" 2021-03-16 15:03:27 +00:00
Sona Kurazyan 0477f6b15a Mention QPromise in the QFuture docs
Pick-to: 6.1 6.0
Change-Id: I5f6930116da534dd1dea41c4724c42104de38877
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-03-16 15:40:52 +01:00
Edward Welbourne d0bf7f471b Merge "Use QFile directly instead of via QTextStream" 2021-03-16 13:12:40 +00:00
Niclas Rosenvik 05e4c8f2e9 Enable X11 on other platforms than just Linux
Set CMake variable X11_SUPPORTED for all systems that have X11.
Adjust _adjust_library_map() in util/cmake/helper.py to apply X11_SUPPORTED
condition around X11 related packages instead of just LINUX.
Adjust configure.cmake in src/gui based on this change.
Why, because X11 is not just Linux.

Change-Id: Ic3c04eaa55301d1237c7e74281eccd4f8e27e9ce
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-16 13:05:17 +00:00
Topi Reinio 00e10f62b5 Doc: Fix various documentation issues
- Document QIODeviceBase
- Document QPointerEvent::points
- Fix linking issues

Task-number: QTBUG-90662
Change-Id: Ib123d5708953b22e01f95c82626b39a49fff95b2
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
2021-03-16 13:17:39 +01:00
Morten Johan Sørvig ad10fd2a6f Round physical dpi when calculating scale factor
(For the QT_USE_PHYSICAL_DPI use case)

The physical DPI is nominally computed from the physical
screen size, however when QT_USE_PHYSICAL_DPI is set
that size has typically been overridden with a fake
size by the user, such that the resulting DPI calculation
will yield some specific integer DPI.

Round this DPI value in order to arrive at a nice scale
factor, e.g. 144/96 = 1.5 instead of 144.01/96 = 1.5001

Change-Id: I665394e98a818b3a8f46408f3193cac4411f458d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-16 13:11:06 +01:00
Laszlo Agocs 0bd705d91b Merge "rhi: metal: Remove most availability guards" 2021-03-16 11:00:36 +00:00
Edward Welbourne eefaf54d9e Use QFile directly instead of via QTextStream
Follows up on a TODO comment that says QTextStream is less efficient.
In any case, QFile has readLine() returning QByteArray, without
conversion to QString, and the parsing is uncomplicated.

Change-Id: I06e563df417692d3b6514a52a313a0ff55b0b52e
Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-16 11:50:51 +01:00
Edward Welbourne 17bf553b76 Include minus sign in ImhFormattedNumbersOnly's available keys
UIKeyboardTypeDecimalPad only provides digits and decimal point, no
minus sign, but ImhFormattedNumbersOnly is documented to provide a
minus sign as well. UIKeyboardTypeNumbersAndPunctuation includes
punctuation, which should cover signs as well as decimal separator, so
use that - same as for ImhPreferNumbers. A little more permissive than
we want here, but that's better than more restrictive !

Fixes: QTBUG-91455
Pick-to: 6.1 6.0 5.15
Change-Id: I0418946014e0a66d503e61704154fd7798a0b785
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-16 11:50:24 +01:00
Laszlo Agocs a668bc29bb rhi: metal: Remove most availability guards
Once the deployment target is bumped to 13.0, most guards
can be removed.

Pick-to: 6.1
Change-Id: I7566a4f2915ada9defa1a4bcee10f75021222b30
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-16 09:52:59 +01:00
Eirik Aavitsland 9fa181446c Minor robustness improvement of text code
Fix a potential issue reported by static analysis

Change-Id: I41b8eaa3c0840eec054e880c4f3298ee32685b46
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2021-03-16 08:47:57 +01:00
Morten Johan Sørvig 68e69588e0 Merge "Add auto-test for QT_USE_PHYSICAL_DPI" 2021-03-15 15:54:49 +00:00
Volker Hilsheimer 8962fed044 Merge "Port from QScopedPointer to std::unique_ptr" 2021-03-15 14:50:32 +00:00
Zhang Hao 42b0052d97 Merge "Code tidies" 2021-03-15 12:54:05 +00:00
Morten Johan Sørvig 657284acbc Don’t store screen scale factors in GLOBAL_STATIC
Use a normal static variable, like the other high-dpi
variables.

Clear the stored factors in initHighDpiScaling(). This
makes auto-testing possible where the application object
is recreated for each test case and should start with
a clean slate.

Change-Id: I1831c856b5d7a2c522e62c7ed0657da771c3144f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-15 11:49:52 +01:00
Morten Johan Sørvig 4d1f13f354 Read high-dpi env. variables in initHighDpiScaling()
Move all environment access to initHighDpiScaling(),
which makes it so that all environment access happens
at one point in time during QGuiApplication construction.

Replace the “qt.scaling” logging category with “qt.highdpi”,
and log each recognized env. variable. Further logging
of DPI and computed scale factors will be introduced
later on.

This also enables auto-testing of the environment variable
settings, since the auto-test can now control when the
environment is read by (re-)creating the application
object.

Change-Id: I4e62a9c0050438357a58ace5b50fb7c5950c87ce
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-15 11:49:48 +01:00
Volker Hilsheimer 45b7af038f Port from QScopedPointer to std::unique_ptr
Silence compiler warnings from deprecated QScopedPointer::swap after
fe9d7bf759.

For Qt 7, both QSslCipher and QNetworkAddressEntry should be made into
implicitly shared classes.

Change-Id: Idfd5ec4b5a0f156f212d57684822a3cd1d88de1a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-03-15 11:35:43 +01:00
Zhang Hao a59ab30122 Code tidies
Delete the conditional judgment that must be established

Change-Id: I3bd94ca7b3862ab7c46370d98bf7e6cf8c040853
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2021-03-15 17:26:37 +08:00
Martin Storsjö 1ac2e85025 qtpaths: Fix cross compilation for windows
The cmake target may not be named "qtpaths", but one should be using
${target_name} instead. If cross compiling, and
QT_BUILD_TOOLS_WHEN_CROSSCOMPILING isn't set, the tool won't be built
at all and there's no such target to set properties on, and if it
isn't set, the target name is something else.

Change-Id: I3d904036106b38df6e56ad35d400cf9a0bb1cbdf
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-15 10:30:18 +02:00
Thiago Macieira 420755edb7 QRandomGenerator: remove dead code previously used by qrand()
Commit 9ee554ac1d removed qrand() and
qsrand(), so commit 81896304dc removed the
functions accessing QRandEngine, but forgot to remove the actual engine.

Pick-to: 6.1
Change-Id: I26b8286f61534f88b649fffd166c41aecf55d2b1
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-14 23:07:24 +00:00
Giuseppe D'Angelo 4f4d7de499 QSslError: port to unique_ptr
So to avoid QScopedPointer::swap deprecation. Side note,
QSslError is not implictly shared (although it should be, but
that's a job for Qt 7).

Change-Id: I42f7abffa81d72aac5af157074a0c3cbd20ba253
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-14 18:28:39 +01:00
Peng Wenhao faa6f19b2a make qmljsDebugargumentsstring() and forceOpen() const
Guessing the const specifier was accidentally forgotten

Signed-off-by: Peng Wenhao <pengwenhao@uniontech.com>
Change-Id: I611acc8d67d3eb101df9c8d816dd5779241a79f8
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2021-03-13 20:47:50 +08:00
Alexey Edelev b0680cf5b1 Merge "Move qtpaths from qttools repository to qtbase" 2021-03-12 14:55:30 +00:00
Eskil Abrahamsen Blomfeldt 26e639b4f5 Merge "Fix QVulkanWindow on Wayland" 2021-03-12 14:11:03 +00:00
Morten Johan Sørvig ba74953f4f Merge "Remove “scaling” logging from QBackingStore" 2021-03-12 13:40:13 +00:00
Elvis Lee db0cd4c3d0 Merge "Support additional gbm surface flags" 2021-03-12 12:26:13 +00:00
Alexey Edelev 933343b16d Move qtpaths from qttools repository to qtbase
qtpath should replicate the functionality of 'qmake -query'. Also we
want this tool to be available in builds without qttools.

Task-number: QTBUG-75870
Change-Id: I6578fc4fc45dd940fd353a5cfe6db0a12744230a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-12 13:20:04 +01:00
Eirik Aavitsland f0862c08f1 Merge "Avoid undefined color values in corrupt xpm image" 2021-03-12 11:41:26 +00:00
Eskil Abrahamsen Blomfeldt be14adfdc8 Fix QVulkanWindow on Wayland
The Wayland backend needs 4 buffers and is failing when
making QVulkanWindow since there was a hardcoded limit at
3.

The Vulkan-backend to RHI already has smarter handling of
this. We want to limit the changes we do to the "legacy"
QVulkanWindow, so we keep the hardcoded max value but
increase it to 4 to accommodate the requirements on
Wayland.

Task-number: QTBUG-91418
Change-Id: I830bc30d1c2eeac1b076c50d35d5d138fd46dace
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2021-03-12 12:36:48 +01:00
Morten Johan Sørvig fd27fcf185 Remove “scaling” logging from QBackingStore
Prepare for renaming the logging category.

Change-Id: I1fefefa510032ca70754fde9d80f9ac35ffa977b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-12 11:58:58 +01:00
Elvis Lee a77ca7c9c4 Support additional gbm surface flags
Some vendor requires more gbm surface flags for specific purpose,
such as protected content.

Change-Id: Ie7db337e05f941b5480ffaccf61fbc94eb989ffc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-12 10:10:41 +00:00
Eirik Aavitsland f651e6a26c Avoid undefined color values in corrupt xpm image
Issue reported by Codechecker.

Pick-to: 6.1 6.0 5.15 5.12
Change-Id: I1a5aa2203fb31e0ce3b630a11e450925aee81fb0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2021-03-12 10:01:27 +01:00
Andrei Golubev f226854d25 Fix QMultiHash::count(key) crash
As QMultiHash uses a pointer for the data, nullptr dereference is a
thing, so check for valid d before doing anything in count()

Fixes: QTBUG-91704
Pick-to: 6.0 6.1
Change-Id: Ia20440cd7bdc03cb09c77f796fb9c5b52765eac5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-12 08:38:42 +01:00
Tang Haixiang ae88dea1be Merge "Add setting the ICON size attribute in lineedit to the style plugin" 2021-03-12 02:49:27 +00:00
Aleix Pol 0a77920e56 Merge "Remove unnecessary class member" 2021-03-12 01:20:47 +00:00
Tang Haixiang 24226bb5f5 Add setting the ICON size attribute in lineedit to the style plugin
When the font is large enough, using PM_SmallIconSize will get a large
lineedit,but the icon is very small. This is very unsightly, and the
style plug-in hopes to be able to define the size of the icon by itself.

Change-Id: I0e35b331301472541d3378e748dbcd074d5419a2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-12 08:39:04 +08:00
Aleix Pol 23db5ed0b3 Remove unnecessary class member
It's never used or accessed. It's not part of exported API.

Change-Id: Ie60a560fb6f1315a53442f3c067363e651b80768
Reviewed-by: David Edmundson <davidedmundson@kde.org>
2021-03-12 00:12:01 +01:00
Volker Hilsheimer 674747bac1 Revert "QPushButton: fix support of style sheet rule for text alignment"
This reverts commit 6269438af9, and adds a test.

This change introduced QTBUG-91735, without fixing QTBUG-86857 correctly. The
code already interprets the textAlignment values from the rule, also if no
icon is set. Adding the same, or some default textAlignment to the text flags
if there is no icon doesn't work.

Fixes: QTBUG-91735
Task-number: QTBUG-86857
Pick-to: 6.1 6.0 5.15
Change-Id: Iee07e63a40e72909275f32e1caa28b33a595f879
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2021-03-11 22:30:22 +01:00
Tang Peng dbdde8d023 Merge "Remove unreachable code" 2021-03-11 21:10:33 +00:00
Thiago Macieira 2851edc027 Merge "Futex/Windows: add support for notifying TSan" 2021-03-11 20:34:00 +00:00
Fabian Kosmale fb7bad01fe Merge "QObject: remove QAbstractDeclarativeData::parentChanged" 2021-03-11 18:03:39 +00:00
Thiago Macieira d424ccdb77 Futex/Windows: add support for notifying TSan
The code was already there, just only implemented for Linux.

Change-Id: Ib709fc1585f647a98d54fffd16663881b6d24d6f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2021-03-11 17:42:35 +01:00
Tang Peng b5615d3921 Remove unreachable code
Having a `break` after a `return` is pointless as it's never reached.

Change-Id: I30877e926c006fac45681f547e97a55410f02e43
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-03-11 16:11:00 +00:00
Alex Trotsenko 6bd6151329 QProcess/Win: implement async closing of write channel
Instead of blocking in QProcessPrivate::closeWriteChannel(), we can
handle a pending close in _q_canWrite() slot when there is no more
data to write.

Change-Id: I2a30789b6099a2ec075292348ebe33a11341bca3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2021-03-11 16:05:40 +02:00
Paul Wicking 5fa8f5df7b Doc: Change section titles that cause bad links
Section titles are valid targets for QDoc's autolinker. When
they are identical to other valid link targets, such as for
example a class, these sections may cause invalid links.

Pick-to: 6.0 6.1
Fixes: QTBUG-91141
Change-Id: Ie9a6258d2bf83932335976d8c0b5fc59f2028ae5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2021-03-11 15:01:35 +01:00
Paul Wicking b42df9756a Doc: Add hyperlink to relevant section
Pick-to: 6.0 6.1
Fixes: QTBUG-91734
Change-Id: I3910c7fcf1625ad08a65e691a8eaf9ed6b61779a
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-03-11 15:01:33 +01:00
Fabian Kosmale e8b7e4e96a QObject: remove QAbstractDeclarativeData::parentChanged
The code in qtdeclarative did not do anything at all anymore.

Change-Id: Idd97145cb74aeb4f43dfce2f282a765e90945073
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-03-11 14:53:26 +01:00
Mårten Nordheim d76c0e3224 Merge "QEventDispatcher(Win): Always honor interrupted status to avoid races" 2021-03-11 13:31:17 +00:00
Eskil Abrahamsen Blomfeldt 3102d611bd Merge "Support family names that end/start with space" 2021-03-11 13:09:00 +00:00
Laszlo Agocs aa9b4bd01e Merge "rhi: metal: Stop using BufferOp for no good reason" 2021-03-11 11:33:53 +00:00
Mårten Nordheim f274f91ceb QEventDispatcher(Win): Always honor interrupted status to avoid races
There may be a race where e.g. thread 'B' is woken up by a queued invoke.
At the same time thread 'A' asks 'B' to quit, which will set various
atomics (some important ones are 'interrupt' in the dispatcher and
'exit' in the event loop), but it does _not_ try to send another wake
since there is already an unhandled wake triggered by 'B' itself.
Sadly 'B' reads the 'exit' atomic before 'A' updates it.
Then, slightly before, 'B' sets 'interrupt' back to 0, 'A' write 1 to
it, meaning 'A's interrupt is ignored. Then, since there is no
interrupt, 'B' goes back to waiting for events, leaving the thread alive
and running instead of quitting.

Maybe this has unforeseen consequences (one consequence is that it will
return and re-enter the event dispatcher once more, possible
unnecessarily)

Fixes: QTBUG-91539
Pick-to: 6.1 6.0 5.15
Change-Id: Ie6f861f42ffddf4817d5c8af2d764abe9d9103c2
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-11 12:11:18 +01:00
Zhang Yong 02bc441553 The conditional statement is missing parentheses
Add a ')' to the judgment statement.

Change-Id: Iadfdfb7643bc5224cb3029a2abb42c3c14982eef
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2021-03-11 19:10:07 +08:00
Eskil Abrahamsen Blomfeldt 7fd9ed3201 Support family names that end/start with space
If the family name starts or ends with a space in the actual font
data, then this would not be selectable by Qt. This is because we trim
the family name before matching it against the contents of the database.

Testing on Windows GDI, it actually does trim the spaces on the
family names (matching a request for "Chibola" with a font called
"Chibola " for instance), but since we read the font data ourselves,
we are not doing this.

To ensure we never have font names that cannot be matched in the
database, we make sure we trim the family names before registering
them.

[ChangeLog][QtGui][Text] Fixed matching against fonts which has a
family name that ends or starts with a space.

Task-number: QTBUG-79140
Pick-to: 6.1
Pick-to: 6.0
Pick-to: 5.15
Change-Id: I9cdb50b78a7da2d2697f992ce462033eb1d7ada7
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2021-03-11 11:55:46 +01:00
Laszlo Agocs adf6ba7eae rhi: metal: Stop using BufferOp for no good reason
Do what the Vulkan backend does, and just take the offset
and the QRhiBufferData. There is no reason to store a full
QRhiResourceUpdateBatchPrivate::BufferOp struct within the
backend.

Change-Id: I67528029de40320b3e4f031346d40dfc0bb9ab52
Pick-to: 6.1 6.0
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-03-11 10:17:13 +01:00
Laszlo Agocs 0c6375a346 rhi: metal: Skip unnecessary writes when updating the entire buffer
Follow the similar Vulkan change in 20eb40bce9
and drop the queued up buffer data for a given slot when the current update
covers the entire buffer. This is relevant in particular for Qt Quick 3D
where such dynamic buffer changes are common.

Change-Id: If1e70d78968586b552a5357bc97af10cc61d9611
Pick-to: 6.1 6.0
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-03-11 10:17:00 +01:00
Joerg Bornemann a21fe37c72 Remove now unneeded QT_BOOTSTRAPPED check from qlibraryinfo.cpp
Since qmake links against QtCore, we don't need to check for the
bootstrapping case in qlibraryinfo.cpp anymore.

Change-Id: I644b1e71db727773b3e32ac650481df134acf033
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-03-11 10:00:24 +01:00
Joerg Bornemann e158d699e0 Remove all qmake-related data from q[make]config.cpp
Now that we're not actually using qmakeconfig.cpp anymore, we can remove
it together with all qmake-related information that was written into
qconfig.cpp.

This also moves the qtConfEntries array back to qlibraryinfo.cpp.

Change-Id: I5e57d8c55613332cc3e57b11df4398d46aed259b
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-11 10:00:18 +01:00
Joerg Bornemann a08b1f6359 Read QLibraryInfo paths directly from QLibraryInfo and not from qmakeconfig.cpp
Change-Id: I1db1c871ec6b4e572bd36df6aff7a5be8a4a706c
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-11 10:00:01 +01:00
Joerg Bornemann c651e7ba18 Do not write Sysroot and SysrootifyPrefix into qmakeconfig.cpp
Those have fixed values.

Change-Id: I7f1ba8036f43413d3c805f4b419ae79e037343fb
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-11 09:59:51 +01:00
Joerg Bornemann 17055f5f48 Remove the platformsSection constant from qconfig.cpp.in
This is not configurable and doesn't have to be in the generated
q[make]config.cpp files.

Change-Id: If294d735800a3b5c6b3e269abdd86df401cf4864
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-11 09:59:27 +01:00
Yang Yuyin 2a9c93a348 QIcon::setIsMask: delete extra judgment
QIcon::detach can judgment if the d pointer is nullptr

Pick-to: 6.1
Change-Id: I90fd5f50ed2565a5654b978c4603635e62677953
Reviewed-by: David Skoland <david.skoland@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2021-03-11 16:58:45 +08:00
Laszlo Agocs dd7087342d rhi: metal: Avoid unused argument warning on iOS
Change-Id: I4cb729f3d8dbe7703b89153b742ce2874f35cfd2
Pick-to: 6.1 6.0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-10 16:21:03 +01:00
Laszlo Agocs 83fb8fe208 rhi: metal: Use the layer as the single source of truth
...when it comes to the output size.

This mirrors what all other backends do. For example, with Vulkan
the only source of size is the surface (VkSurfaceKHR), never the
QWindow, even though we'd expect that the surface size equals
to window_size * dpr, and that's almost always true, but there
are exceptions. (e.g. we have seen bugs on Windows with some drivers
in high DPI situations where the Vulkan surface did not fully match
the window size, yet it is the surface, and only the surface, that
matters for rendering, i.e. viewports and such must match the surface,
not the native window)

With Metal we hit a similar problem on iOS: the QWindow's size*dpr
and what we calculate from the CAMetalLayer have a height difference
of 1.

Mitigate this by making QRhiSwapChain::surfacePixelSize() and the
calculation for currentPixelSize() done via the same route (the
CAMetalLayer). Otherwise, if there is a mismatch between what the
QWindow and the layer says, Qt Quick will think that there is a
resize happening (has happened) whenever starting a new frame, and that
has far reaching consequences (suboptimal performance, increased
memory usage by buffers, etc.)

Change-Id: I114df92bf35622c99f2747420fdce401db7705a6
Pick-to: 6.1 6.0
Fixes: QTBUG-91438
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-10 16:20:53 +01:00
Piotr Mikolajczyk e6ca200a3a Android: Fix constant resize of a large TextEdit on click
If there is a large (3/5 of the screen in portrait or 2/3
in landscape) TextEdit on the screen, and it gets focus
on click, it will be shrank to fit the screen. Next click on this
TextEdit will restore its normal height, the next will shrink.

Pick-to: 5.15
Fixes: QTBUG-91056
Change-Id: I3dbf085cbfdc2739d537a304c16e28c58a6e01ce
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2021-03-10 13:11:33 +01:00
Topi Reinio 4916255445 Doc: Fix warnings on qproperty.cpp
Task-number: QTBUG-90662
Change-Id: I91f8b83c68c3692dc620063c93be9ddea64685a6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-03-10 08:11:04 +01:00
Zhang Yong 1df915ee1d QtGlobal docs: code tidies
Reformat a couple of examples correctly.

Change-Id: I2f0897267b4e3c4d7d2925f2d20cc45687278b0b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2021-03-10 01:42:44 +00:00
David Faure 1d567eb63d Merge "QConcatenateTablesProxyModel: skip dataChanged in hidden columns" 2021-03-09 15:32:01 +00:00
Thiago Macieira 35e9c21793 Merge "QProcess/Unix: add a RAII class to hold the argv and envp pointers" 2021-03-09 14:55:58 +00:00
Laszlo Agocs b33462614f Merge "rhi: gl: Fix missing uniform data with certain command lists" 2021-03-09 13:45:23 +00:00
Elvis Lee b34462c840 Merge "Support EGL protected content extension" 2021-03-09 13:25:00 +00:00
David Faure f6efbd23b5 QConcatenateTablesProxyModel: skip dataChanged in hidden columns
When the source models don't have the same number of columns, the proxy
keeps only the smallest number of columns across all source models.
Afterwards, if a source model emits dataChanged in a column past
that number (a "hidden" column), the proxy needs to ignore it rather than
assert.
But also, if the source model emits a dataChanged signal across both
visible and hidden columns, then the last column number needs to be
adjusted so that the signal is correctly processed and forwarded.

Task-number: QTBUG-91253
Pick-to: 6.1 6.0 5.15
Change-Id: I939e8ec0faf41370472f86785851292e4372f72c
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2021-03-09 13:39:45 +01:00
Thiago Macieira c452a040d3 QProcess/Unix: add a RAII class to hold the argv and envp pointers
Instead of having so much manual pointer manipulation and duplicated
code.

Change-Id: Ic90d8429a0eb4837971dfffd1664f8f63753440a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2021-03-09 12:22:12 +00:00
Laszlo Agocs 80029e0ca6 rhi: gl: Fix missing uniform data with certain command lists
Following patterns from the other backends is insufficient with OpenGL
because we do not use real uniform buffers. There is currently a
possibility that a shader program will be bound without following it
with setting uniforms. Correct this by having a second level of tracking
of the associated srb object in the pipelines.

Pick-to: 6.0 6.1
Fixes: QTBUG-91630
Change-Id: I74a012daade826dd22c436bde06381c1233bad11
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2021-03-09 12:00:48 +01:00
Elvis Lee 7a68aa6fc7 Support EGL protected content extension
A protected context is required to allow the GPU
to operate on protected resources, including protected
surfaces and protected EGLImages.

For example, GPU can post-process on protected content
like DRM protected content so that complex, nonlinear
video effects or mapping onto textures can be used.

The surface format option may be relevant for DirectX
and Vulkan in the future:

  https://microsoft.github.io/DirectX-Specs/d3d/ProtectedResources.html
  https://www.khronos.org/registry/vulkan/specs/1.1-khr-extensions/html/chap12.html#memory-protected-memory

Change-Id: I2d155f0e68b830276690b4833b22a2bc452cdcad
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2021-03-09 11:58:12 +01:00
Eskil Abrahamsen Blomfeldt 642ed84a2d wayland: Remove bogus warning about ignoring WAYLAND_DISPLAY
On Gnome, we will not default to Wayland at the moment, even
if the desktop is run in Wayland mode. In this case, we warn
users that they can still select Wayland manually using
QT_QPA_PLATFORM.

Problem was: We never checked if they had actually explicitly
selected Wayland, so even in the cases where we would end up
using that QPA plugin, people would still see the warning.

This moves the check to the end of the platform selection
algorithm, after we have collected all the information.

Pick-to: 6.0 6.1
Change-Id: I0d734bd0782c5e58d6dc63f69b7d531a479ad942
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-09 11:05:52 +01:00
Dong Rui bac4495619 Delete duplicate condition in QComboBox::setPlaceholderText
There is a duplicate condition judgment in QComboBox::setPlaceholderText, just delete it.

Change-Id: I570415c5930372866f290216a89260353d3992b7
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2021-03-09 13:20:53 +08:00
JiDe Zhang bc1f61d010 Update documents of QLocale::Country
Quoting from https://en.wikipedia.org/wiki/ISO_3166:
"ISO 3166 is a standard published by the International
Organization for Standardization (ISO) that defines
codes for the names of countries, dependent territories,
special areas of geographical interest, and their
principal subdivisions (e.g., provinces or states).
The official name of the standard is Codes for the
representation of names of countries and their subdivisions."

In order to prevent the word "Country" from causing ambiguity, the
document should clearly state that this enumeration refers to a country
or region.

Change-Id: I05543faa4193b3ddaf31d02c670b4b5f46e94389
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-03-09 09:09:51 +08:00
Shawn Rutledge 065fd12f2d Merge "xcb: use QXcbScrollingDevice for a touchpad" 2021-03-08 22:23:17 +00:00
Shawn Rutledge f85e70c569 xcb: use QXcbScrollingDevice for a touchpad
When using XQuartz on macOS, the virtual pointer device is detected as
a touchpad, not a mouse; but QXcbConnection::xi2HandleScrollEvent()
expects the device to be an instance of QXcbScrollingDevice for storage
of some state. A touchpad that has the scrolling capability must be
that type, not a plain QPointingDevice.

Fixes: QTBUG-91402
Pick-to: 6.1
Change-Id: I1b82766d4a3f87f656e56c0d8904def26fb0979a
Reviewed-by: Liang Qi <liang.qi@qt.io>
2021-03-08 20:24:51 +00:00
Jan Grulich acaabc9108 FileChooser portal: send window id in hex
We send window id in decimal, however, it is expected to be send in hex.
This causes a mismatch and makes portal dialog to show in background.

Pick-to: 5.15 6.0 6.1
Change-Id: Ibd77199bbb4a2ad4782a0457ddc5506c6b5608fe
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-03-08 20:05:19 +01:00
Qiang Li d2d957ff67 Merge "Fix the crashes when animated QTreeWidgetItems are hidden" 2021-03-08 14:38:56 +00:00
Qiang Li f140ef04a0 Fix the crashes when animated QTreeWidgetItems are hidden
QTreeView's drawTree implementation performs lazy layouting
when calling itemDecorationAt. If animations are enabled,
this can change the list of items, and invalidate the copy
made earlier.

Don't copy the list of items, use a reference instead so that
code iterating over the items later operates on valid data.

Add an assert in the private itemHeight method, it must not
be called with an index that is out of bounds.

Fixes: QTBUG-42469
Pick-to: 6.0 6.1 5.15
Change-Id: Ifdb782881447912e00baffd1c407de10a1d8d0d4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-08 12:31:13 +00:00
Christian Ehrlicher 1df974590f QSql/MariaDB/MySQL: misc cleanup
Cleanup the mariadb driver a little bit:
 - use nullptr instead NULL
 - use unsigned long instead int for blob handling now that QByteArray
   can handle more than 2^31 bytes

Change-Id: I79639a42a739aabdf776cc688cb5d664248aa610
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2021-03-08 12:44:40 +01:00
Morten Johan Sørvig 6e899f8e8c Merge "Add deviceIndependentSize() to QPixmap and QImage" 2021-03-08 10:52:24 +00:00
Morten Johan Sørvig 1471f2ae09 Add deviceIndependentSize() to QPixmap and QImage
This function returns the size in device independent
pixels, and should be used when calculating user
interface sizes.


Change-Id: I528123f962595a3da42438ca560289a29aca4917
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-03-08 08:27:41 +00:00
Piotr Mikolajczyk bacf9cd04c Android: Add grabWindow handling
Draws to a pixmap contents of the requested window. On Android it works
only for QtWidgets application.

Qml application contents could not be grabbed due to lack of access to
the contents of OpenGL framebuffer from QAndroidPlatformScreen

Fixes: QTBUG-63275
Pick-to: 5.15
Change-Id: Ief7de1b709387d798138387bb735f4b48cf2928d
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2021-03-08 08:00:18 +00:00
Nick Shaforostoff 4f37cf2ce5 string 16<->8 bits conversion: SIMD on arm32
this adds emulation for 2 NEON commands that armv7 lacks
this increases conversion speed by around 50% in my simple tests

Change-Id: I4f52d353184e9a8d88089de60e17bd5670637c0c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2021-03-08 00:31:23 +01:00
Thiago Macieira d58d0bb970 Merge "QNetworkInterface/Unix: fix DNS eligibility of global addresses" 2021-03-06 00:05:35 +00:00
Thiago Macieira 83876c0256 QNetworkInterface/Unix: fix DNS eligibility of global addresses
[ChangeLog][QtNetwork][QNetworkInterface] Fixed the reporting the "DNS
eligibility" factor (QNetworkAddressEntry::dnsEligibility) for global IP
addresses. Previously, QNetworkInterface interface erroneously reported
all global addresses as eligible, regardless of whether they had already
been deprecated by the OS or were temporary in the first place.

From the tst_QNetworkInterface::dump output (netmask & broadcast
suppressed for readability, IPv6 prefixes changed to protect the
innocent, but the local part is exactly as found on my system):

   address  0: 192.168.26.33/24  dns-eligible preferred:33546998ms valid:33546998ms
   address  1: 2001:db8::800/128  dns-eligible preferred:264817000ms valid:264817000ms
   address  2: fd00::800/128  dns-eligible preferred:forever valid:forever
   address  3: 2001:db8::2f5b:342c:fc53:b9b2/64  dns-ineligible preferred:12422000ms valid:264817000ms
   address  4: fd00::9351:adff:333d:5c8d/64  dns-ineligible preferred:12421999ms valid:531402999ms
   address  5: fd00::7297:9516:fbb4:17ac/64  dns-ineligible preferred:0ms valid:445585999ms
   address  6: fd00::fdc8:e620:691:3b44/64  dns-eligible preferred:forever valid:forever
   address  7: 2001:db8::ae82:a01:5a8a:e210/64  dns-ineligible preferred:0ms valid:264816999ms
   address  8: 2001:db8::c673:e0a2:8927:2118/64  dns-eligible preferred:264816999ms valid:264816999ms
   address  9: fe80::bd89:b998:4aeb:a5d0%bond0/64  dns-ineligible preferred:forever valid:forever

Prior to this commit, only address 9 was showing as ineligible.

Addresses 1 and 2 come from DHCPv6 and are thus always eligible.
Addresses 3, 4, 5, and 7 are temporary addresses added on account of
RFC 4941 and are therefore ineligible (they have the IFA_F_TEMPORARY
flag set). Note how 5 and 7 have also stopped being preferred. Address 3
is the one I see when I go to ip6.me and address 4 is the one used to
reach the router.

Addresses 6, 8, and 9 are the "permanent" addresses that would normally
be based on the MAC address of the interface, but are actually in
"stable privacy" mode for me (RFC 8064). Address 9 is the link-local
one, which makes it ineligible, leaving the other two stable addresses
eligible.

Addresses 1, 3, 7, and 8 are global, from a DHCPv6-PD delegation from my
ISP, which is why they have finite lifetime. Addresses 2, 4, 5, and 6
are from my local Unique Local Address (ULA) prefix, which is why 2 and
6 are valid forever.

Pick-to: 6.1
Change-Id: If8b43dc9678c4b4ba9c1fffd1668fdcae873c6bd
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-03-05 13:56:31 -08:00
Timur Pocheptsov 734ab493f7 Fix a BIC introduced by extending the namespace QSsl in _p.h files
Renamed the private part of the namespace to QTlsPrivate.

Fixes: QTBUG-91531
Change-Id: Id2d9c458d8d958b35e437eee42889177dad0a7a7
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit e4efa00c72c7011f4e5c27722c2a522b30274610)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2021-03-05 20:50:02 +00:00
Andreas Buhr b2c96423bb Merge "Add documentation for Q_OBJECT_BINDABLE_PROPERTY" 2021-03-05 18:51:54 +00:00
Allan Sandfeld Jensen d9da78b620 Merge "Add ARM version of the "AES" qhash algorithm" 2021-03-05 18:45:55 +00:00
Fabian Kosmale 9e6ad5dc22 Merge "qtypeinfo: make variable templates inline" 2021-03-05 17:18:47 +00:00
Øystein Heskestad de658d8ca5 Merge "Make qdecompresshelper archive bomb check only trigger for large files" 2021-03-05 16:32:49 +00:00
Allan Sandfeld Jensen ecf84e0989 Add ARM version of the "AES" qhash algorithm
Change-Id: Ia2c20e970a0149efb7665a5690538f83965e7be7
Reviewed-by: Erik Verbruggen <erik.verbruggen@me.com>
2021-03-05 18:31:27 +02:00