[qt/qt/qtbase]: Summary of bulk changes made

KDE Git Services - Bulk Change <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/qt/qtbase
Pushed by mirror-service into branch 'dev'.
Changed from 2f627140125a0c74441c2d2829403f55928ed298 to 42fbb3b5c3d46423a4e956501cbfce0fb5b641b1
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit 6701459a70e1b38dcab064bcced92d47a6dc6da8 by Oliver Wolff (on behalf of Wladimir Leuschner) on 29/07/2026 at 14:57..
QWindows11Style: Honor custom text color in palette for TabBarTabLabel

Custom text color set in a palette was not honored in the
QWindows11Style for the CE_TabBarTabLabel, this patch checks, if a
custom color was set in the palette and uses the custom color instead of
the WinUI3 colors.

Fixes: QTBUG-148548
Pick-to: 6.12 6.11
Change-Id: Ifacf17217eb4f6b8ad04b59d112069cfd8148659
Reviewed-by: Oliver Wolff <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/6701459a70e1b38dcab064bcced92d47a6dc6da8

Git commit 755c15466ab9fda2c26ce1a7834db4cfc86e3142 by Laszlo Agocs on 29/07/2026 at 14:57..
rhi: Fix out-of-bounds read when loading a corrupt pipeline cache blob

The OpenGL and D3D11 backends serialize their own list of entries into
the pipeline cache blob and walk it again in setPipelineCacheData(),
trusting the entry count and the per-entry length prefixes while
validating only the total size. A truncated or crafted blob therefore
read past the end of the data, with the over-read bytes ending up in the
cache, and with OpenGL also handed to glProgramBinary() later on.

Add a bounds-checked reader and use it in both backends, ignoring the
blob on the first inconsistency, just like for a version mismatch.

Also evaluate the blob size check in 64-bit so that
dataOffset + header.dataSize does not overflow on 32 bit archs. That
change is relevant for the Vulkan and Metal backends as well.

Add some autotests.

Pick-to: 6.12
Change-Id: I49a23e76a3b5a1b0c361e690c92e762d74acef6c
Reviewed-by: Andy Nichols <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/755c15466ab9fda2c26ce1a7834db4cfc86e3142

Git commit 75b63ca7a139c63d3adfc556f8b619ac9bfeed41 by Laszlo Agocs on 29/07/2026 at 14:57..
rhi: Handle theoretical image size overflows better

Calculate with 64 bit integers, where applicable, checking
if the result fits into the target (signed or unsigned) 32-bit
value. Theoretical for well-formed content since we do not
support > 4 GB (sometimes 2 GB) content anyway. Relevant
for malformed input, however.

Pick-to: 6.12
Change-Id: I5a04979177e2d69a5fada99ee3066fad5d8bfba5
Reviewed-by: Andy Nichols <[email protected]>
Reviewed-by: Aurélien Brooke <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/75b63ca7a139c63d3adfc556f8b619ac9bfeed41

Git commit 74001befc56be623681de16a3e09c5f121ab7386 by SanthoshKumar Selvaraj on 29/07/2026 at 14:57..
ohos: Rename convertToOhosAppKitWantInfo to convertToOhosExtrasWantInfo

The module rename from QtOhosAppKit to QtHarmonyExtras missed this
helper function, leaving "AppKit" reference in the renamed module.

Amends patch 9ffa885ca65783e1e4b6b34f39bcae45665d033c.

Task-number: QTBUG-148587
Pick-to: 6.12
Change-Id: Ic7d90f3431c7a7edcb1ab6df3251932ec29b3cd8
Reviewed-by: Tor Arne Vestbø <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/74001befc56be623681de16a3e09c5f121ab7386

Git commit dc6d2c96c741e99a3cd28fe23f6b35369885e3a0 by Oliver Wolff (on behalf of Morteza Jamshidi) on 29/07/2026 at 14:57..
Windows QPA: Restore parent cursor after hiding a modal dialog

When a widget has a custom cursor (e.g. WaitCursor) and a modal dialog
is shown and then closed, the parent widget's cursor is not restored.

Fix by calling applyCursor() on the parent's platform window after
hiding a modal window. This bypasses the cursor change optimizations
that would otherwise skip the update.

Fixes: QTBUG-140455
Pick-to: 6.8 6.9 6.10 6.11 6.12
Change-Id: Ib93fe54c6e36bef6b2346434983c525f81b4de7c
Reviewed-by: Oliver Wolff <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/dc6d2c96c741e99a3cd28fe23f6b35369885e3a0

