Commit Graph

58363 Commits

Author SHA1 Message Date
Alexey Edelev
bcd08f86da Check if configure-time executable need to be recompiled
Respect source files that belong to configure-time executable when
reconfiguring Qt.

Amends: ac74b60c9c

Task-number: QTBUG-87480
Change-Id: I7e42ffe8b1b79686c0cf93a02101f0b8e6be0bea
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-09-28 21:47:14 +02:00
Edward Welbourne
fdd1d54bc4 Add missing include to syncqt/main.cpp
I got build-time errors for memcpy() not being declared, that
helpfully told me to #include <cstring> to get it.

Change-Id: I6ae9e881e5accf496e9c3694ca43701972d64722
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-09-28 21:47:14 +02:00
Christian Ehrlicher
91374bb632 QODBC: correctly fill cache when index() is called
QODBCResult::isNull() incorrectly checked for the validity of the
internal row cache which lead to wrong results when the requested
column was not yet cached.

Pick-to: 6.4 6.2 5.15
Change-Id: Ic7dcc2117e6f05b63c83f21c6a84ba7e0bda2b2d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-09-28 18:40:38 +00:00
Fabian Kosmale
a0dfa8c4d2 Replace qExchange calls with std::exchange
qExchange is one of the few remaining functionalities that have not been
moved out of qglobal. Given that std::exchange exists in the standard, we
can simply move to it everywhere...

...if it weren't for the fact that std::exchange is only constexpr in
C++20, and only has its noexceptness specified in (most likely) C++23.
Still, we want to move to the existing std functionality where
possible, to allow the removal of qglobal includes in lieu of something
more fine-grained in the future.
So leave any constexpr calls[1] alone for now (and observe that none of
our current usages cares about the conditional noexceptness), but
replace everything else.

[1] QScopedValueRollback' ctor and QExplicitlySharedDataPointerV2::take

Task-number: QTBUG-99313
Change-Id: I599cb9846cf319c7ffd3457130938347a75aad25
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-28 17:39:21 +00:00
Joerg Bornemann
d06d22fbc0 Remove outdated configure note about setting OpenSSL library names
The mentioned variable in the configure note is qmake only and not used
anymore.  Also, it seems pointless to show such a note on successful
configuration.

FindOpenSSL.cmake of CMake already takes care of library names of
different OpenSSL installations.

Task-number: QTBUG-93948
Change-Id: I5994df231ed4fd664f6ab17b983e88c744feb21a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-09-28 17:03:17 +02:00
hjk
062f6cba79 Avoid detaching in QBasicTimer
Amends da12a40b8b

Change-Id: I2a9e46844a88f7ee239c7306abca3d2c8f7b53d9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2022-09-28 17:03:17 +02:00
Mårten Nordheim
a6e8ee141d qHash: Add seed argument for classes inheriting QString
Pre-requisite for a fix for qHash. The classes inherits from QString
and after the upcoming fix their single-arg qHash overload is no longer
preferred since we want to use a seed. This has been the case since
Qt 5.

Pick-to: 6.2 6.4
Change-Id: I6e8601ab8d591742e2399d10521dec8cfa46f71a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-28 17:03:17 +02:00
Mate Barany
6a581bc89e rcc: Drop extra QString()
Addressing a comment from the review of QTBUG-98434.
Drop the exta QString() call, it is unnecessary.

Task-number: QTBUG-103100
Change-Id: I5a13deb5d3c52166919302bc4bb45bd0b6b5c770
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-09-28 16:13:51 +02:00
Mate Barany
18ecd62aaa windeployqt: Use default constructor of QString and then append
Addressing a comment from the review of QTBUG-98434.

Instead of assigning an initial value to the QString, create an empty
QString first and then append to the QString.

Task-number: QTBUG-103100
Change-Id: I8f2569ac2a2203e6459bbc7df789c9ef34f598d0
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-09-28 16:13:51 +02:00
Mate Barany
3d9013c5f9 windeployqt: Fix mismatches between string types and literals
Addressing some comments from the review of QTBUG-98434.

