[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 'dev'. Changed from d3ef8cf4cc03071bda73083e69205b7f0be2438d to b80b013e6844e4ade44e1c42390a346daa62e309 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 881871c172f603389166d8cee4a7f5167979e612 by Olivier De Cannière on 29/07/2026 at 14:10.. 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 Pick-to: 6.12 Change-Id: I19b1f58fe4dd019b83c5520f8e4ad5b3f672b04d Reviewed-by: Sami Shalayel <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/881871c172f603389166d8cee4a7f5167979e612 Git commit df7a2a4636b991e04035e29ea00730e9cbf8e2d2 by Dilek Akcay on 29/07/2026 at 14:12.. 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. Pick-to: 6.12 Change-Id: I92e9760f7220504204ec6825ce7fd157a7f762f9 Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/df7a2a4636b991e04035e29ea00730e9cbf8e2d2 Git commit f5be55f25aa8d2b7cc16aef6fba9d919aef62bcb by Shawn Rutledge on 29/07/2026 at 15:15.. Add hoveredToolTip property to Text and TextEdit Detect the tool tip of the hovered text fragment the same way we already detect the hovered link, and expose it as a read-only hoveredToolTip property on both Text and TextEdit. It is the tool-tip counterpart of hoveredLink: the property holds the QTextCharFormat::toolTip() of the fragment under the cursor, changes as the mouse moves between fragments, and becomes empty when the cursor leaves text that has a tool tip, or leaves the item. This lets a ToolTip be driven declaratively: ToolTip.text: hoveredToolTip ToolTip.visible: hoveredToolTip.length > 0 The ToolTip positions itself, so no cursor position is emitted; a HoverHandler can supply one if follow-the-cursor placement is wanted. As with linkHovered, hover events are only processed when the notifier is connected. Tool tips come from rich text / HTML (QTextDocument) for TextEdit and Text.RichText. For Text in StyledText mode, teach the lightweight styled text parser to read the anchor "title" attribute into the char format, so <a href="..." title="...">...</a> or <img src="..." title="..."> carries a tool tip there too; the title does not require an href. Add a runnable snippet and autotests. [ChangeLog][Qt Quick][Text] Added the hoveredToolTip property to Text and TextEdit, holding the tool tip of the text fragment under the mouse cursor. Task-number: QTBUG-143442 Assisted-by: Claude Opus 4.8 <[email protected]> Change-Id: I6193859aa2a6fc4660993c833ccd55f924555a06 Reviewed-by: Mitch Curtis <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/f5be55f25aa8d2b7cc16aef6fba9d919aef62bcb Git commit 319609e81f2ef485dadda9d55d610a58d4f19291 by Shawn Rutledge on 29/07/2026 at 15:15.. Add textEdited indicators to textInputPropertiesAndSignals manual test It's handy to have a way to compare behavior between single- and multi-line text input. And it turns out to be inconsistent in this way. Task-number: QTBUG-146177 Change-Id: Ia488dcf19643c456d953efde8f390a6e6639b23f Reviewed-by: Shawn Rutledge <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/319609e81f2ef485dadda9d55d610a58d4f19291 Git commit dc27fcdaf26cca3fadc92cd0c9aa5398e6b0e774 by Tor Arne Vestbø on 29/07/2026 at 15:15.. 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 Pick-to: 6.12 Change-Id: I5d0ead2fee0af9fac21445d03540ed337920a0cf Reviewed-by: Alexandru Croitor <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/dc27fcdaf26cca3fadc92cd0c9aa5398e6b0e774 Git commit 8cae7ea4ac7ecbc0063d37a713332e252739e745 by Tor Arne Vestbø on 29/07/2026 at 15:15.. 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 Pick-to: 6.12 Change-Id: I2111f901473729ab1abe10df7897dfc24ca4ac79 Reviewed-by: Alexandru Croitor <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/8cae7ea4ac7ecbc0063d37a713332e252739e745 Git commit f0e500207eb4f22e9548627527ed75f3e08be5eb by Tor Arne Vestbø on 29/07/2026 at 15:15.. 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 Pick-to: 6.12 Change-Id: Iee2523e1927ad67aa06bcde3d1b08fd284713e43 Reviewed-by: Joerg Bornemann <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/f0e500207eb4f22e9548627527ed75f3e08be5eb Git commit 9e3bbffbb3d55001c1147c878cc3a7d10fcb3af6 by Sami Shalayel on 29/07/2026 at 15:39.. qqmldomelements: remove left-over line The keys variable does not seem to be used and seems to be a leftover, remove it. Change-Id: I79207f95d5b677a66cc803270f0913fa98026ee5 Reviewed-by: Olivier De Cannière <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/9e3bbffbb3d55001c1147c878cc3a7d10fcb3af6 Git commit 4233c0c9fdaefa8802a0a6a26b915f475e7e9ad6 by Sami Shalayel on 29/07/2026 at 15:39.. 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). Pick-to: 6.12 Fixes: QTBUG-148180 Change-Id: I3d821e2bb4ee02c23e303958320714801fc1a1f9 Reviewed-by: Alexandru Croitor <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/4233c0c9fdaefa8802a0a6a26b915f475e7e9ad6 Git commit 6853ad42fae3bb53687b37066293298868d3b478 by Sami Shalayel on 29/07/2026 at 15:39.. qmlls: remove OpenDocumentSnapshot unused members The members are never written to, remove them. Change-Id: I2383475e87b1effac9e17daf1ac20d4b3b548b19 Reviewed-by: Ulf Hermann <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/6853ad42fae3bb53687b37066293298868d3b478 Git commit a8ec4a63ecf70e4b9ff59232cfc7094d58348de9 by Sami Shalayel on 29/07/2026 at 15:39.. qmlls: avoid copy in OpenDocumentSnapshot Take the QDebug object by reference instead of by value. Change-Id: I80d1632a8b064da5a28aa8a85af1073bc735d8e8 Reviewed-by: Ulf Hermann <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/a8ec4a63ecf70e4b9ff59232cfc7094d58348de9 Git commit 2c7f95f4890cc4f1ae0f1d151628393b5721c702 by Sami Shalayel on 29/07/2026 at 15:39.. qmlls: don't print out qml file content to log on each key stroke Don't print out the qml file content to the log everytime the file changed, this spams the log and potentially leads to very big logs. Also, customers might not know that logs contain their (potentially confidential) code and might post logs publicly online on the qt bug tracker for example. Pick-to: 6.12 6.11 Change-Id: Ic18b5937079f6d170a58e2d479e965f355685abb Reviewed-by: Ulf Hermann <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/2c7f95f4890cc4f1ae0f1d151628393b5721c702 Git commit 581f60d13ee93f647dd1d9324e8f624e5e2448a9 by Sami Shalayel on 29/07/2026 at 15:39.. qqmldomastcreator: use qCDebug() instead of qDebug() Use the creatorLog logging category when disabling script elements. Change-Id: Ie4cacdd15db026cfd1d783c5a730fdaac0fe5035 Reviewed-by: Ulf Hermann <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/581f60d13ee93f647dd1d9324e8f624e5e2448a9 Git commit 71568b04ee514ef751e89e53863ce0395c3d89fc by Sami Shalayel on 29/07/2026 at 15:39.. qqmljs.g: don't detach QList in range-based for-loop Use std::as_const or const temporaries to avoid detachment and the "Range-based for loop might detach Qt container of type QList." warning. Axivion-Id: SV1033 Axivion-Id: SV1034 Axivion-Id: SV1035 Axivion-Id: SV1036 Change-Id: I1775b2bd77c7944ceca28d17d4a0640366520211 Reviewed-by: Olivier De Cannière <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/71568b04ee514ef751e89e53863ce0395c3d89fc Git commit b80b013e6844e4ade44e1c42390a346daa62e309 by Oliver Eftevaag on 29/07/2026 at 15:40.. 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 Pick-to: 6.12 Change-Id: I53fd6b1718a95afcc654d087dddd986b866c42a1 Reviewed-by: Mitch Curtis <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/b80b013e6844e4ade44e1c42390a346daa62e309