Git commit 73378b61dab8d9ddd6069a4a2d3a4c703cd8d26d by Oliver Wolff (on behalf of Morteza Jamshidi) on 29/07/2026 at 14:57..
Windows 11 style: do not round the corners of fullscreen windows

A fullscreen window with rounded corners does not cover the whole
screen. Set the corner preference to DWMWCP_DEFAULT when a window is
fullscreen and round the corners again when it leaves fullscreen.
Handle QEvent::WindowStateChange so the corners are also updated when
the window state changes after the window is shown.

Add an auto test that checks the corner preference of a fullscreen
window.

Fixes: QTBUG-147453
Pick-to: 6.11 6.12
Change-Id: I6a1fdeafb083b028a5750c6ee89871e0212535b4
Reviewed-by: Oliver Wolff <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/73378b61dab8d9ddd6069a4a2d3a4c703cd8d26d

Git commit 679cc6eea2a38121b88776102c222648795960bc by Assam Boudjelthia on 29/07/2026 at 16:54..
AndroidTestRunner: add tst_androidtestrunner

A Python orchestrator under tests/auto/util/androidtestrunner/
drives the host androidtestrunner against a testapp on a device.
The testapp builds as MANUAL so it is not a ctest entry itself.

CommandLineTests exercise the parser without a device:

- help and case sensitivity
- --apk and --aab conflicts
- bare CI -o forms
- --verbose
- --timeout (killing a hanging adb)
- value-taking option at end of argv ("Option --apk requires a value")
- manifest fallback discovery, explicit override, and non-existent path
- --bundletool path existence check
- --activity option is accepted
- INSTALL_ROOT scoping to the GNU-make family
- --skip-install-root override
- missing APK detection
- device discovery and serial-pin paths

DeviceRunTests run against a real device:

- scenario-controlled exits (pass / fail / skip / crash / qFatal)
- function and data-tag selection
- QT_ and QTEST_ env-var forwarding with spaces
- every -o output format
- ndk-stack symbolication with default and explicit --ndk-stack,
  missing path, non-zero exit, and non-executable file
- ANR detection
- AAB install + run
- per-serial QLockFile recovery and concurrent same-serial serialise
- --show-logcat
- --pre-test-adb-command
- SIGINT cleanup

The class auto-skips when no device is attached and tearDown
uninstalls the testapp. ANR and SIGINT cases poll dumpsys for
the foreground focus rather than relying on a fixed sleep, and
the concurrent lock test staggers the second runner via a
pre-test adb sleep so it is deterministically the one that waits.

fake_adb and fake_make context managers back the device-free tests.

Pick-to: 6.12
Task-number: QTBUG-146960
Change-Id: I80acd75d232696f9a68bd71a68ae96426446e791
Reviewed-by: Ville Voutilainen <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/679cc6eea2a38121b88776102c222648795960bc

Git commit 794dd25f82aad26395b65b8ddc0fd596cbf04fd3 by Edward Welbourne on 29/07/2026 at 16:54..
Align parsing of time-zone long forms with old parser

Amends commit 0923c473e20d66e0fb5e12a5fef7683bd979d120 (6.12).
I'd failed to notice that the old parser accepted the LocalTime name
supplied by the system (from tzname[] or equivalent) for the
full-length tttt zone format as well as the generic t format.
Tweak the parsing of the old Qt format strings to take that into
account.

Thanks to Albert Astals Cid for catching this with a KDE test.

Pick-to: 6.12
Change-Id: I701addce6ffdf8b0e96e5b90042fe0549d666702
Reviewed-by: Mate Barany <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/794dd25f82aad26395b65b8ddc0fd596cbf04fd3

Git commit e14f178a47fe7c6d3f932d0dce535138718cee45 by Edward Welbourne on 29/07/2026 at 16:54..
Simplify tst_QtParseTimeZone::prefix_data() with another lambda

For most zones tested, I'd followed a common pattern that could
sensibly be expressed (as Thiago pointed out in review) as a lambda
wrapping the zoneTests() one.

Pick-to: 6.12
Task-number: QTBUG-77948
Change-Id: I67f4079dbaff70a5558dedf813792820b3b13ce8
Reviewed-by: Mate Barany <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/e14f178a47fe7c6d3f932d0dce535138718cee45

Git commit 37bf3f6aa6a9a7404ac27187245907dd0e7f1882 by Edward Welbourne on 29/07/2026 at 16:54..
Replace IANA ID size constraint magic numbers with named constants

In the process rename one local variable, and change its start value,
to match the semantics of the natural name for its limit.

Pick-to: 6.12
Task-number: QTBUG-77948
Change-Id: I4ae1d47b2b0741cd313b8b5d70228082dbf273b3
Reviewed-by: Mate Barany <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/37bf3f6aa6a9a7404ac27187245907dd0e7f1882