Fix the mismatches between string types and string literals.

Task-number: QTBUG-103100
Change-Id: Id619d7b99b9133c983f31ec5a5c2d9cc9d927416
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-09-28 16:13:51 +02:00
Kai Koehne
a51e7876b8 Revert "Keep original text for text/plain mime data"
This also affects things like line breaks, effectively preventing the paste of copied text to non-Qt applications.

This reverts commit 17eb0f2d8a.

[ChangeLog][QtGui][Drag&Drop] The fix to preserve special characters
like &nbsp; the text/plain part of the clipboard when copied from
a QTextEdit or QLineEdit had to be reverted (QTBUG-107004).

Pick-to: 6.4
Fixes: QTBUG-107004
Change-Id: Ia226f38f31a368c381910e1d43b6422395a5744f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2022-09-28 14:13:51 +00:00
Edward Welbourne
e8892e83d3 Tidy up day-of-week checks in QDateTimeParser
Simplified a return.
Corrected a comment.

Change-Id: I6b7f99b741ac5c1c8ddfad608843db3e89c20346
Reviewed-by: Mate Barany <mate.barany@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-28 15:30:39 +02:00
Alexey Edelev
915fb2f573 Move kernel/qwineventnotifier.h to a common header list
Consider the original behavior.

Ammends b89d63515b

Task-number: QTBUG-103196
Change-Id: Ib3ad4bb040ece6680fd659c36418855fe823ea18
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-09-28 14:50:23 +02:00
Joerg Bornemann
fad4bcad5e windeployqt: Prepend Qt's bin dir to PATH instead of appending
The fix for QTBUG-39177 was to append Qt's bin dir to PATH.  But if we
have a Qt bin dir in PATH that is different from the one windeployqt
belongs to, then we end up calling qtpaths from the former Qt.

Change-Id: I373a3270d1ec950479049b4cdaf0ff13dd8813c7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2022-09-28 09:51:47 +02:00
Joerg Bornemann
38ca72ab5e windeployqt: Fix PATH manipulation code for non-Windows platforms
Use QDir::listSeparator() for additional entries in PATH instead of the
hard-coded semicolon.  This is a preparation for running windeployqt on
non-Windows platforms.

Change-Id: I84f1da130508da7a0f3190d811acf35477564bf7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2022-09-28 09:51:43 +02:00
Joerg Bornemann
ea92137e76 CMake: Fix HostData qmake property for cross builds
The target_qt.conf file contained a wrong HostData value if the
effective data dirs were set to paths of different levels in the host
and target Qt builds.  Fix this by computing the relative path from the
mkspec dir's parent to the ext prefix' data dir.

Note that qmake's HostData dir is the root directory of the mkspecs
directory.

Pick-to: 6.4
Task-number: QTBUG-106712
Change-Id: Id8c9de925f5ff51901677b7218621747169a5cec
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-09-28 09:48:20 +02:00
David Skoland
c3730ffa92 wasm: enable QT_BUILD_MINIMAL_STATIC_TESTS by default
Wasm doesn't play well with these baseline tests in general,
so we can disable them for now.

Pick-to: 6.4
Change-Id: I5a66a932449c8934d88b94e419aae5ddcc89ee78
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-09-28 09:48:06 +02:00
Lorn Potter
2efd2f490c wasm: allow useCredentials access control to be set
Introduce UseCredentialsAttribute that indicates whether
the underlying fetch/XMLHttpRequest should use credentials
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

Fixes: QTBUG-90893
Change-Id: I2c43e286db52df387c0a22737d027b9a2a8dd2d3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-09-28 11:34:00 +10:00
Fabian Kosmale
77646f668d Q(Basic)Atomic: remove QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
The define has always been set, so we can simplify all the code that
checked for it.

Change-Id: I9133ba95dbd6e1da465ade1d1306310bd3fb9a45
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-09-28 01:23:31 +02:00
Fabian Kosmale
c5b816393d Get rid of bootstrapped atomics
C++11 atomics should be available everywhere, even it bootstrapped
builds. This will allow further simplificattions.

