[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 cb00c5e3b9f849e3e7a59404bd8b633650427a99 to 139a7047a60df72ce8b5d89e3c66d0c710bbdf8e
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 b0b45eb9af80daff5a4a21f964f382863d149c1c by Edward Welbourne on 21/07/2026 at 08:01..
Search a bit harder for zones matching a long name when none match

A new update to Darwin retains enough support for CST6CDT (a legacy
abbreviation name; IANA is moving away from support for these) to let
us instantiate a QTimeZone from its name, but no zone named in the
NSTimeZone.knownTimeZoneNames list we use for availableTimeZoneIds()
gets the same generic es-MX name as it so we didn't parse it back from
its long-form name in a time-zone suffix of a timestamp. However, it
is an alias we know from our CLDR data, so searching the alias table
for names that do get accepted by the constructor (even though not
officially available) has a chance to match what its "available" form
might not (in this case, because the generic long name included the
alias ID in parentheses after the es-MX name).

Restructure QTimeZonePrivate::findLongNamePrefix()'s brute force
implementation's loop over available IDs to make most of the loop body
a lambda called from the loop, so that it can now be called from a
loop over the alias table's entries. Use a duplicate tracker to avoid
repeating that for the IDs we've already seen from the available list.

Pick-to: 6.12
Fixes: QTBUG-148397
Change-Id: I386544562b22a18b6622d3f66b803e05e5d200b1
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/b0b45eb9af80daff5a4a21f964f382863d149c1c

Git commit 4e5927ec7cc5d0aa66ad2ecd54ceb23f2f61494e by Luqiao Chen on 21/07/2026 at 13:13..
QStyle: fix drawItemPixmap() source rect offset at DPR != 1

QStyle::drawItemPixmap() built the QPainter::drawPixmap() source
rectangle with a device-independent (logical) top-left offset but a
device (physical) width and height, the latter scaled by the pixmap's
device pixel ratio. All four values describe a single rectangle sampled
from the pixmap, so they must share the same coordinate space.

When the device pixel ratio is not 1, the un-scaled offset addresses the
wrong pixels. An aligned pixmap larger than the target rectangle is then
sampled from the wrong location: e.g. a bottom-left aligned 100x200
pixmap in a 100x100 QLabel shows part of the top (clipped) half and drops
the bottom edge, instead of showing the bottom half exactly.

Scale the source offset by the device pixel ratio too, matching the width
and height, and build the whole source rectangle in a named local
variable so the device-pixel coordinate handling is explicit.

Fixes: QTBUG-148076
Pick-to: 6.11 6.12
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Change-Id: Id4fe45cae72f0edcc8a51e5aa74293d4478a6c61
Reviewed-by: Morten Johan Sørvig <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/4e5927ec7cc5d0aa66ad2ecd54ceb23f2f61494e

Git commit cc0b18a07d11f7b930546f8b927793c39d9bb6d1 by Dawid Śliwa on 21/07/2026 at 13:25..
harmonyostestrunner: quote appArgsJson for the device shell

The io.qt.appArgsJson value was passed to aa start as a bare JSON
token. hdc forwards argv to a device-side shell that strips unquoted
double quotes, so ["foo"] arrived as [foo] and the ability rejected it
with "input is not valid JSON string", aborting every run that
forwarded test arguments.

Single-quote the JSON (POSIX-escaping any embedded quote) so its double
quotes survive the relay.

Task-number: QTBUG-148423
Pick-to: 6.12
Change-Id: I85aea21b0e083f07c824d1e7f7caec0824d2361a
Reviewed-by: Andy Nichols <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/cc0b18a07d11f7b930546f8b927793c39d9bb6d1

Git commit 5b9849c62c8336ea75954d16544478acd022d267 by Edward Welbourne on 21/07/2026 at 13:25..
Guard against overflow in QJalaliCalendar::isLeapYear()

In case year is large enough that multiplying by 683 may overflow,
first reduce it mod 2820 before doing the arithmetic whose result will
again be reduced mod that. Credit to OSS-Fuzz (issue 522989107) for
spotting the problem.

Add test cases for temporal parser and QDateTime based on the fuzzer
test-case for the latter that caught it. These tests shall only work
from 6.12, as older versions could not parse years with more than four
digits.

Pick-to: 6.12 6.11 6.8
Fixes: QTBUG-147418
Change-Id: Ife1ec2dbf991596ffd2a51a5f6221b94ff5affad
Reviewed-by: Mate Barany <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/5b9849c62c8336ea75954d16544478acd022d267

Git commit cc8e548f1cabf4362eba1b0dba22b25b161b788e by Edward Welbourne on 21/07/2026 at 13:25..
Fix misguided use of gcc-specific typeof() operator

Make receive the QList<QBA>::iterator result of std::partition into a
const_iterator to save the need to cast it to that type when using it.

Pick-to: 6.12
Fixes: QTBUG-147648
Change-Id: I568ee15042597c7f7c1d65504ef2e927e35b5da1
Reviewed-by: Thiago Macieira <[email protected]>
Reviewed-by: Mårten Nordheim <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/cc8e548f1cabf4362eba1b0dba22b25b161b788e

Git commit 5563df5a8504b06cc8b6b51d8a24fd195ec4acc8 by Edward Welbourne on 21/07/2026 at 13:25..
Fix serialization of dates to put a sign on >4-digit years

Various standards allow a year with more than four digits but insist
on a sign if it's beyond some length to be agreed between the parties
using the format for exchange of data; this ends up being 4 in
practice, which is assumed by the new temporal data parser.

Serialization's neglect of this previously went unnoticed because the
old parser rejected years with more than 4 digits, regardless of sign.
Added some test-cases for round-tripping of dates at the ends of the
range QDateTime can represent (albeit QDate can represent more).
Discovered by new benchmarks provided by Vadim Vysokoostrovskiy.

Pick-to: 6.12 6.11 6.8
Task-number: QTBUG-77948
Change-Id: I3081b6c5eef1c13155113e2c557caf9ae1c311b9
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/5563df5a8504b06cc8b6b51d8a24fd195ec4acc8

Git commit ff0484ab0f023be8ef05568a513b2d0079a4f2c3 by Edward Welbourne on 21/07/2026 at 13:25..
Correct the bound on year width without sign when parsing dates

Amends commit 1d2f834985373e31f097971830547c56453d21b3 (6.12). If a
year has up to four digits it only needs a sign if it's negative.
Officially, the parties using the format to communicate dates can
agree any higher limit to how many digits they accept in a year before
needing a sign, but four is the common lower bound so always allow it.
A field width, when specified, can only increase beyond that.

Previously a field width could drop the limit below four, which was
not the intent. Discovered while investigating round-tripping of dates
with large positive years (serialization was neglecting sign).

Pick-to: 6.12
Task-number: QTBUG-77948
Change-Id: I8af72a996abdd8b1bf38a03fdfbba10f94eacc37
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/ff0484ab0f023be8ef05568a513b2d0079a4f2c3

Git commit 0214f2ac71777093eb50320732eb09aafdf836b0 by Edward Welbourne on 21/07/2026 at 13:25..
Allow IANA ID matching to go down to three letters

This was previously only allowed for GMT, but IANA does include a few
other three-letter abbreviations as (legacy) names for zones. UTC
should be picked up by an offset form before we get to the IANA ID
check, when offset forms are allowed for at all.

Pick-to: 6.12
Fixes: QTBUG-148356
Change-Id: I285275ec9c6492af8cc01c1add0383f512d3d4a4
Reviewed-by: Thiago Macieira <[email protected]>
Reviewed-by: Lars Schmertmann <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/0214f2ac71777093eb50320732eb09aafdf836b0

Git commit 1cc40d3553eb7d7d42284266a4d8261c5e2e6cf4 by Edward Welbourne on 21/07/2026 at 13:25..
Update our copy of FFTW's cycle counter to 3.3.11

FFTW has released a new version, with support for a couple more
platforms. Update the cycle-counter Qt's benchmarking uses from that.

[ChangeLog][QtTest][Third-Party Code] QtTest's benchmarks now use the
cycle-counter code from FFTW version 3.3.11. This adds support for
LoongArch and RISC-V.

Pick-to: 6.12 6.11 6.8
Task-number: QTBUG-146335
Change-Id: I325c71411d07e19fe4f87d3f1b746c76e10902f4
Reviewed-by: Thiago Macieira <[email protected]>
Reviewed-by: Ivan Solovev <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/1cc40d3553eb7d7d42284266a4d8261c5e2e6cf4

Git commit e03d56ad27b12dda0b95954b51c3ffd905183bd0 by Edward Welbourne on 21/07/2026 at 13:25..
Add patch-file for the wrapper check

Aments commit 39ab9e00415ed0f4d77daded079b262a8353328d (6.10) to
include a patch file that those updating the third-party cycle header
can use to bring a new version in sync with this local change.

Pick-to: 6.12 6.11
Task-number: QTBUG-132900
Task-number: QTBUG-146335
Change-Id: I247a340c7a54225b3f109b6937af36056eee9fdc
Reviewed-by: Mårten Nordheim <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/e03d56ad27b12dda0b95954b51c3ffd905183bd0

Git commit 12b81b4ab38ef3e2cbafb2e9b40bacaf126a1674 by SanthoshKumar Selvaraj on 21/07/2026 at 14:54..
ohos: Rename Q_OS_OHOS to Q_OS_HARMONY

The platform macro Q_OS_OHOS is renamed to Q_OS_HARMONY for consistency
with the "Harmony" naming in the HarmonyOS platform support. Update
the same in corelib, gui, network, plugins, testlib, widgets, and their
autotests.

Pick-to: 6.12
Change-Id: I866e477d610a2b54856113b1bb4c8ee6415dd5b9
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/12b81b4ab38ef3e2cbafb2e9b40bacaf126a1674

Git commit 3d1ad65b0e420a3f140a10e451cc5dbcc1f3f11e by Ivan Solovev (on behalf of Vadim Vysokoostrovskiy) on 21/07/2026 at 14:54..
Extend QLocale::toTime() benchmark for Chakma

Not picking to 6.11, because the old parser does not support it.

Pick-to: 6.12
Change-Id: I1f1b27f4b373e0f8b0bccaec5585515e6e6e742b
Reviewed-by: Edward Welbourne <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/3d1ad65b0e420a3f140a10e451cc5dbcc1f3f11e

Git commit 0b39ef895952ede8e828bf55aaf52d37d30820b7 by Ivan Solovev (on behalf of Vadim Vysokoostrovskiy) on 21/07/2026 at 14:54..
Extend QLocale::toDate() benchmark for Chakma

Not picking to 6.11, because the old parser does not support it.

Pick-to: 6.12
Change-Id: I494e4731393528cdecbbdf6a9c8ebfaa28526d4c
Reviewed-by: Edward Welbourne <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/0b39ef895952ede8e828bf55aaf52d37d30820b7

Git commit 8cfa9e0fb500359e63ed930c71e6fcadeda192e3 by Ivan Solovev (on behalf of Vadim Vysokoostrovskiy) on 21/07/2026 at 14:54..
Add QLocale::toDateTime() benchmarks

The benchmarks check Gregorian, Jalali, and IslamicCivil calendars
with C and de-DE locales. All possible format specifiers are used
at least once.

Pick-to: 6.12 6.11
Change-Id: I65d822ba2de1ae23bf2a6202057d6ed3267ab8fc
Reviewed-by: Edward Welbourne <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/8cfa9e0fb500359e63ed930c71e6fcadeda192e3

Git commit 3607b8bc1d07dabb79e5324f6ac5c3c5e11593d3 by Ivan Solovev (on behalf of Vadim Vysokoostrovskiy) on 21/07/2026 at 14:54..
Extend QLocale::toDateTime() benchmarks for Chakma

Not picking to 6.11, because the old parser does not support it.

Pick-to: 6.12
Change-Id: I030adce240bcdac2321fbdb5e7e08fd0bedcca24
Reviewed-by: Edward Welbourne <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/3607b8bc1d07dabb79e5324f6ac5c3c5e11593d3

Git commit 072eadc6fd281744160d97540913f4117e93ebc3 by Edward Welbourne (on behalf of Vadim Vysokoostrovskiy) on 21/07/2026 at 14:54..
Add QLocale::toTimeFormat() benchmark

Benchmark the overload that takes FormatType enum instead of a
format string.

Pick-to: 6.12 6.11
Change-Id: I7d7d5b3578b229d14da4526e918ae2c8310107ea
Reviewed-by: Edward Welbourne <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/072eadc6fd281744160d97540913f4117e93ebc3

Git commit 84c1b50a342a6665d1096487aea1ed3122fa61cc by Alexandru Croitor on 21/07/2026 at 16:52..
CMake: Split SBOM build tools from system build tools

We need a way to distinguish which build tools are built as part of
the project, and which build tools are pre-built and found in the
system. This will affect whether the build tool is CONTAINed by the
project in the spdx relationships of the document / tool.

Add a new SYSTEM_BUILD_TOOL entity type to mark tools found in the
system

Rename
_qt_internal_sbom_add_project_default_build_tools to
_qt_internal_sbom_add_project_default_system_build_tools
and other such functions to refer to system build tools.

The will now create SYSTEM_BUILD_TOOL entries because CMake, the
compiler, and the linker are all pre-built tools found in the system.

The old BUILD_TOOL entity can now be used with regular executable
targets.

Pick-to: 6.8 6.11 6.12
Change-Id: I1769dd76264e4842d6a6f00ba0f9073ecaeeb1f7
Reviewed-by: Joerg Bornemann <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/84c1b50a342a6665d1096487aea1ed3122fa61cc

Git commit cb86a0d7d46fc30e831cf525a1b82552584ec5ad by Alexandru Croitor on 21/07/2026 at 16:52..
CMake: Modify "project contains" SPDX relationship behavior

Previously the build system always added a "project package CONTAINS
target package" SPDX relationship to all defined sbom targets.

Skip adding this relationship for system libraries and system build
tools because the project SPDX package does not really contain those
binaries.

Also add an option to opt out for other targets.

Add tests.

Pick-to: 6.8 6.11 6.12
Change-Id: I24b184a98f9b89c6e69713511f05a7d0b45d44c0
Reviewed-by: Joerg Bornemann <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/cb86a0d7d46fc30e831cf525a1b82552584ec5ad

Git commit 34523a5d7a90ca2c4a117766381b88986d01fd28 by Volker Hilsheimer (on behalf of Marc Mutz) on 21/07/2026 at 16:52..
QAccessible*Interface: disable copying

These are polymorphic classes, so they shouldn't be copied (which
invites slicing), so disable copy and move SMFs in the base classes
for implementations to inherit the safe default.

[ChangeLog][QtGui][Potentially Source-Incompatible Changes] The
QAccessible*Interface classes were made uncopyable. As polymorphic
types, they shouldn't be.

Found in API-review for QAccessibleViewportInterface, but applying to
all others, too, to avoid c'n'p propagation of missing
Q_DISABLE_COPY_MOVE going forward.

Pick-to: 6.12
Task-number: QTBUG-146286
Change-Id: I661000eb067851544fb8b3b59cd3321c538563fe
Reviewed-by: Volker Hilsheimer <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/34523a5d7a90ca2c4a117766381b88986d01fd28

Git commit 139a7047a60df72ce8b5d89e3c66d0c710bbdf8e by Friedemann Kleint on 21/07/2026 at 17:39..
Qt Widgets Designer Documentation: Use "Qt Widgets Designer" consistently

Pick-to: 6.12
Task-number: QTBUG-148146
Change-Id: I9f90f02f67ae0076225ac0a9bf86c04136f05c8b
Reviewed-by: Kai Köhne <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/139a7047a60df72ce8b5d89e3c66d0c710bbdf8e
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.