[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 '6.12'.
Changed from 709ba93c4a72513f8bd03d38e824aafef0919dd9 to 8066bb14aff0a99e6e0e730b138d6c739eac45fd
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 571fe99bb985f322b4ed6d76d1fdcfd9caeaa1c2 by Qt Cherry-pick Bot (on behalf of Zbigniew Chyla) on 20/07/2026 at 14:51..
ohos: kill QOhosOptional alias use in render/ files

The QOhosOptional<T> alias for std::optional<T>, together with its
makeQOhosOptional() and makeEmptyQOhosOptional() helpers, is being
eliminated in favor of using std::optional directly.

Replace every remaining use in src/plugins/platforms/ohos/render/ with
plain std::optional and add <optional> includes where the type is used
and the paired header does not already provide one.

Drop the now-unused qohosplugincore.h include from the headers where
QOhosOptional was the only symbol taken from it.

Task-number: QTBUG-147543
Change-Id: I586d5e61244dae80edac8888f0f5b5a69fb14685
Reviewed-by: Dawid Śliwa <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
(cherry picked from commit c3dea84d855cff46b36515f2692842c359ec5d42)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/571fe99bb985f322b4ed6d76d1fdcfd9caeaa1c2

Git commit 1e9c7229554c483db82f11542878702340f29ccf by Qt Cherry-pick Bot (on behalf of Seokha Ko) on 20/07/2026 at 14:51..
ohos: Register a Mouse device and use it for mouse and wheel events

QOhosPlatformIntegration::getAvailableDeviceTypes() only registered
TouchScreen and TouchPad devices, never Mouse. Event constructors in
QWindowSystemInterface default to
QPointingDevice::primaryPointingDevice(), which falls back to the
TouchPad device when no Mouse device is registered.

QOhosInputMethodEventHandler::onMouseWheelEvent() called
handleWheelEvent() without an explicit device, even though it already
distinguishes UI_INPUT_EVENT_TOOL_TYPE_MOUSE from
UI_INPUT_EVENT_TOOL_TYPE_TOUCHPAD to compute the delta. Wheel events
from a real mouse therefore always carried a TouchPad-typed device, so
QtQuick's WheelHandler ignored them, since its default acceptedDevices
is Mouse only.

Detect a mouse source among the reported OHOS input devices and
register a Mouse QPointingDevice for it. Pick the Mouse or TouchPad
device to attach to a wheel event based on its tool type.

Registering a Mouse device changes what
QPointingDevice::primaryPointingDevice() returns process-wide, which
would silently affect any other event path in the plugin that omits
an explicit device. QOhosInputMethodEventHandler::handleMouseEvent()
was such a path: ArkUI reports mouse move/press/release uniformly for
both a physical mouse and touchpad-driven pointer movement, and it was
relying on that same implicit fallback.

Extend QArkUi::getPointingDeviceType() to also recognize
UI_INPUT_EVENT_SOURCE_TYPE_MOUSE, and thread the resulting device type
through NativeNodeMouseEvent and QOhosMouseEvent so handleMouseEvent()
can look up and attach the matching device explicitly, the same way
onMouseWheelEvent() already does. This keeps touchpad-driven mouse
move/click events classified as TouchPad, as before, and removes the
last implicit use of primaryPointingDevice() for pointer events in
this plugin.

onNonClientAreaMouseEvents() builds its QOhosMouseEvent from
Input_MouseEvent, which has no source-type query (unlike
ArkUI_UIInputEvent), so it left the new deviceType field to its
QOhosMouseEvent::Mouse default. Set it to TouchPad explicitly instead:
guessing Mouse there could make getPointingDeviceOrCreate() register a
phantom Mouse device on a machine that has none, which would then make
primaryPointingDevice() prefer it process-wide; guessing TouchPad
cannot have that effect, since TouchPad is already its fallback.

createPointingDevice() hardcoded systemId to 1 for every device it
creates. getAvailableDeviceTypes() can report several device types at
once (e.g. a laptop with both a touchscreen and a touchpad), so
multiple devices could already end up sharing systemId 1 before this
change; adding a Mouse device made that a three-way collision.
QInputDevice::systemId() is documented to be unique per device when
nonzero, and QInputDevice::operator==() compares only systemId, so
colliding IDs make unrelated devices compare as equal. Reuse the
DeviceType flag value as the systemId, since it is already guaranteed
to be distinct per type handled here. Also factor the register+release
boilerplate shared by both branches of createPointingDevice() into a
small helper.

If querying the device list fails, getAvailableDeviceTypes() falls
back to an empty set and every device ends up being created lazily on
first use instead. Note that consequence in the existing error log,
since the later per-device warnings from getPointingDeviceOrCreate()
don't otherwise reference this earlier failure.

Fixes: QTBUG-147931
Change-Id: I0b38163bf4e04af74692c9267e5ef942fbdc41f4
Reviewed-by: SanthoshKumar Selvaraj <[email protected]>
(cherry picked from commit 6bf077c757c1733a4eb3f17889531b31789bfd71)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/1e9c7229554c483db82f11542878702340f29ccf

Git commit 68a42e1863e5d7d0d63747e2a02901b2f076e3a3 by Qt Cherry-pick Bot (on behalf of Dawid Śliwa) on 20/07/2026 at 14:51..
ohos: make QOhosSettings a lazy singleton

QOhosSettings is owned by QOhosPlatformIntegration, created only in
initialize(), and reached through instance(), which stays null until
the plugin factory returns, so any settings access between
integration construction and initialize() dereferences null. The
integration constructor announces screens synchronously, and on a
private branch where availableGeometry() consults the PC-mode
setting this crashes every application at startup on phones and
tablets.

Make QOhosSettings a lazily created singleton and drop the
settings() accessor, so the settings can be reached at any point of
the plugin lifecycle. The PC-mode cache stays tied to the
integration - installSettingsCache() is called in its constructor
and the returned handle uninstalls the cache before the JS thread
goes away. Without the cache the value is read live.

Fixes: QTBUG-147940
Change-Id: I353338e3dc79dc966a988d1adc093aeb3e908ccc
Reviewed-by: SanthoshKumar Selvaraj <[email protected]>
Reviewed-by: Zbigniew Chyla <[email protected]>
(cherry picked from commit 32759f676fbb9a01e2cca15b45eee7ebec6b9a43)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/68a42e1863e5d7d0d63747e2a02901b2f076e3a3

Git commit 84fd731741b66360a7a9d8018134a4e09031aece by Qt Cherry-pick Bot (on behalf of Kai Koehne) on 20/07/2026 at 14:51..
Doc: Allow to easily link to CMake commands

Add qt_<command>() as an alternative \keyword to the CMake command
pages, replacing the corresponding \keyword qt6_<command> entries.

Update \l and \sa references throughout the documentation to use the
new qt_<command>() keyword directly, dropping the workarounds that
were needed to show the parentheses, and unbracing single-word
targets where possible.

Change-Id: I2d2268b31a000ae4713227f9508806144456e2f4
Reviewed-by: Joerg Bornemann <[email protected]>
(cherry picked from commit e249fa7e133ea8f1c19d806d93ba2010d96ed3b0)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/84fd731741b66360a7a9d8018134a4e09031aece

Git commit ba445abe5d6d1d6416822a10ea58037214fd9c54 by Qt Cherry-pick Bot (on behalf of Arkadiusz Zarębski) on 20/07/2026 at 14:51..
ohos: fix fullscreen landing on wrong screen in multi-screen setups

Moving a window to another screen and then making it fullscreen left the
window maximized on the screen it was created on instead of the target
one. To reproduce:

    window->windowHandle()->setScreen(targetScreen);
    window->move(targetScreen->geometry().topLeft());
    window->showFullScreen();

The move() to the target screen and the subsequent showFullScreen() race
each other. QOhosView::setPosition() (driven by move()) only queues the
position update for an async flush (Qt::QueuedConnection), whereas
showFullScreen() reaches setFullScreen() / maximize(ENTER_IMMERSIVE)
synchronously. Entering fullscreen mode maximizes on the window's
current display, so it ran before the queued move was applied and the
window stayed on its origin screen.

Flush the pending update batch synchronously in setFullScreen() before
entering fullscreen mode, so a queued move() is applied to the target
display first. The batch is drained in one pass in its fixed order (see
makeSystemUpdateDataPropertyUpdateFuncPairsTuple()), keeping the
position update ordered after size/sizeLimits.

Task-number: QTBUG-148234
Change-Id: Iced294dbd68d3d52461c85108232a22df286f608
Reviewed-by: Zbigniew Chyla <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
(cherry picked from commit eee688add2ad80697ea1c3164b4963945770e8df)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/ba445abe5d6d1d6416822a10ea58037214fd9c54

Git commit 8066bb14aff0a99e6e0e730b138d6c739eac45fd by Qt Cherry-pick Bot (on behalf of Alexandru Croitor) on 20/07/2026 at 18:16..
CMake: Use -Wno-unused-cli for CMake 4.4 in RunCMake.cmake

Since ca5d56952477e1acc345dd33480210ba1d6b03fc in upstream CMake 4.4,
a deprecation warning is shown when using --no-warn-unused-cli.

This ends up in the stderr output of various RunCMake tests and fails
them.

Patch RunCMake.cmake to conditionally use -Wno-unused-cli or
--no-warn-unused-cli depending on the CMake version.

Pick-to: 6.11 6.8
Change-Id: Ie0ef16d14dc125ad546e419e1b309043afd2b559
Reviewed-by: Joerg Bornemann <[email protected]>
(cherry picked from commit 5a9af3dbfa4efffeba7ef82816b391884ce35382)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/8066bb14aff0a99e6e0e730b138d6c739eac45fd
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.