Task-number: QTBUG-103847
Change-Id: Ic8aaec5667ef7616a6aa1f0dfc2f64d327308501
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-28 01:23:31 +02:00
Thiago Macieira
7d7d4671bd Logging: remove const from the lambda calling dladdr
In some OSes, the function takes a plain void*.

Pick-to: 6.4
Fixes: QTBUG-106980
Change-Id: I810d70e579eb4e2c8e45fffd1718bdaf94d8ac0e
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-09-27 16:19:27 -07:00
Mårten Nordheim
7fea2d34fb Update tst_bench_qhash hash functions to use size_t
Pre-requisite for a fix for qHash. The Qt50String inherits from QString
and becomes ambiguous once it no longer goes through a catch-all
template function because qHash(QString, size_t) has a better match for
the second argument.

Pick-to: 6.2 6.4
Change-Id: I23c7afb1b3aa167d40dc4838e82b7763de015f6b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-27 23:30:30 +02:00
Samuel Gaist
6457f1ee71 examples: port dbus examples to new connection style
Task-number: QTBUG-106893
Change-Id: Ic857f694b836fba30e41ef0a40107917bd05b64c
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-09-27 19:29:59 +00:00
Mikolaj Boc
93f15f81c6 Add missing GL includes in WASM compositor
IDEs (vscode) have problems with missing includes.

Change-Id: I2618aaaf79c81a2c3566682e13caf31133ece631
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-09-27 20:59:21 +02:00
Martin Storsjö
c36412603d QPluginLoader: Fix the expected machine word for Windows on ARM
This fixes loading plugins on Windows on ARM
since 892d5607d0.

IMAGE_FILE_MACHINE_ARM was used for older Windows targets on ARM,
in particular Windows CE.

Pick-to: 6.4 6.3
Change-Id: I61ef7a6b5920af9192c55209f2641a6c469ad1d2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-09-27 21:59:21 +03:00
Arno Rehn
7a7051b58f QMetaType: Support custom unary converters with optional<To> return type
To indicate success of a conversion, the public API has previously only
supported registering member functions of the form To (From::*)(bool *).
When adding custom converters for types that cannot be modified, this is
usually not a possibility.
As an alternative, this patch adds support for std::optional in the
UnaryFunction overload of QMetaType::registerConverter. If the returned
optional has no value, the conversion is considered failed.

Task-number: QTBUG-92902
Change-Id: Ibac52d2cb9b5a2457081b4bebb0def1f03e3c55d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-09-27 20:59:21 +02:00
Lucie Gérard
38f8d531a2 Apply fixes for SPDX compliance and easier parsing
Task-number: QTBUG-106233
Change-Id: Ic636bcfc7d5efcf23c67482beebe2fff1f184073
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-09-27 20:38:14 +02:00
Mate Barany
9d6d836871 QtWidgets: Use the default constructor of QString and append
Addressing a comment from the review of QTBUG-98434: instead of the
QL1S constructor use the default constructor and append "Path: "_L1.

With the QL1S constructor capacity == size == rhs.capacity and the
very next append is guaranteed to reallocate. In the other case the
capacity will grow according to the growth strategy.

Task-number: QTBUG-103100
Change-Id: Ifcc1c22a59739c6384b363471dbb27d6a978e306
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-09-27 20:38:13 +02:00
Eirik Aavitsland
df0b70eece StyleSheetStyle: Fix color of placeholder texts in text edits
Prior to 5.12, the placeholder text color was hardcoded to be the same
as the text color, but with an alpha of 128, i.e. semi-transparent. In
5.12, it instead got its own ColorRole in QPalette. So behavior
changed (In some cases in 5.12 and later, consistently from Qt 6):
placeholder texts no longer got a "light" (semi-transparent) version
of the css-styled color, but just the default gray/semi-transparent
black. That problem was reported as QTBUG-89815. However, the fix for
that bug did not apply the semi-transparency, but only used the same
color as the text. That caused a confusing visual expression, as
actual and placeholder text would look the same. This commit fixes
that.

