aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update dependencies on '6.9.2' in qt/qtdeclarativev6.9.26.9.2Qt Submodule Update Bot2025-08-171-5/+5
| | | | | Change-Id: I1cc8d0b1e340c64ef3723ee2484d1f255193aae6 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on '6.9.2' in qt/qtdeclarativeQt Submodule Update Bot2025-08-131-5/+5
| | | | | Change-Id: Ic799033acdbc18d3e31df2ee766eba5fdaea3048 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on '6.9.2' in qt/qtdeclarativeQt Submodule Update Bot2025-08-071-5/+5
| | | | | Change-Id: I47ab52342750186d98da6098847d9514e93c11e5 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Mark the JIT related code as security criticalFabian Kosmale2025-08-056-0/+6
| | | | | | | | | | | | | | | | | Anything emitting executable code at runtime obviously ought to be under utmost scrutinity, so mark most of the JIT related files as critical. Two of the three headers don't contain any actual logic, they get the (default) significant label. Fixes: QTBUG-138341 Pick-to: 6.8 QUIP: 23 Change-Id: I80a39a0154d176c58dee1d865e33cf32149b3a82 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit a3699e3e5cddb5dfca21179f6bd1bc9d88caee5a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1bd6f94bc3547771e3fbec89ae1532c14d3f90c4)
* cmake/qt_add_qml_module: Fix QtQuick auto dependency setupFabian Kosmale2025-08-058-15/+100
| | | | | | | | | | | | | | | | | | | We need to actually defer the code which attempts to detect whether we are linking against QtQuick to the point where we write-out the file, as the user is not unlikely to use target_link_libraries _after_ qt_add_qml_module. Amends 065b784cab3ff8e8a1dd1f5a304c6b8c3f222d79. To test that this works, we run the all_qmllint target of on an example project. We need to add a .qmllint.ini file to let qmllint fail the build if there are any warnings. Pick-to: 6.8 Change-Id: I7e00583b3a5b38549db2be13b1a8817b8489496d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 0051e751c3773f63de5259bf9377cab7c6068422) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit a11ad89a3031bb74a36d0e0b9d96eaff13318890)
* Specify the OUTPUT_DIRECTORY for tst_qmlcachegen_aotstatsAlexey Edelev2025-08-051-0/+1
| | | | | | | | | | | | Ensure that we produce the correct directory structure for the QML module. This suppresses the tooling-related warning. Pick-to: 6.8 Change-Id: Ia391663806e4d3428ca3ae2a5bfa8dda95f833da Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit d176aec80f066ff36535aca06c03ae83d3652349) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit c97c51199593cdaa0064133e9556b40d8a633d68)
* QQuickPressHandler: c++23 compile fixTim Blechmann2025-08-051-1/+1
| | | | | | | | | | | | | | | When building with c++23, the `= nullptr` assignment to a unique_ptr fully instantiates the underlying type to synthesize the destructor. This means the forward declaration cannot be used. Relying on the default constructor as workaround. Pick-to: 6.8 Change-Id: Iff411ae5ea6fe716dc1e2c2c4dbba9e46918fae5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 3bf35c1d9e9b11a93236612cd4b93e8a7b6519f1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 83932d0f5d65a6e785e0899113d3559eb6c33816)
* Doc: Create a Getting Started section for the Qt Quick moduleAlexei Cazacov2025-08-0558-1/+4449
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit moves the "Building UIs with Qt Quick" tree section to the Qt Quick module as a getting started subtree. Changes: qtquick-debugging.html - moved to concepts/Debugging qtquick-deployment.html - moved to concepts/Deployment qtquick-performance.html - moved to concepts/Performance qml-codingconventions.html - moved to guidelines/Coding Conventions scalability.html - moved to guidelines/Scalability qtquick-qml-runtime.html - moved to the qml module "Use Case" topics moved to Getting Started: Visual Elements In QML -> Visual types Positioners and Layouts In QML -> Positioners and layouts Responding To User Input in QML -> Handling user input Displaying Text In QML -> Displaying text Animations In QML -> Animations Style And Theme Support -> was deleted (it had almost zero useful info) Integrating JavaScript in QML -> Integrating JavaScript in QML Task-number: QTBUG-134130 Change-Id: I14c8e4abadc587fbba788b7ce479c3a8364d0a42 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io> (cherry picked from commit 161464abf696d5f64c1e44c3b49313e84e51e709) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b3dfbbf7a8470b5c79fe2d7ce19e9c406bdcff14)
* qmllint: emit parser warnings via QQmlJSLoggerSami Shalayel2025-08-041-13/+7
| | | | | | | | | | | | | | | | | | | We emit all warnings with QQmlJSLogger, so don't use qWarning() for parser warnings. This makes our parser warnings more beautiful because QQmlJSLogger can print the code around the invalid token, for example on unexpected token errors. Also make sure that we use the correct logger to emit the parser warning. Pick-to: 6.8 Fixes: QTBUG-137029 Change-Id: Ibf2a24cd17c20edac3c20dd44185f18e891eab66 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit f3d5e44df8a11ce0636b949ec4e7a73cd4cfd5f8) (cherry picked from commit 5bd55b5c99d628645f7a9ea1fad007e2b2a79af8)
* tst_qquickmenu: fix "cannot show menu: parent is null" warningMitch Curtis2025-08-041-1/+0
| | | | | | | | | | | | | | The test shows it after the menu gets a window anyway, so we don't need to try to make it immediately visible. Amends 19637c2241724cac55315afbb70b5f4333a2065b. Pick-to: 6.8 6.5 Change-Id: I779287ae499ef26196c26e5d44d277e9a6223610 Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 1025a40812cb4b0b010815533305e7ca88a5ac2c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit c224e324bba06b920e0ed9aad207a05b75811596)
* Curve renderer: Handle multiple syncs before updateNodeEirik Aavitsland2025-08-041-4/+12
| | | | | | | | | | | | | | | | The renderer may receive multiple beginSync/endSync calls, with new path changes inbetween, before updateNode() is performed to commit the new node data. For a shape in the default non-asynchronous mode, the later sync rounds would not be handled in a timely fashion in such cases. Fixes: QTBUG-133267 Pick-to: 6.8 Change-Id: I65345b50755a2528663a28de3599be0b256a4790 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit b09b10373678e0345bea57910807f9f8f5fe18e4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit aaa656e470da840559ddf85b56ac810b2a874d7c)
* Update dependencies on '6.9' in qt/qtdeclarativeQt Submodule Update Bot2025-08-041-5/+5
| | | | | Change-Id: I68f41973a397ed4d4d0f6c1e218e06c234dea191 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Use Accessible.name for StaticText in QAccessibleQuickItemLars Schmertmann2025-08-031-2/+10
| | | | | | | | | | | | | | | | | | Currently it is not possible to select QAccessible::StaticText with the common keyboard shortcuts of screen readers on Windows. QWindowsUiaTextProvider uses QAccessibleTextInterface but QAccessibleQuickItem does not provide text in text(QAccessible::Value) because QAccessible::Value is logically only implemented for QAccessible::EditableText. So we need to provide QAccessible::Name in the QAccessibleTextInterface. Fixes: QTBUG-137860 Pick-to: 6.8 Change-Id: If5da452985b838d3b4c1dff2444fdea2618aaaf6 Reviewed-by: Shawn Rutledge 🏖️ <shawn.rutledge@qt.io> (cherry picked from commit 30453147f7770e1fad34735240cbd9283814c683) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 18090a16e3443ab705894240402f47ccc9c9091d)
* Dialogs: Declare FileDialogDelegateLabel from its module aliasOliver Eftevaag2025-08-015-5/+5
| | | | | | | | | | | | | | | This fixes an error that recently appeared, where FileDialogDelegateLabel weren't considered a valid type by the engine. This is likely related to how QtQuickDialogs uses file selectors to choose which QML files to use. Pick-to: 6.8 Change-Id: I1de72b63100feabfd080a3dc905ef4e120e733cb Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 87f6e63dfc32e4eac861f3490cb961dfbb028b23) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit affce024c8178e55433aed2bdcdb0acd106a3e80)
* Remove link to deprecated MS documentationBenedikte Holm2025-08-013-3/+3
| | | | | | | | | | | The documentation on the MS site does not exist anymore. Pick-to: 6.8 Change-Id: Id8093840ac84c0b8d77305dd7b9db28067c3c575 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 0e67794e730abdf6a9513631510e1f2e4c930bb9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1d81e65dc0bddd3b8a4df8f7fa0749f543b27973)
* Update dependencies on '6.9' in qt/qtdeclarativeQt Submodule Update Bot2025-08-011-5/+5
| | | | | Change-Id: I706da7f0499b03be5ea35f67abe2706b119f6661 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Material Toolbar: Reflect background color with set custom primary colorSanthosh Kumar2025-07-312-9/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the quick material style, the primary color or any other colors within its color system would be considered as custom if the set color is outside the predefined enum colors or provided in other color formats. These colors within the material color system can be set by the user through options such as conf or env. The material toolbar, by default, initialises the background color with the primary color. Thus, it's expected implicitly that the background color should reflect the primary color as set by the user. It's also to be noted that this does not necessarily mean to consider background color as custom (as it hasn't been explicitly overridden by the user). This assumption of custom background color has been corrected as part of patch 76d7080fbefc33988d8517f1a964ebdb5c3b3dd2. The controls (such as Toolbar), when requesting the background color, validate whether it has been explicitly set or not. If set, the same shall be provided; otherwise, it can be colors from the predefined range or the default color. In this case, the background color would not be considered as explicitly set (reflecting the primary color), and thus it falls back to the default color as it's also not within the predefined range in the material style. But it's valid to expect the primary color as set by the user. This patch resolves this issue by having additional validation with the primary color properties when providing the background color. Fixes: QTBUG-138602 Change-Id: I1ef1d1b4cd59ec191d6b3cf2886640c52193248e Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> (cherry picked from commit d542f1a60f7617a3b9a465c18e08c5850d38407e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 6420f64787d40c7bac55d072e758104889915e79)
* Update dependencies on '6.9' in qt/qtdeclarativeQt Submodule Update Bot2025-07-301-5/+5
| | | | | Change-Id: I11a62599932efe9d2e73c1565d388618c6bbac37 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Doc: Remove link to deprecated method QQmlEngine::importPluginKai Köhne2025-07-301-1/+1
| | | | | | | | | | | The method got deprecated in Qt 6.4. Pick-to: 6.8 6.5 Change-Id: I8cd380f65b4cd800bbc028b3fbe1aefd98881269 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> (cherry picked from commit b7748afc423d0cc8b4fec39a6585d5328fc23bd9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 3954137c9156771cea0a06d1b8ec52eb273b0a1d)
* qt_generate_deploy_app_script: Handle executable names with spacesKai Köhne2025-07-301-3/+3
| | | | | | | | | | | Pick-to: 6.8 6.5 Task-number: QTBUG-138155 Change-Id: Ia06b2b88dc309cd12f6874ba984b37c294670659 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 847afd03cd4ebc9b87bc51573448cc5ac6fcf4bb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 2e9a37eb8fbeb241b46c8febf456f9708a566292)
* sg: Fix culling in layersLaszlo Agocs2025-07-2911-7/+568
| | | | | | | | | | Pick-to: 6.8 Fixes: QTBUG-136611 Change-Id: If2a0a0365ca24360d850ffce98c0bec4a3961976 Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io> (cherry picked from commit e32d335c8ff6a78d0601453b8cd805b097faa26f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit c42721eb3baf3dc64362a1698b3bb8956dcde540)
* Doc: Fix link in font documentationKai Köhne2025-07-291-1/+1
| | | | | | | | | | Pick-to: 6.8 Change-Id: Idcb83c2096dc3e9faa3c8b429b0444ce386c56fb Reviewed-by: Alexei Cazacov <alexei.cazacov@qt.io> Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> (cherry picked from commit d232d16c79c0b8cd26ad45e9c24b75c8c3e9dd35) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b361bd50b30337552b3d94d80784de18884a9353)
* Fix QSGDefaultRectangleNode::color() always returning invalidDheerendra Purohit2025-07-281-0/+1
| | | | | | | | | | | | | setColor() updated geometry colors but did not assign the input color to m_color. This caused color() to always return an invalid QColor. Fixed by assigning m_color = color in setColor(). Fixes: QTBUG-138358 Change-Id: Icb00d26e624b7437d48253a3f7ea0dd64e68baf8 Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 6b58ea261f9031bbb3a849e4bebf5e01d836dfea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b6bfb17a468931f5309422ecb137e584cbc42bdd)
* Make sure we propely dereference all glyphs in distance field cacheEskil Abrahamsen Blomfeldt2025-07-284-8/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we reference glyphs in QSGDistanceFieldGlyphCache::populate(), we do this before they are added to the cache, so the cache coords have yet to be registered. So even for empty glyphs that cover a 0x0 area, they will be still be registered as referenced in the cache. However, when dereferencing the glyphs, we would skip if the glyph did not occupy any space in the cache. This asymmetrical behavior could lead to a glyph cache mistakenly being counted as active even after deleting all nodes that reference it were gone. Thus it would stay around in the glyph cache when it's invalidated, even though all references are actually gone. As a simple fix, we make sure the referenceGlyphs() and releaseGlyphs() are always called for all glyphs. This means that the list of unused glyphs may sometimes contain empty glyphs, so when we recycle the unused glyphs, we need to make sure we skip that for glyphs that do not occupy any space. Pick-to: 6.8 Task-number: QTBUG-132108 Change-Id: I919d8b6a6a2de9bb1f0fccd7c6ffa00436e6ffa5 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit baaa6f2171f2830cfbde60b7902dd167123350c0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 96fe524bab9aa7386ffad9aaa81fadc9a3567180)
* QColorOutput: flush stderr on destructionSami Shalayel2025-07-281-0/+2
| | | | | | | | | | | | | We write via fwrite into stderr, but we never flush. Flush stderr on destruction. Pick-to: 6.8 Task-number: QTBUG-137029 Change-Id: I72ff1fe4461b35412539120d3418037dbee84c0d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit e365250e9da57971ea6eac9e2af66ad7cb85996d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 063871f22480dbdf5e8516b696b143064339d0b3)
* Doc: Clarify stacking behavior in QQuickitem documentationDheerendra Purohit2025-07-281-4/+6
| | | | | | | | | | | | | | | The documentation of QQuickitem::stackBefore() and stackAfter() incorrectly stated that the sibling item was being moved. The updated documentation now correctly states that the current item (this) is moved before or after the sibling in the stacking order. Fixes: QTBUG-77201 Change-Id: I608f0eb5bc5338e58ba82ab656ea7eb1d83e2e28 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 0554999c0634108cf8742e0b16bce41ede6d8cec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 549bc62b4689e244b18fdbc146b779a9535dfdd7)
* Doc: Describe when Repeater.count doesn't match delegate instance countDheerendra Purohit2025-07-281-4/+22
| | | | | | | | | | | | | | | | | | | Clarifies the known conditions when Repeater.count does not match the actual number of delegate instances: if it doesn't have a visual parent ("set up correctly" was a bit vague, raising the question of whether there are other forms of incorrectness), or because it's temporarily out of sync during delegate instantiation/deletion. If you need more info, monitor the signals and/or check itemAt(). Amends a6eac7e299016c9ee8742abffd780683adac3066 Pick-to: 6.8 Fixes: QTBUG-127955 Change-Id: I6862beb8d61b1cf8a747bdc3ad02226691e6c3eb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 70e0daf318086ce293879dfbc25a61f2a7b34466) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 820a9c7f2feeaa44c9f32214e11d54d065471b99)
* Doc: Fix incorrect description of SignalSpy::clear() behaviorDheerendra Purohit2025-07-281-1/+1
| | | | | | | | | | | | Updated SignalSpy::clear() QML documentation to clarify that it does not affect the valid property. Fixes: QTBUG-54605 Change-Id: I9216cc0100a5eb2c463391db042d13c799e2318b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit aaaa7a0630a69e83f510850ea12d3a6c1ee50da9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 28bcc7ca910eacda8091c0e5d5a9a34c84c0018c)
* Doc: Add textual descriptions for QtLabsPlatform documentation imagesDheerendra Purohit2025-07-288-11/+11
| | | | | | | | | | | | | Added textual descriptions for all images in the QtLabsPlatform documentation to ensure QDoc generates appropriate alt text. Fixes: QTBUG-136147 Change-Id: Ice484beaa12e2169923a84181257562b720ad61e Reviewed-by: Alexei Cazacov <alexei.cazacov@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> (cherry picked from commit bbababb64356acaef9da82bc6e4b417732f94647) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 660c16d1fad564ec693a54e7e37990bc14a4bf4f)
* Doc: Improve the documentation of effectiveScrollBarHeight/WidthDheerendra Purohit2025-07-281-4/+6
| | | | | | | | | | | | Clarify the effectiveScrollBarHeight and effectiveScrollBarWidth refer to the actual height and width used by visible scrollbars. Fixes: QTBUG-120706 Change-Id: I1b9efd998922f4e6fa20564710266a012b9de600 Reviewed-by: Doris Verria <doris.verria@qt.io> (cherry picked from commit 5b3644cdd48095fe4d2db9fc0c6b973ad81918de) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 686a11dbc587d8f29606f58f2ad4e7f49d6a00ab)
* Make it explicit that TableView's rowHeight and columnWidthProvider's can ↵Kai Köhne2025-07-253-6/+46
| | | | | | | | | | also return undefined Change-Id: I074c817a9e29a385ba2b6b8ee32c06c84853ac99 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 090865a11230f42069b1c5c0ef8ac251183f6f74) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit af1742c0af05b619056bd347e7ec63a71b2a067c)
* QQuickAttachedPropertyPropagator: fix incorrect logging outputMitch Curtis2025-07-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The output below is from running tst_qquickmaterialstyle::Material::test_inheritance_popup(accent). Before: initialize called for Popup_QMLTYPE_42(0x1df863e3ce0) - looking for attached parent... findAttachedParent called with QQuickMaterialStyle Popup_QMLTYPE_42(0x1df863e3ce0) - attachee does not belong to a popup - attachee is a popup; checking its window After: initialize called for Popup_QMLTYPE_45(0x1e4003fb460) - looking for attached parent... findAttachedParent called with QQuickMaterialStyle Popup_QMLTYPE_45(0x1e4003fb460) - attachee is not a popup item - attachee is a popup; checking its window Pick-to: 6.8 6.5 Change-Id: I5d0af24f918efd1cd10ea28715ea1c1badb0736d Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit d6f478999ebbad33b7446389cce9ff57195f8c77) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit dda70ffad40a48b140fab8b348308cb1d1cdeb6d)
* Avoid accessing garbage memory on the js stackLuca Di Sera2025-07-244-8/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When allocating an object on the JS heap the garbage collector might be run as part of the allocation, in particular as a way to possibly make space when the memory space is starting to get filled up. When the garbage collector runs, it is possible, as part of its normal processing, that it will access the JS stack, and try to interact with the objects that are stored on it. In particular, while collecting from the JS stack, the garbage collector will need to mark all Managed objects that are found on it. When allocating on the JS stack it is possible that the allocation and the initialization of the allocated memory are performed in separate steps. When this is so, it is possible for the allocated element on the stack to represent garbage memory in between being allocated and being initialized. Since the garbage collector can inspect all elements on the stack as part of its processing, it is possible for it to inspect an element that represents garbage memory if it runs in between the allocation and initialization of that stack element. Furthermore, since each allocation might run the garbage collector, then any allocation in between the allocation and initialization of such a stack element can access garbage memory. In particular, if the garbage memory represents a pointer to a previously existing Managed object that was swept, the garbage collector might try to mark an object that shouldn't be marked. There are a few cases of this currently in the code-base. As part of dealing with the JS spread operator, in particular when processing the spread element, we juggle with multiple allocation of uninitialized elements on the js stack. During this processing multiple part of the code can allocate. For example, the spread element is handled through the use of an iterator that, during its creation, might allocate as during the creation process we might convert the spread argument to object so that the iterator can deal with it, which would be the case for a spread argument that is a string. When allocating an element on the js stack that is bound to a certain scope, we sometime allow a conversion to be performed on the original element. This conversion routine might allocate, and it does do so for the currently existing conversion to a String and to an Object. The conversion routine is called after an uninitialized element is pushed on the stack, and can thus incur into the above issue. To fix the issue, an additional method was added, `construct`, that ensures that allocation and initialization happen sequentially with no allocation in-between, using an initialization value that is passed as an argument. The new method was applied to the code affected by the bug, in practice, reordering the operations in the affected cases such that the bug-producing allocations happens before the allocation on the stack such as to avoid the bug while keeping the same semantics. An exception was taken for the handling of the spread argument, which has a more complex control flow, where the solution that was used is to initialize the memory to the empty value as part of the allocation. A series of test cases showing an example of the issues were added to `tst_qv4mm`. The tests make use of the fact that we assert when we find a Managed object on the js stack that is not in use, as that is a logical error for the garbage collector, to observe the issue and are thus skipped when assertions are not enabled. Change-Id: Id478e16ee22e20e77d01fdfae9a0269d6d709892 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 64b3748b39db6241a914da8c358d245061977409) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* FluentWinUI3 style: Don't set imlicitWidth for combobox content itemDoris Verria2025-07-241-2/+0
| | | | | | | | | | | | | | | | | | | | We were setting the implicitWidth of the combobox's inner text field to depend on the width of the content (ie: text). However, for an editable combobox this means that the textField will expand horizontally as you type to accomodate for the new typed text. This is not wanted behavior. To fix, don't manually set the implicitWidth to the content item, as a text field already has its own implicit size. Note that "implicitResize", which controls whether the textfield recalculates its implicit size when its content changes, is set to false by default for a text field. Pick-to: 6.8 Change-Id: I2f7ca2706dc2957fd600a0c06dc28010bfb4f7c6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit d136963fd6c121c7904717ce6e3ab6d9d5011c7e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 4658437dd307ce7c3c3b46e7f4d98b13c0591b51)
* Update dependencies on '6.9' in qt/qtdeclarativeQt Submodule Update Bot2025-07-241-5/+5
| | | | | Change-Id: Iad996abfa61dd4c067386b6770f0432fef86aa78 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Minor QSGRenderNode doc cleanup to better match Qt 6Laszlo Agocs2025-07-241-76/+44
| | | | | | | | | Pick-to: 6.8 Change-Id: Ia2bd028fd2d948aefdc49f5a3044f2cef7371f71 Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io> (cherry picked from commit d3d045f7e9f1a2140e0d6db6c722f6a907ba2cdf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit abc86b35df13b0405795c9209d06efbb10857fcd)
* tst_qquickmaterialstyle: add test for popup propagation to child itemMitch Curtis2025-07-241-0/+29
| | | | | | | | | | | | As a sanity check to confirm that this works for a related follow-up patch. Pick-to: 6.8 6.5 Change-Id: Ic62c19ba33bd24f0855a224d8120a9b4a324bc9b Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 38f5e4ad4732c2f01df91ba4550e1ebb3320ad14) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1dc8edde4370da415f4fe6e57893c6bbf78f2abe)
* Document that qmlAttachedPropertiesObject only creates object if it's missingMitch Curtis2025-07-241-4/+4
| | | | | | | | | | Pick-to: 6.8 6.5 Change-Id: I1cd7e68182ce97576aba91a5ac95439faf35491b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit 91e868c43e8559757007a7b362451d4904dac08b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8bd4e73317bec020924ee7cf16c835eeb1e2b0d1)
* MonthGrid: address post-merge review feedback on timezone patchMitch Curtis2025-07-232-13/+8
| | | | | | | | | | | | | | | | | Amends 57325020f65665d91e63dc300d674a8e8dc411f1. - Add a comment explaining why we store QQuickMonthGridPrivate::pressedDate as QDateTime now. - Store QDateTimes as local time to simplify things. - Make firstDateToDisplay const while we're here. Task-number: QTBUG-72208 Pick-to: 6.8 Change-Id: I9fbee12608855f30d229b4e3a4e78da5561feb44 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 2e1337d87a60b8d1a30f5296bf3f614ec0bca383) (cherry picked from commit 60f0e4f5f85365a1a342c28e981ee681c94ed7e8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qmltyperegistrar: Print error message if qmltypes file can't be openedAlexandru Croitor2025-07-231-1/+4
| | | | | | | | | | | | | Print exact error message when the qmltypes file cannot be opened for writing. Pick-to: 6.8 Task-number: QTBUG-138565 Change-Id: Ieef9af8661d5e1c93e4046d276fdd972d3ff8440 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 47b070caf331957c1295f4ca019ba280d57e0794) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 894f5feec47915f9b416133c5b01f76a20c031e9)
* CMake: More fixes for QT_CMAKE_EXPORT_NAMESPACE not being availableAlexandru Croitor2025-07-2311-7/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The _qt_internal_write_qmldir_part function is deferred to be called in the root CMAKE_BINARY_DIR, where QT_CMAKE_EXPORT_NAMESPACE is not defined if find_package(Qt6) is not called in the root of the project. Make sure to pass the value of QT_CMAKE_EXPORT_NAMESPACE to the function explicitly, from a scope where it is available. This avoids errors like: CMake Error at Qt6QmlMacros.cmake:155 (add_custom_command): Error evaluating generator expression: $<TARGET_FILE:::qmltyperegistrar> No target "::qmltyperegistrar" As a drive by, do the same for _qt_internal_deferred_aotstats_setup and use that variable, instead of the hardcoded Qt6:: prefix. Add test. Amends b47555feff56afa678c4cd91b64b2c77b61b1253 Amends f2889262c86f31d85f2e72edd11792527348b39e Pick-to: 6.8 Fixes: QTBUG-138559 Change-Id: I9ecf2149737f3522fa61b7188403c8470b5a15d3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit afe28ca1cb1ae5a05f9627aa10b494da16c889e4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 83f6edd0908ff4ef183936eae84338c7c1e0bd2a)
* Update dependencies on '6.9' in qt/qtdeclarativeQt Submodule Update Bot2025-07-221-5/+5
| | | | | Change-Id: Ief4465148a03ca23ef466b01ea9b1857221f9bb4 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* FluentWinUI3: Resolve palette against platform theme and app's palette when ↵Doris Verria2025-07-223-25/+35
| | | | | | | | | | | | | | | | | | | | updating When we were updating the theme as a result of the color scheme change, we were just updating the palette to the default colors, forgetting to resolve against the theme palette and the guiApp palette. This was different from the palette initialization logic, which resolves against both platform and app palette, making the style palette inconsistent between the initial palette and the updated one after the color scheme change. To fix, use the same logic when both initializing and updating the palette. Also, refactor some code and function names. Pick-to: 6.8 Change-Id: I80a0983509323002e8d422b79c5271c312d8d963 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit da96a15dfd0e29537d32c367ed066f8bff52958d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit de5a78c1cf9f2a025788a8c9cd8b47d78bda69b6)
* Make AnimatedNodes use afterSynchronizingInho Lee2025-07-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | In Qt scenegraph, 'beforeRendering' is normally connected to renderers' preprocessing and all the QSGNodes should be prepared before this stage. However, AnimationNode's direct connection to 'beforeRendering' cannot guarantee its completion before the renderer's preparation stage. For example in QTBUG-126193, the renderer's direct connection preprocesses QSGNodes and then AnimationNode's 'advance' makes a QSGOpacityNode transparent and blocked. This can cause the renderer to crash. Since most Qt quick animations are updated scenegraph's sync, it might be safe to use 'afterSynchronizing'. Fixes: QTBUG-126193 Pick-to: 6.8 Change-Id: I5514290e66e4600582a7f6b11fa3742ccce701a0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit ba7dcb65dc53dccb49ba37ef1b28ecfdccf4ad13) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 882d37ca310d14761dfd38a238251015bb3c3513)
* qmltyperegistrar: Do not process duplicate metatypes.json filesUlf Hermann2025-07-186-0/+74
| | | | | | | | | | | | | | | | | | If we get the same file twice, that's generally the effect of a linkage cycle. Either we're dealing with a static build where this is fine and we don't need to complain about it, or the linker will complain anyway and we don't have to. Pick-to: 6.8 Fixes: QTBUG-132518 Fixes: QTBUG-127133 Fixes: QTBUG-134292 Change-Id: Iad8b3b5c694d96ebdcbf03522ce2318ae8d24fb2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 5d8a3c1367103a6704910432a6051445e3f01640) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d7468554290e5f10e8db71ca717a73ae800f1d1b) Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
* QmlPreview: Drop existing CUs on main thread, not on debug server threadUlf Hermann2025-07-179-10/+52
| | | | | | | | | | | | | | | | | | Doing this on the debug server thread can cause deadlocks since we may need to serve a file request stemming from type registrations that also lock the QQmlMetaTypeData. Amends commit 618720a3a9a7c3e292ed5fb6792ca4069c90f443. Pick-to: 6.8 Fixes: QTBUG-138349 Change-Id: Iaa6c8cbf9270989aeca0cb84a4a77cd2aee36804 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 64cd070c8c4bee26c04bf48dcd99a29262a2fd6f) (cherry picked from commit fd850bc9dea4ad8acb93cb014c4d14a988a1370f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: link to TextInput's signals in more placesMitch Curtis2025-07-161-1/+15
| | | | | | | | | | | | | | - If you're looking at one, chances are you want to know about the other ones. - We should be encouraging the use of these user interaction signals, otherwise users might just rely on textChanged. Pick-to: 6.8 6.5 Change-Id: I28071c8e8ab8fbb7746810364cca558e06e4884f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 98c82f2e09fba2016e4401e2fd93dbfe04c44622) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 993bd6387e8307fb125f6e81c01ff4a9520bc0a4)
* JIT: Always zero out the accumulator when an exception is thrownLuca Di Sera2025-07-153-1/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently when a JITtted function throws an exception, on exiting, the accumulator is not zeroed-out if we don't have an exception handler and is zeroed out when we do have an exception handler. In the case where an exception handler is missing, this means that if the caller is making use of the result of the function call, it might be dealing with garbage memory. Many times this isn't an issue as the result of the call would correctly be ignored in the face of handling the presence of an exception. Nonetheless, not directly using the result is not necessarily enough to avoid issues with the possible garbage. In particular, if the result of the call is put on the JS stack and handling the exception allocates, the GC might be run as part of the allocation and read the elements on the JS stack, one of which would be the garbage memory that was returned. One case where this can happen in the current code-base is during the evaluation of a non-signal `QQmlJavaScriptExpression`, which does put the result of a call on the JS stack while later handling an exception in a possibly allocating way, with the garbage result still on the JS stack. Furthermore, the interpreter currently isn't affected by the same issue, as the interpreter always zeroes out when unwinding without running an handler. This adds the additional problem of the behavior differing between the an interpreted function and its JITted version in the face of an exception when the result of the call is voluntarily or not inspected. To avoid the issue, the code generated by the baseline JIT was modified to always zero out the accumulator before exiting a function call after an exception, independently of the presence of an exception handler. This further aligns the behavior of a JITted function to that of the interpreter when no handler is present. A test was added to `tst_qqmlecmascript` that exemplifies the issue by passing by `QQmlJavaScriptExpression::evaluate` with a JITted throwing function. Fixes: QTBUG-138242 Pick-to: 6.8 6.5 Change-Id: I969dc790f8a274364ae124afaeae8e2381fc82ae Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 27feb8ba884be638d3cae848c4f4cbff1d29b243) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 98f488af50c82e15a11dfb6960d75e8ba1ee3da3)
* Doc: qt_add_qml_module misses information about find_packageAlexei Cazacov2025-07-154-0/+8
| | | | | | | | | | | | This commit adds a note that calling `find_package` is required for using Qt-specific CMake commands. Fixes: QTBUG-138357 Change-Id: I803208184dc02be799dc8e7fa0d0dce96375e42a Reviewed-by: Eike Ziller <eike.ziller@qt.io> (cherry picked from commit 3fe50b029966fb58d16fa4e8a12b1476313d5952) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 25acde935051580111644b62226daf978028d696)
* tst_qmlformat: Rename QEXPECT_FAIL test files to show that they now passOlivier De Cannière2025-07-153-3/+3
| | | | | | | | | | | | Amends a3863b2d8bfdd2a0c138e857d3f119a5f6dfc11e Pick-to: 6.8 Change-Id: I756621e2ac6d57a555395cb69914e2d0b4431d0e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 6ead474c839c84788e18a6518726c60fd8b6399d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry-picked from commit 4f3bb10e3a7817d6299c3121d49af141c0e5de4d) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>