[qt/qt/qtdeclarative]: 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/qtdeclarative
Pushed by mirror-service into branch '6.12'.
Changed from 0ac012d5bccf601c36f317789e2e99d5f263169e to a4b11babb72805f3792c00131ee397e96cd67594
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 6d6f43bd5e070cf9b081f88d18694167a570a9e8 by Qt Cherry-pick Bot (on behalf of Olivier De Cannière) on 29/07/2026 at 21:16..
Reformatter: Consider void/var as potential type annotation identifiers

We were only matching T_IDENTIFIER for the type name of a function
type annotation. Other identifiers covered by a more specific tokens
such as T_VOID or T_VAR were not considered and would not pass the
check.

This would confuse the state machine and mess up the indentation from
that point onwards.

Fixes: QTBUG-148521
Change-Id: I19b1f58fe4dd019b83c5520f8e4ad5b3f672b04d
Reviewed-by: Sami Shalayel <[email protected]>
(cherry picked from commit 881871c172f603389166d8cee4a7f5167979e612)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/6d6f43bd5e070cf9b081f88d18694167a570a9e8

Git commit 78bb8cfa11879d9e760b23adc1a059aabeb23975 by Qt Cherry-pick Bot (on behalf of Dilek Akcay) on 29/07/2026 at 21:16..
StyleKit: Default indicator foreground fillWidth/fillHeight to false

Change the default values of control.indicator.foreground.fillWidth
and fillHeight in FallbackStyle.qml from true to false. Indicator
foregrounds don't generally need to stretch to fill their parent,
and doing it by default can be surprising for users.

Explicitly enable fillWidth and fillHeight for controls that rely
on this behavior to preserve their existing appearance: CheckBox,
CheckDelegate, RadioButton, RadioDelegate, Switch, SwitchDelegate,
ProgressBar, Slider, ScrollBar, and ScrollIndicator.

Remove the explicit false settings from ComboBox, MenuItem, SearchField,
and SpinBox, as these controls inherit the new defaults.

Change-Id: I92e9760f7220504204ec6825ce7fd157a7f762f9
Reviewed-by: Doris Verria <[email protected]>
(cherry picked from commit df7a2a4636b991e04035e29ea00730e9cbf8e2d2)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/78bb8cfa11879d9e760b23adc1a059aabeb23975

Git commit a6749c7582afaf0873c0dd30da7cf3e455a186b6 by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 29/07/2026 at 21:16..
CMake: Source the build-dir qt.conf from the QML import scanner

When an application is built against a shared Qt, the QML modules that
live in its build tree are located at run time through a qt.conf
written next to the executable, listing their import path roots. Until
now those roots came solely from the module's declared CMake
dependencies (DEPENDENCIES/IMPORTS TARGET), which does not see modules
that are only imported from QML with no corresponding CMake dependency
- precisely the case the deploy-time plugin symlinks existed to cover.

Source the roots from the union of the declared dependencies and
qmlimportscanner, which parses the actual .qml files and so sees every
import. The declared dependencies still guarantee that a target with no
.qml files of its own records its dependencies' roots; the scanner adds
the QML-only imports on top.

The per-target partial *_qt.part.conf is now produced at build time by
a small helper script, Qt6WriteQtConfPart.cmake, that consumes the
scanner's output, instead of a configure-time file(GENERATE). Qt's own
modules are filtered out, both by their namespaced LINKTARGET and by
rejecting roots under a Qt import path (the foundational QML module has
no LINKTARGET). Generation is no longer gated on the target declaring
dependencies, so every QML-backing executable participates. Where the
scanner does not run - a static Qt build, or a test executable without
the force override - the partial is still generated at configure time
from the declared dependencies alone.

Whether a scan will run is settled once, in the scope of the
qt_add_qml_module() call, and cached on the target.
_qt_internal_qml_import_scan_enabled() hands that answer to both the
finalizer that sets the scan up and the deferred writer that consumes
its output, so the two cannot disagree about it. The path the scanner
writes to is shared the same way, through
_qt_internal_qml_imports_file(). The scanner-entry parsing macro moves
to Qt6QmlPublicCMakeHelpers.cmake so the -P script can share it instead
of carrying its own copy.

[ChangeLog][QML][CMake] The qt.conf generated next to an executable in
the build directory now records QML modules that are imported only from
QML (without a corresponding CMake dependency), by sourcing the import
paths from qmlimportscanner in addition to the declared dependencies.

Task-number: QTBUG-101338
Change-Id: I5d0ead2fee0af9fac21445d03540ed337920a0cf
Reviewed-by: Alexandru Croitor <[email protected]>
(cherry picked from commit dc27fcdaf26cca3fadc92cd0c9aa5398e6b0e774)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/a6749c7582afaf0873c0dd30da7cf3e455a186b6

Git commit df4893caf340e7685ff88b868e3278b7d610c4df by Qt Cherry-pick Bot (on behalf of Sami Shalayel) on 29/07/2026 at 21:16..
qmlcontextpropertydump: don't build if not available on host