The problem was made worse since there is no way to specify the
placeholder text color from css, i.e. to style it independently. A
follow up commit will aim to add that.

Fixes: QTBUG-92199
Task-number: QTBUG-93009
Pick-to: 6.4 6.2 5.15
Change-Id: I9e6698d34eba91cbf65c4da07aa5ac6d9f96a9ed
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-09-27 20:22:02 +02:00
Jan Grulich
491dc83bbf QCryptographicHash: only use OpenSSL 3.0 when OpenSSL will be linked
OpenSSL by default doesn't provide static libraries and we would fail to
build it in such case.

Fixes: QTBUG-106978
Change-Id: I456fe9bec2bbef5003de8f6cb7d9d8bb226821f9
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-09-27 14:03:35 +02:00
Morten Sørvig
6b6aeef217 wasm: add Window.localStorage settings backend
Window.localStorage provides a synchronous API for storing
saving data across browsing sessions, and is a good match
for QSettings. Storage is limited to 5MB per origin, which
should be sufficient for typical application settings.

Window.localStorage is shared by all pages/apps on the
origin (e.g. "https://qt.io" is one origin), which makes
key collisions possible. To avoid this the key structure
is "qt-v0-org-app-userkey", where both the organization
and application name is used to differentiate between
keys, and "v0" is a version tag to allow changing the
key structure in the future. We reserve the "qt" prefix
for keys written by QSettings.

Add the new implementation as QWasmLocalStorageSettingsPrivate,
rename the existing settings backend to QWasmIDBSettingsPrivate.

Make QSettingsPrivate::create() support backend selection using
the QSettings::Format enum. It now also supports selecting the
Ini backend, which can be used to store larger amounts of settings,
for example to a file on IDBFS. (alternatively IDBSettings +
asyncify could also be used for this case)

Change-Id: If70aa488635018218bc2a19803c4a719732c0004
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
Reviewed-by: David Skoland <david.skoland@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-09-27 14:03:13 +02:00
Alexey Edelev
b89d63515b Replace the syncqt.pl script with syncqt tool
syncqt.pl adds an extra dependency on perl when building Qt. Modern C++
provides the convenient cross-platform way to access a filesystem and
to use regular expressions, so we may replace the perl script with C++
application. The syncqt executable is built at configure time and
installed as QtCore tool. It's running at configure time to deliver the
required header files for IDE to build a consistent code model and at
the build time to keep tracking changes in header files and generate
the missing aliases without reconfiguring. 'syncqt' only parses header
files from a CMake build tree, so the resulting Qt installation only
contains interfacing headers that belong to the platform that Qt is
built for. 'sync.profile' files are not used as the 'source of truth'
for sync qt procedure anymore, all the necessary information is taken
from either CMake files at configure time or from the module header
files while parsing them.

syncqt.pl is still in place since it's required as fallback solution
for a smooth transition to the new syncqt implementation for all qt
repositories.

This patchset only enables the C++ based syncqt for 'qtbase'
repository.

From the performance perspective C++ version works faster then perl
script, also the configure time is reduced significally on subsequent
reconfigurations - up x2 times faster when re-configuring repository,
but it also takes time to compile the tool itself the first time.
Numbers for qtbase:
           syncqt.pl  syncqt.cpp
 initial:  0m16,035s  0m20,413s
 reconfig: 0m6,819s   0m3,725s

The syncing procedure can be run separately for each module using
<ModuleName>_sync_headers targets. The 'sync_headers' target can be
used to sync all the modules at once.

Task-number: QTBUG-87480
Task-number: QTBUG-103196
Change-Id: I8c938bcaf88a8713b39bbfd66d9e7ef12b2c3523
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-09-27 13:12:11 +02:00
Eirik Aavitsland
458ec4cb54 Fix setScaledClipRect autotest for reading SVG format
Since setScaledClipRect will actually render only the necessary parts,
there may be insignificant differences in rounding/anitaliasing
compared to rendering the whole image first and then clipping.

