[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 4024c82deee51d0881297ad0d3375e80965a764e to b2b4258a42567f4a4f2bec950c3e01623a97a5df
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 1b66e0537c315d068e7ca3f88bbc4620811c5e01 by Marc Mutz on 23/07/2026 at 21:10..
Remove QT_NO_FOREACH from individual CMakeLists.txt's

The macro is centrally defined for all Qt code since
11d69325605071a32d10ed4392c67e9a07445ada (6.7).

Pick-to: 6.12 6.11 6.8
Change-Id: I9526ef5e31fcc33ff525d86a5c96ac29aff30171
Reviewed-by: Volker Hilsheimer <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/1b66e0537c315d068e7ca3f88bbc4620811c5e01

Git commit 71f37d7cc8fe679b565b13e5b2b13aa31f58fa5b by SanthoshKumar Selvaraj on 24/07/2026 at 01:10..
Add "harmonyos" blacklist keyword for the qt testlib

Allow BLACKLIST files to disable test functions specifically for
HarmonyOS using the keyword "harmonyos" (guarded with the condition
Q_OS_HARMONY).

Update qwindow and qrhi BLACKLIST files to use "harmonyos" instead
of "ohos".

Pick-to: 6.12
Change-Id: Id77d5f1b1008548044ffa31a539d1a2808435662
Reviewed-by: Axel Spoerl <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/71f37d7cc8fe679b565b13e5b2b13aa31f58fa5b

Git commit 76da94d9f53cf1f0f4be370e94c70390abbd825b by SanthoshKumar Selvaraj on 24/07/2026 at 01:10..
ohos: Rename QOperatingSystemVersionBase::OSType::OHOS to HarmonyOS

Rename the `OHOS` OSType enumerator to `HarmonyOS` to be consistent with
naming guidelines:
https://wiki.qt.io/API_Design_Principles#General_Naming_Rules

Pick-to: 6.12
Change-Id: I55c3ffeb648b7400df03e45bf13b15679be4cf19
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Zbigniew Chyla <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/76da94d9f53cf1f0f4be370e94c70390abbd825b

Git commit f022d8577882752f7f1da740b96a09eab31c4e4f by SanthoshKumar Selvaraj on 24/07/2026 at 01:10..
ohos: Report "harmonyos" from QSysInfo::productType()

Align QSysInfo::productType() with the OSType::HarmonyOS rename from
by returning "harmonyos" instead of the legacy "ohos" string.

Pick-to: 6.12
Change-Id: If459b7fed66ccf180b9f030d2aff268c7f411ae3
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Thiago Macieira <[email protected]>
Reviewed-by: Zbigniew Chyla <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/f022d8577882752f7f1da740b96a09eab31c4e4f

Git commit d34be6495b64f8286235783c250853f8fb72e780 by SanthoshKumar Selvaraj on 24/07/2026 at 01:10..
ohos: Fix remaining OHOS references after HarmonyOS enum rename

For HarmonyOS, the OSType renamed to OSType::HarmonyOS and this needs to
be reflected in the doc comment and the name() switch case in
qoperatingsystemversion.cpp. Update the \value documentation and the
string returned by name() to match the new enumerator name.

Pick-to: 6.12
Change-Id: I49b28a774e47771a364c0cd348d4ad35c6ad853c
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Zbigniew Chyla <[email protected]>
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/d34be6495b64f8286235783c250853f8fb72e780

Git commit 62b4a6f81130de66ce4c448722b74c58300bae19 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: rename priv names clashing with API

The external OhosAppKit API is about to drop its redundant QOhos prefix
(it already lives in the QtOhosAppKit namespace). That renames external
types to WantInfo, WindowCreateParams and StartOptions, each of which
already names a private implementation detail in the same module.

Keep every type name unique across the module, even across nested
namespaces, by renaming the private ones first:

 - detail: WantInfo => WantInfoPriv
 - QOhosStartOptionsData: WindowCreateParams => WindowCreateParamsPriv
 - qohosabilitycontext.cpp: local StartOptions alias => OptionsData

No API or behavior change.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: If48d7e9b4ca772d22db0a01ad6b69837cdc44228
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Dawid Śliwa <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/62b4a6f81130de66ce4c448722b74c58300bae19

Git commit b330c0e21616e0c4f1350159ed280d5715b70755 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: drop redundant QOhos prefix in API

The external API lives in the QtOhosAppKit namespace, so the QOhos
prefix on its types just repeats the enclosing namespace. The sibling
sub-namespaces (ShareKit, FileShare, Window) already use unprefixed
type names; align the top-level types with them.

Drop the QOhos prefix from the external types:

 - QOhosAbilityContext => AbilityContext
 - QOhosOnContinueContext => OnContinueContext
 - QOhosOpenLinkOptions => OpenLinkOptions
 - QOhosStartAbilityResult => StartAbilityResult
 - QOhosAppContext => AppContext
 - QOhosBundleInfo => BundleInfo
 - QOhosElementName => ElementName
 - QOhosOperationStatus => OperationStatus
 - QOhosStartOptions => StartOptions
 - QOhosWindowCreateParams => WindowCreateParams
 - QOhosWant => Want
 - QOhosWantInfo => WantInfo
 - QOhosWantFlag / QOhosWantFlags => WantFlag / WantFlags
 - namespace QOhosPasteboard => Pasteboard

The private implementation classes (QOhos*Impl, QOhosStartOptionsData
and friends) keep their names; they are left for a separate cleanup.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I2a3f36fcb3744eb5bf5c4e54458948a228bfc4a1
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/b330c0e21616e0c4f1350159ed280d5715b70755

Git commit b9da677defaa261360382d265f2ae1ffdf84c557 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: fix OperationModes flag registration

Q_FLAG_NS registers a flags type with the FileShare namespace
meta-object, but it is given the OperationMode enum instead of the
OperationModes QFlags typedef, and it precedes Q_DECLARE_FLAGS. As a
result the OperationModes flags type is never registered; the plain
enum is registered (and marked as a flag) instead. It compiles because
nothing yet queries the type through QMetaEnum, so the broken
reflection is silent.

Declare the flags first, then register the plural typedef; the
underlying OperationMode enum is registered along with it.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I6cae35338059fda836376cabc3110171d6aaf00d
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/b9da677defaa261360382d265f2ae1ffdf84c557

Git commit 59b60f8805e17d2d1def1dfa7148a353864193e6 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: make parameter passing consistent

The external API passes most value-type parameters uniformly, but a few
diverge from the convention used everywhere else.

Take read-only value parameters by const reference: startNoUiChildProcess()
took QString and QStringList by value, unlike every other read-only value
and container parameter in the API.

Take small geometric types by value: the two setAnchor() overloads took
QPoint and QRect by const reference, against the Qt convention for such
types; change both together so they stay consistent.

Callback (std::function) parameters are left by value, as they are
consumer parameters rather than read-only inputs.

No API or behavior change.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I098cc253d92767316ef2367211aa8825b290da77
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/59b60f8805e17d2d1def1dfa7148a353864193e6

Git commit 98cee3c93dde5419f4e114e32d617db399422c2a by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: return optional, not QSharedPointer

Several external API members returned a copyable value type wrapped in a
QSharedPointer purely to express "may be absent". std::optional expresses
that directly, drops a heap allocation, and matches the private layer,
which already returns std::optional.

Return std::optional instead of QSharedPointer for:

 - WantInfo::tryGetContactInfo(): ContactInfo
 - WantInfo::tryGetSharedRecordsFromShareKit(): the QList (the inner
   QSharedPointer<SharedRecord> stays, as SharedRecord is abstract)
 - tryGetOnContinueData(): QByteArray
 - StartAbilityResult::want: Want

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I23740b199e0ef0f7aaf05aa3c9546f725c35d15c
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/98cee3c93dde5419f4e114e32d617db399422c2a

Git commit c034c53c6da313dde37944b453b30259971b607c by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: use UpperCamelCase enum values

The enumerators in the StartOptions and WindowCreateParams enums used
ALL_CAPS_WITH_UNDERSCORES and repeated the enum-name/scope prefix, unlike
every other enum in the external API, which already uses UpperCamelCase.

Rename the enumerators to UpperCamelCase without the redundant prefix:

 - AnimationType: FADE_IN_OUT => FadeInOut
 - ProcessMode: NEW_PROCESS_ATTACH_TO_PARENT => NewProcessAttachToParent,
   NEW_PROCESS_ATTACH_TO_STATUS_BAR_ITEM => NewProcessAttachToStatusBarItem
 - StartupVisibility: STARTUP_HIDE => Hide, STARTUP_SHOW => Show
 - WindowMode: WINDOW_MODE_SPLIT_PRIMARY => SplitPrimary,
   WINDOW_MODE_SPLIT_SECONDARY => SplitSecondary,
   WINDOW_MODE_FULLSCREEN => Fullscreen
 - SupportWindowMode: FULL_SCREEN => FullScreen, SPLIT => Split,
   FLOATING => Floating

ProcessMode keeps the NewProcess distinction, since the underlying OHOS
enum also has a separate ATTACH_TO_STATUS_BAR_ITEM value. The private
QOhosStartOptionsData enums and the OHOS SDK constants keep their names.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: Ic9b4eebb3cbab58316339bd64b16e7ffdd85634e
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/c034c53c6da313dde37944b453b30259971b607c

Git commit f014470aadabaf29c52e1f569e69a359fcb81d82 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: use std::shared_ptr, not QSharedPointer

QSharedPointer is discouraged in new code in favour of std::shared_ptr.
Convert the shared pointers exposed by the external API accordingly.

Change every public-type QSharedPointer to std::shared_ptr across the
API headers and their implementations: returns, parameters, the two
AbilityContext signal payloads, and the factory returns. The associated
idioms follow: QSharedPointer<X>::create() becomes std::make_shared<X>(),
qSharedPointerCast becomes std::static_pointer_cast, an isNull() check
becomes a plain bool test, and the QSharedPointer<QObject> metatype
registration is updated. Public headers drop qsharedpointer.h in favour
of <memory>.

The internal detail::WantInfoPriv (and its implementation) still use
QSharedPointer; converting them is left for a separate cleanup.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: Ie25dc47f7d1541c3724cf25d8d18867db9ad310a
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Dawid Śliwa <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/f014470aadabaf29c52e1f569e69a359fcb81d82

Git commit 7ec935b5478a962124599bcf4c08c3f1c646cdba by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: drop unused ElementName metatype

ElementName was the only public data struct with a Q_DECLARE_METATYPE,
yet nothing uses the metatype: it is never stored in a QVariant, sent
through a queued connection, or exposed via reflection (it is not a
Q_GADGET). It only appears as a by-value parameter of the setCompletionHandler
callback, which is a direct std::function call.

Remove the Q_DECLARE_METATYPE and the now-unused qmetatype.h include.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I5fadce4943fc090595e09a2715e9a7c7046c6b82
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/7ec935b5478a962124599bcf4c08c3f1c646cdba

Git commit ab000cb956cee7eff95459e476787b00307e4540 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: don't export ElementName struct

For consistency with the other data structs in the API (Want,
StartAbilityResult, PathPolicy, ...), which are not exported, drop
Q_OHOSAPPKIT_EXPORT from ElementName.

ElementName is a pure-data struct with no out-of-line members, so
exporting the whole class exports nothing a consumer needs anyway: its
special member functions are implicit and generated inline at each use.

Also drop the now-unused qtohosappkitglobal.h include.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I036a424453cd65fc757f89c83733887b2c9b9765
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/ab000cb956cee7eff95459e476787b00307e4540

Git commit 3e83d183b40ed328b18057e80d52d201c6716734 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: pass options as nullable shared_ptr

startAbilityForResult() was two pure-virtual overloads (with and without
StartOptions), and the free startAbility() and startAppProcess() plus
tryOpenLink() were likewise overload pairs, one taking a const reference
to an abstract options object, one taking none.

These options objects are abstract and only obtainable as a
std::shared_ptr from their create...() factories, so take each as a
single nullable std::shared_ptr parameter: one function per task, with a
null pointer meaning "no options". startAbilityForResult() and
tryOpenLink() thus become a single virtual (one vtable slot); the free
functions keep a trailing = nullptr default.

This covers the StartOptions sites (startAbility, startAppProcess,
startAbilityForResult) and OpenLinkOptions (tryOpenLink), matching the
already-nullable controllerOptions of shareDataWithShareKit().

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: Ib7e02add7042cbe8a7e9934c2bd9ea9a4cfa0ccd
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Dawid Śliwa <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/3e83d183b40ed328b18057e80d52d201c6716734

Git commit b130952286c6453e41c9beaeca9df50ed1965567 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: restartApp takes optional Want

restartApp() was two pure-virtual overloads, one with no argument and
one taking a Want. Collapse them into a single virtual taking a
std::optional<Want>: one function per task, with an empty optional
meaning "restart with the app launch want".

The optional carries a Want value (not a factory options object), so
unlike the options parameters it is a std::optional, not a
std::shared_ptr.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I3923234facc3562586a9306644b9444235dbe685
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/b130952286c6453e41c9beaeca9df50ed1965567

Git commit 974242dbd78682cbd1cc305bff1f5a228e264010 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: rename setAnchor(QPoint) overload

setAnchor() had two overloads that did semantically different things:
the QPoint form sets only the anchor offset, while the QRect form sets
both offset and size. Overloading them under one name implied they were
interchangeable.

Rename the offset-only overload to setAnchorOffset(), leaving
setAnchor(QRect) as the full-anchor setter. This also removes the last
virtual overload set (one virtual per task).

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: Iab4e6ec905affb4543827ee86dc682c3ba9fb76d
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/974242dbd78682cbd1cc305bff1f5a228e264010

Git commit e85a045a5021f7a2c4d0a9fe9ef6377709a171da by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: add missing enum meta-registration

The API enums are meta-registered so their enumerators can be enumerated
(for example in documentation examples), but two were left out:

 - PathPolicyError (FileShare): add Q_ENUM_NS; the namespace already has
   Q_NAMESPACE.
 - ShareKit::ShareAbilityType: add Q_NAMESPACE to the ShareKit namespace
   and Q_ENUM_NS for the enum.

WantInfo::LaunchReason and WantFlag remain unregistered; they need a
Q_GADGET or namespace change and are left for a separate decision.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: Ib043ab8c7e1f92cadc68d1b4bd7ec925222f125e
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/e85a045a5021f7a2c4d0a9fe9ef6377709a171da

Git commit 0633bafce82adb36ebe00000bc79c5eb66c6165a by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: document Q_GADGET-for-enum intent

WindowCreateParams and StartOptions are abstract, non-copyable
interfaces, so their Q_GADGET can look like a value-semantics mistake.
It is not: Q_GADGET is only there to provide the meta-object needed to
Q_ENUM the nested option enums. Add a one-line comment recording that
intent so it is not mistaken for one and removed.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: If5148f877a3a761f8c727f4b5848adc9a92b6414
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Dawid Śliwa <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/0633bafce82adb36ebe00000bc79c5eb66c6165a

Git commit 6e107d7232b0539b15706eb051a8b4ab2528f4f1 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: put all content inside QtOhosAppKit

QOhosJsEnv (qohosjsenv_p.h) and the QOhosShareKit backend
(qohossharekitbackend_p.h and .cpp) declared their symbols directly
under QT_BEGIN_NAMESPACE, one level above QtOhosAppKit, unlike every
other AppKit header.

Wrap both in namespace QtOhosAppKit so all AppKit content lives inside
the module namespace. The generated QtOhos::enums (qohosenums_p.h) keeps
its own namespace and is left untouched.

No API or behavior change.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I7f72b648ac96f481bad0ac79fe9722279acd0b0d
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Dawid Śliwa <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/6e107d7232b0539b15706eb051a8b4ab2528f4f1

Git commit cdebf9bbaad01db9632134fc3823a3fae402c7a7 by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: move private symbols to Private namespace

This prepares making the external interface private (headers renamed to
_p.h) for the initial release. Once all headers are _p.h, the
external-interface-in-waiting must stay distinguishable from the truly
private content; a namespace marks the latter.

Move everything declared in the _p.h headers (except the generated
QtOhos::enums) into QtOhosAppKit::Private, keeping the existing names:
the detail and QOhosShareKit namespaces, QOhosJsEnv, the internal data
structs, the create, convert and tryConvert helpers,
makeAppLaunchWantInfo, addNewWantConsumer, and shareData (moved out of
the external ShareKit namespace). The definitions move with them; call
sites are unchanged via a "using namespace Private" directive.

No API or behavior change.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I66ee6e622904acf994c1adbc1aab28952ea6ca72
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/cdebf9bbaad01db9632134fc3823a3fae402c7a7

Git commit b2b4258a42567f4a4f2bec950c3e01623a97a5df by Zbigniew Chyla on 24/07/2026 at 04:28..
ohos: AppKit: make interface headers private

Make the whole external interface private for the initial release (with
plans to make it public later). Rename the 12 interface headers to _p.h
and add the standard "We mean it" warning block to each.

Four of them had a private companion _p.h holding a factory or helper;
merge each companion into the renamed header, so a component is one
file with its external part (QtOhosAppKit and the ShareKit sub-namespace)
and its private part (QtOhosAppKit::Private) separated by namespace.

Update every include to the <QtOhosAppKit/private/qohos..._p.h> form and
the CMakeLists SOURCES accordingly. qtohosappkitglobal.h (the export
macro) becomes private too, so the module installs no public header at
all. The headers are still installed, as private, so the interface
stays usable in the interim.

No API or behavior change.

Task-number: QTBUG-147194
Pick-to: 6.12
Change-Id: I41ac5191ef147b94aa746186a4cbe4fdf0ba7906
Reviewed-by: Liang Qi <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/b2b4258a42567f4a4f2bec950c3e01623a97a5df
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.