Disable the building of qmlcontextpropertydump when crosscompiling with
a host that does not have qmlcontextpropertydump (e.g., when the
qmlcontextpropertydump feature is disabled on the host).

Fixes: QTBUG-148180
Change-Id: I3d821e2bb4ee02c23e303958320714801fc1a1f9
Reviewed-by: Alexandru Croitor <[email protected]>
(cherry picked from commit 4233c0c9fdaefa8802a0a6a26b915f475e7e9ad6)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/df4893caf340e7685ff88b868e3278b7d610c4df

Git commit 32c260cc6a7295ee838f1c8a48f2cfaab24291d7 by Qt Cherry-pick Bot (on behalf of Oliver Eftevaag) on 29/07/2026 at 21:16..
Introduce QQuickPopup::ClosePolicy::CloseMultiple

The popupType currently affects closing behavior, in that popupType:
Popup.Item can cause multiple popups to close when clicked outside with
a single mouse/touch click, while Popup.Window limits the number of
popups that can be closed to 1 (with the exception being nested menus).

This behavior was intentionally added in
459f1e4aeeee77dfc1ae541276110e2755cdaea7, without a way to override it.

While the popupType: Popup.Item behavior has been like this since its
introduction, it would make sense to align the closing behavior to be
identical to popupType: Popup.Window. But since some users might expect
multiple popups to close for a single click, we can introduce a new
closePolicy flag which affects this behavior, allowing application
developers to tweak this to their liking.

The cascade needed to account for a few edge cases found during
testing: a modal popup's dimmer blocks outside presses/releases from
reaching whatever is behind it regardless of whether the popup also
closed itself, which was stopping the cascade one popup early; a modal
popup that blocks (but doesn't close) a press also prevented popups
further down the stack from ever recording that the press started
outside them, so they later refused to close on release; and
Popup.Window's cascade didn't distinguish CloseOnPress/ReleaseOutsideParent
from the plain Outside policies at all. All three are fixed here.

[ChangeLog][Important Behavior Change][QtQuickControls][Popup][ClosePolicy]
Added flag CloseMultiple. Setting this flag combination with
CloseOnRelease*/CloseOnPress* will cause non-top-most popups to close,
when both the popup and it's child popups are clicked outside.
This was previously the default behavior for popups with the Popup.Item
popupType. The default behavior has been changed to always only close
the top-most popup, unless this flag is used.

Fixes: QTBUG-146164
Change-Id: I53fd6b1718a95afcc654d087dddd986b866c42a1
Reviewed-by: Mitch Curtis <[email protected]>
(cherry picked from commit b80b013e6844e4ade44e1c42390a346daa62e309)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/32c260cc6a7295ee838f1c8a48f2cfaab24291d7

Git commit b3f8007476b6713cd74706dbf521831c18485eb5 by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 29/07/2026 at 21:16..
CMake: Retire the build-tree QML deployment step

A macOS app bundle used a POST_BUILD step to symlink each build-tree
QML plugin next to its qmldir under Contents/Resources/qml, so the
bundle could find modules that live in the build tree. Now that the
build-dir qt.conf lists those modules' import paths, the running bundle
finds them in place and the symlinks - and the whole build-time
deployment step - are no longer needed.

Remove the POST_BUILD deployment entirely: the __QT_DEPLOY_POST_BUILD
machinery in qt6_generate_deploy_qml_app_script and the symlink
creation in the deploy support are gone. Deployment now happens only at
install time, which copies the plugins into Contents/PlugIns and the
qmldirs into Contents/Resources/qml as before. The
MACOS_BUNDLE_POST_BUILD option is kept as an accepted no-op for source
compatibility.

install(TARGETS BUNDLE) copies the build-tree bundle wholesale, which
brings the build-dir qt.conf into the installed bundle where its
build-tree import paths are both wrong and unnecessary. Remove it at
install time, but only if it is the file we generated - identified by
the private "MergeQtConf = true" marker - so a qt.conf placed by the
user is left untouched.

Task-number: QTBUG-101338
Change-Id: I2111f901473729ab1abe10df7897dfc24ca4ac79
Reviewed-by: Alexandru Croitor <[email protected]>
(cherry picked from commit 8cae7ea4ac7ecbc0063d37a713332e252739e745)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/b3f8007476b6713cd74706dbf521831c18485eb5

Git commit a4b11babb72805f3792c00131ee397e96cd67594 by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 29/07/2026 at 21:16..
CMake: Stop passing the no-op MACOS_BUNDLE_POST_BUILD deploy option

Now that the build-tree QML deployment step is gone and
MACOS_BUNDLE_POST_BUILD is a silently-accepted no-op, drop it from the
examples and from the qt_generate_deploy_qml_app_script documentation.
The option itself is kept for source compatibility.

Task-number: QTBUG-101338
Change-Id: Iee2523e1927ad67aa06bcde3d1b08fd284713e43
Reviewed-by: Joerg Bornemann <[email protected]>
(cherry picked from commit f0e500207eb4f22e9548627527ed75f3e08be5eb)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtdeclarative/-/commit/a4b11babb72805f3792c00131ee397e96cd67594
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.