Hence this autotest case would always fail. But that would not happen
in CI, since it tests qtbase without the qtsvg module, and then the
SVG tests are skipped. (For some reason, one ran into this in wayland
testing and made an exception for that, but obviously this failure has
nothing to do with wayland).

Work around the issue by converting the rendered images to 4 bpc
format, so the differences in the least significant bits get truncated
away.

Fixes: QTBUG-100917
Task-number: QTBUG-81044
Pick-to: 6.4
Change-Id: I1c14e98af22d0ae22a751960b69e692c7a38399b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2022-09-27 13:12:11 +02:00
Samuel Mira
413593183b Android: Fix Display.getRealMetrics deprecation
In latest Android versions some functions related with Display metrics
were deprecated. This patch changes some instances of that code to use
the Resources.getDisplayMetrics or WindowManager.getMaximumWindowMetrics
depending on the situation.

Fixes: QTBUG-99543
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: Id9846efa877f704ef7f58c1b0820ad1527b53f09
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-09-27 14:12:11 +03:00
Fabian Kosmale
2eb37e76f4 qassert.h: Include qtcoreexports.h
Else we cannot use Q_CORE_EXPORT

Change-Id: I2ccb6a6a9abeaad1de8d541224e055f524d6d07b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-27 13:12:11 +02:00
Fabian Kosmale
12ea707a89 qtdeprecationmarkers.h: include qcompilerdetection.h
Without it, we do not have Q_DECL_DEPRECATED

Change-Id: I6b16176446027e0f7da923f16971e903aacc80d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-27 13:12:11 +02:00
Ville Voutilainen
e08f05ac6e QDebug: Support standard strings and string views directly
[ChangeLog][QtCore][QDebug] QDebug now supports printing
std::strings and std::string_views (and their wide, u16, and
u32 variants) directly.

Task-number: QTBUG-96878
Change-Id: I7baf4fe688bfff50580b1cee9417af13949374cc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-27 14:12:11 +03:00
Mate Barany
9a23a3d1b4 QtWidgets: Use remove instead of replace
This commit addresses on of the comments from the review of QTBUG-98434.

Use remove instead of replace to delete from the string.

Task-number: QTBUG-103100
Change-Id: Ifa00a9bae24767eb42d6fa5da0ffdbaa230d5d96
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-09-27 10:02:55 +02:00
Yuhang Zhao
16573d6896 CMake: make long line shorter when configure
The full name should obviously indicates what the feature is, no need to specify LTO explicitly. And it also make the line a little longer than it should be. But we should keep LTCG (Link Time Code Generation) in case the user don't know LTCG also refers to this feature.

Change-Id: I95a2e5335d0b76c40c67f0484d77a4d50f5fd85f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-09-27 09:36:08 +08:00
Alexey Edelev
24f68a0deb Fix condition that runs the scanning of the Qml imports
Scanning of the Qml imports should be run if either Qml root paths or
.qrc files are specified for androiddeployqt.

Task-number: QTBUG-106939
Pick-to: 6.2 6.4
Change-Id: I3229ec6d3f2ac17ef751b4a6ed74e8e98db7465e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-09-27 02:50:24 +02:00
Fabian Kosmale
5222df2be7 moc: Add basic support for nested inline namespaces
This improves moc's support for nested inline namespaces, so that code
containing them will not break compilation.
For simplicity, we allow nested inline namespaces even in C++17 mode
(the actual C++ compiler will reject the code anyway, and probably with
a better error message than moc could output).
moc still has no real awareness how inline namespaces work, but that is
a preexisting issue.

Pick-to: 6.4 6.2
Fixes: QTBUG-106920
Change-Id: I7b415a99133575f101bc81d01d4670a5f752917f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-26 21:14:39 +02:00
Edward Welbourne
9527581239 Include QVariantPair in documentation of QMetaType::Type
When it was added, along with the type it describes, it wasn't added
to the QDoc-only fake version of Type's declaration, or to the \enum's
list of \value entries. There being no clear reason for those
omissions, I'm presuming to guess they were just an oversight.