Git commit 708074532841fd16291e69eedc016fb106c8d3a6 by Edward Welbourne on 29/07/2026 at 16:54..
Avoid overflow in QJalaliCalendar::dateToJulianDay()

If year is close to INT_MIN, subtracting 474 from it will underflow.
However, all we need is the quotient and remainder of the result of
that subtraction, which we can obtain without overflow by rearranging
the arithmetic. Credit to OSS-Fuzz (issue 522858568) for finding it.

The computation of c = qDiv<cycleYears>(y); and then subtracting c *
cycleYears from y was equivalent to computing qDivMod<cycleYears>(y)
and using its quotient and remainder. As y is just year minus an
offset, we can qDivMod<cycleYears>(year) directly and then adjust its
result by the relevant offset, transfering cycleYears from quotient to
remainder first if remainder was too low. Since the quotient's range
of possible values is well within that of int (by a factor of
cycleYears) its adjustment is in no danger of underflow; and
remainder's range is likewise safely in the range from zero to (just
before) cycleYears, so safe.

Add tests of QDateTime and the new temporal parser based on the fuzzer
test-data for the former that found this. The latter made the failure
reachable by supporting years with more than 4 digits, and is new in
6.12, so these tests won't work in older versions, but the overflow
fix is still valid there.

Pick-to: 6.12 6.11 6.8
Fixes: QTBUG-147419
Change-Id: Id9f7ce3d7bfa1b7c671a41fdbe9edcc236f17e58
Reviewed-by: Mate Barany <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/708074532841fd16291e69eedc016fb106c8d3a6

Git commit a286b5cf5dca804983d1cb3dc8281d4f80029fc5 by Marc Mutz (on behalf of Edward Welbourne) on 29/07/2026 at 16:54..
Fix some \deprecated docs to end in sentence-terminators

This is in preparation of an upcoming qdoc change that will turn
missing terminators into a warning, which would exceed configured
warning limits in qtbase.

Pick-to: 6.12 6.11 6.8 6.5
Change-Id: Ibdaf2bd617fd24d808956b2322be26b8e1bcda1c
Reviewed-by: Marc Mutz <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/a286b5cf5dca804983d1cb3dc8281d4f80029fc5

Git commit d7c6a9211c9c6f13f0b2b464f76367e99bb5a5a2 by Marc Mutz on 29/07/2026 at 17:29..
tst_QMetaType: check QMetaType().isSameType() everywhere

The old code only had is as a compile-time only check, guarded by some
#ifdefs which are clearly not met on all supported platforms.

Add the test also as a runtime test. For platforms where the
static_assert is seen, this might be removed as dead code by the
optimizer, but we have checked it at compile-time already. And for the
others, it will perform the check, albeit at runtime.

Amends b339cd0e7a4c4de44f237fec3670ae47b13bbdc2 (dev only).

Change-Id: I362a847e4d62cab715df7ad9f53e48b3fdeb187e
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/d7c6a9211c9c6f13f0b2b464f76367e99bb5a5a2

Git commit d5fbc540c9d5186fcaadf376455c0b439c887382 by Marc Mutz on 29/07/2026 at 17:29..
tst_QMetaType: unbreak ubsan build

Ubsan builds complained that QMetaType().isSameType<T>() wasn't a
constant expression for several types (even in C++2c builds). This is
a recurring problem: ubsan seems to insert checks that are not
constexpr'able; we have the same issue in tst_QByteArrayView, so apply
the same solution: remove the check for ubsan builds.

Amends b339cd0e7a4c4de44f237fec3670ae47b13bbdc2 (dev only).

Change-Id: I8c61bdeb4f759e42f6da3fef8d265224b379aadb
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/d5fbc540c9d5186fcaadf376455c0b439c887382

Git commit 42fbb3b5c3d46423a4e956501cbfce0fb5b641b1 by Marc Mutz on 29/07/2026 at 17:29..
QLocalTime: remove unneeded narrowing conversion

The old code first assigned epoch.remainder (a qint64 variable) to an
int variable, just to widen it again to qint64 for the call to
secondsAndMillisOverflow(). In particular, it Q_ASSERTed the range
_after_ narrowing, so potentially misses actual out-of-range cases.

Use auto to avoid the narrowing.

Amends b931688a1e52b9e9bdf3144d392e7ee29e8c3ead (6.4), AFACT.

Pick-to: 6.12 6.11 6.8 6.5
Change-Id: I582a0b557723b0f8d98868d6b26180d9c5407589
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/42fbb3b5c3d46423a4e956501cbfce0fb5b641b1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.