This amends commit c7ce1bc05c which was
included in Qt 6.0.0.

Pick-to: 6.2 6.4
Change-Id: I1bf9fe0f0a31219a888666550a197e479d8eadc1
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-26 15:27:11 +00:00
Edward Welbourne
2155066548 Clear two pointless entries from the QDoc-only QMetaType::Type
The real Type has several "administrative" members beside LastCoreType
and LastGuiType, but only these two appear in the qdoc-only fake
version of Type, only to be \omitvalue'd out in the docs. Save the
perpetual "need" to keep updating them with each new addition (they
weren't even in sync with the real versions anyway) by removing them.

Change-Id: If7c5da87655a2da5c7f29f394c9dd9921ff0c1a7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-26 17:27:03 +02:00
Jan Grulich
633c136596 QCryptographicHash: implement OpenSSL 3.0 support
Use OpenSSL 3.0 as a provider of all hashing algorithms, except the
BLAKE2b and BLAKE2s. BLAKE2b and BLAKE2s algorithms support a variable
length digest, but OpenSSL's implementation outputs only a digest of a
fixed length (the maximum length supported). This is 512-bits for the
BLAKE2b and 256-bits for the BLAKE2s and for that reason we still use
the original implementation.

[ChangeLog][QtCore][QCryptographicHash] Uses the OpenSSL 3.0
implementation now, where available.

Change-Id: Ia4e4139b92ea9b40a18aa480aa5c06562178f916
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-09-26 17:26:37 +02:00
Edward Welbourne
256fbdeedd Mark QTimeZone's copy-constructor noexcept
This appears to have been overlooked. It's just the copy-construction
of a QSharedDataPointer, which is declared noexcept, so transparently
safe.

Change-Id: I85e1f750be26dfa94d52dfc0b14efe9c1857d645
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-26 17:02:13 +02:00
Assam Boudjelthia
14278bb250 Android: Update version names on QSysInfo and QOperatingSystemVersion
Add latest versions that were missing in QOperatingSystemVersion and
the version names used with QSysInfo::prettyProductName().

Change-Id: I933158898f9ec39f1c224e15fd6456b7e0546a67
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
2022-09-26 18:02:13 +03:00
Mate Barany
9ff87af7af QtWidgets: Use C string literals as keys
Addressing a comment from the review of QTBUG-98434. QSettings has been
already ported to use QAnyStringView keys so use C literals to call
beginGroup, setValue and value.

Since the constructor of QSettings does not have an overload for
latin1 strings, change the calls to use u""_s instead of _L1.

Task-number: QTBUG-103100
Change-Id: I9407ac8cf9d4c6f045a774b2abe7541086401b07
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-09-26 17:00:30 +02:00
Marc Mutz
fb9213e640 qCompress: use saturation, not truncation, for the size header
This provides a better size hint than the pseudo-random mod 4GiB
number used before. In particular, it will make the Qt 5
implementation fail fast, because UINT_MAX will be recognized as a
non-representable size right away.

Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-104972
Change-Id: I6010f558eb71bbf02fb0f71bee1b3b1a15ec6e3f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-09-26 17:00:30 +02:00
Marc Mutz
98d9cfabc1 qCompress: return null, not empty, for OOM
While this is a behavior change, we never documented that we'd return
an empty instead of a null QByteArray in this situation. Indeed,
returning bazip, with its fully-preserved capacity, is an expensive
way of signalling an error condition.

Conclude that this is not what the original author wanted and return a
default-constructed byte array instead, leaving bazip and its excess
capacity to be destroyed before the return from the function.

Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-104972
Task-number: QTBUG-106542
Change-Id: I2ee1fc6fdbb9da28f1987b16915516b51bb348c3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-09-26 15:00:29 +00:00
Jan Arve Sæther
305d164508 Update url to IAccessible2 Specification
(The old one was 404 page not found)

Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I06818443a1f89709b749ea66c05b4023e33b15d0
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2022-09-26 15:31:59 +02:00