aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Scenegraph: Nullify QQuickWindowPrivate::rhi on RHI destruction6.10Vladimir Belyavsky2026-04-012-2/+7
| | | | | | | | | | | | | | | | | | | | | | After destroyRhi(), WindowData::rhi and the render thread's local rhi pointer were set to nullptr, but QQuickWindowPrivate::rhi was left dangling in several code paths: - QSGGuiThreadRenderLoop::handleDeviceLoss() - QSGGuiThreadRenderLoop::teardownGraphics() - QSGRenderThread::teardownGraphics() Any code that reads QQuickWindowPrivate::rhi after RHI destruction (e.g. during item reparenting, Loader deactivation, or scene graph re-initialization) could dereference the dangling pointer, leading to use-after-free crashes. Pick-to: 6.8 Change-Id: If4db2c97db4da10e4a419f0a30930ee37120f344 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 6a2e413a5aad4044693960b3cf9a4ec308809a94) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 6b78da362f411315bd766d1ec6789de6b8f55bfd)
* FlexboxLayout: Fix alignment issue with fillXJan Arve Sæther2026-03-312-13/+28
| | | | | | | | | | | | | | | | | | | | | Before telling Yoga to stretch an item in the cross-axis, (by calling setItemStretchAlongCrossSection()), the previous code only checked whether fillX was set, regardless of the orientation of the FlexboxLayout The correct is to check if the item wants to fill in the cross axis, so it should be: if (layout_direction_is_horizontal && item->fillHeight() || layout_direction_is_vertical && item->fillWidth()) Task-number: QTBUG-142021 Change-Id: I23182fbac25c6aa6d3ac9c33c70b99f4018a8fa6 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: SanthoshKumar Selvaraj <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 98ef405b1bfe552899d21e5af4d4738871f6c535) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d96bec8bef10c2c0587417de2d69e378f7e0a1e3) (cherry picked from commit f1197c8214903708a795392353b8120657a6a7e5)
* Fix size hint calculationJan Arve Sæther2026-03-312-15/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes some bugs when calculating size hints, notably: * Include gaps * minimum size hints was not calculated correctly (was always (0,0)) * maximum size hints was always infinite size hints are now calculated differently depending on wrap or not (for brevity, the following only describes it for direction == Row): If it doesn't wrap: minimumWidth: the sum of all childrens minimumWidths (+gap+margins) minimumHeight: the maximum of all the childrens minimumHeights preferredWidth: the sum of all childrens preferredWidths (+gap+margins) preferredHeight: the maximum of all the childrens preferredHeights maximumWidth: the sum of all childrens maximumWidths (+gap+margins) maximumHeight: the maximum of all the childrens maximumHeights Otherwise, if it wraps: minimumWidth: the maximum of all the childrens minimumWidths minimumHeight: the maximum of all the childrens minimumHeights preferredWidth: (this might change in future) the sum of all childrens preferredWidths (+gap+margins) preferredHeight: the maximum of all the childrens preferredHeights maximumWidth: the sum of all childrens maximumWidths (+gap+margins) maximumHeight: the sum of all childrens maximumHeights (+gap+margins) Except from preferred size, the above is consistent with how e.g. QLabel's size hints are Task-number: QTBUG-141055 Change-Id: Idcdda62e9bafaf6cdc65438867a276b845c07f20 Reviewed-by: SanthoshKumar Selvaraj <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit 3a714efe0672ae1ba06f09864f64957560c69b91) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit b3af589c3d71e6da37acfa982b52b5642c1032b1) (cherry picked from commit f48ee57307317efa8e5ea498686a2f9e9b09024b)
* QQmlSortFilterProxyModel: don't pass const Connection to disconnect()Marc Mutz2026-03-281-1/+1
| | | | | | | | | | | | | | That overload will be deprecated, because the function modifies the argument. Amends 9efc1fb4ac7982f105a13781fccff74a61907601 (6.10). Task-number: QTBUG-144929 Change-Id: Idcbdbaa53312f5556dfdeb2055c26540bc988fd6 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 6229f8991d18b34f12caf1e1c9dce1b328d86b78) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 5b5fba0d6b4bd79ce8d3372ca074b3a8dec17597)
* QQmlTreeModelToTableModel: don't pass const Connection to disconnect()Marc Mutz2026-03-281-1/+1
| | | | | | | | | | | | | | | That overload will be deprecated, because the function modifies the argument. Amends cc0fb193cc65bd6b7f066a6d4a0adf1bdb5a702e. Pick-to: 6.8 Task-number: QTBUG-144929 Change-Id: I3895b65baf87058fbabefbfda3733936a3dd18f0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit f90616c9cf1a0820e38ad9cf67bf42fc6ab2a7e8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 870c541fc3d125f5b13d05b079beb71d7eaed3f3)
* Remove per-library QT_NO_FOREACHMarc Mutz2026-03-276-6/+0
| | | | | | | | | | | | | | | | Since 8edbcdbeb49630c207f3111d24b9c9e07029e333, the whole module is marked as QT_NO_FOREACH, with only individual TUs #undef'ing the macro until they, too, are ported. Amends said commit (6.7). Pick-to: 6.8 Task-number: QTBUG-115808 Change-Id: Ifc72ced05b6e6d929e3eb0ac5211688839d88e0c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit bb6f2e742ee4d40e8ea8f58b7c9fc5e77400b4f9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit f59f6c8c7fcb09e2fa4cd869e35130ccbc034639)
* quickwidget example: fix C++17-ismMarc Mutz2026-03-271-1/+2
| | | | | | | | | | | | | | | | Implicit capture of this as part of [=] is deprecated in C++20, and the replacement, [=,this] is C++20-only, so grab the nettle and list all captured variables manually, which is the only formulation that works without warnings in both dialects. Amends a184f2e0abfa0daf9190b72901208373dd5c1f79 (6.4). Pick-to: 6.8 Change-Id: Ia46b611bb2474799dcf4e2dd113a4dc6cb7fffdf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 7d545fe837b94b5cb1d1b2a960ed6f8a2f477a92) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit aa4a1d4d41606110fd052d3fe5799a9ee74f7f7d)
* fix double lookup in QQmlMetaType::qmlRemoveModuleRegistration()Marc Mutz2026-03-241-3/+1
| | | | | | | | | | | | | | | | | | We shouldn't do two lookups for the rare (as in: error) case that an uri is registered twice, while the non-error case always needs two. Thanksfully, the fix is very easy, as remove() already returns whether something was removed, so just use that info instead of calling contains() first. Amends dfb4778f6ae2c21c4de2d34b58a6dad465af14b0 (5.15). Pick-to: 6.8 Change-Id: I0ea166cd2c74e00fbfb49d1ef4bb241b5289d7a0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 43e299985dd0d478b6e08526c723cc2044ddf364) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 49d293a395ea9dc121ed3938ea982cfc52e0fda8)
* QQuickDeliveryAgent: avoid mutable keys in hoverItems mapAurélien Brooke2026-03-233-14/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | hoverItems was stored as QFlatMap<QPointer<QQuickItem>, uint>. During hover delivery, a hovered item may be destroyed, which turns QPointer keys into nullptr in-place. Since QFlatMap relies on key ordering, mutating keys breaks the map invariant and triggers lower_bound() debug assertions on find(). In release, the same precondition violation is undefined behavior and can lead to missed lookups. Store hover state in a QList<HoverItemState> instead, where HoverItemState keeps a guarded QPointer<QQuickItem> and hoverId. The number of hovered items is small, so linear lookup is acceptable and avoids the map key invariant entirely. Conflict resolution for 6.10: the replacement of QVector with QList in 941445ba18c8003948dc9bb9e257114ca13e12fb and the optimisation to reduce QTransform usage in 81405bdeb45360809a97d12d2ad5ccbaf32af570 was not picked back to 6.10 and required trivial adjustments. Amends d5cd8ac31577f4feecb0934f30f58af25261b5b1 and bbcc2657fa0dbf715e6db7d675662e4be94a1e04. Pick-to: 6.8 Change-Id: Ia63b09c113c9ae78e35bda6d6fab58b807b0115a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 31f6e3b0b2323243b7ed7d0889f16be3de5cb595) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit f40fb23903d18c33076679596c3b07702a7259bc)
* qmlformat: Preserve comments inside array/object patterns and elisionsOlivier De Cannière2026-03-205-12/+54
| | | | | | | | | | | | | | | | | | | | | | We were not recording enough locations for the comments to attach to. Record them and output the tokens with their attached comments so they don't get lost. Remove manual addition of elision commas in PatternElementList and rely on normal ast visiting to reach the elision. Amends d41f97e86702d8c5ac81a4246e1aab8dd965cbe4 Fixes: QTBUG-144812 Task-number: QTBUG-123386 Pick-to: 6.8 Change-Id: I4c942fc7567db990d0fd1734643911159c4ef8cf Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 46e2de544c6374dc075747f50c938e48fb9f0505) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8f65e87d426edf11ec009c2a25eac4e3c8361f4f) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* ContactList Example: place contacts in alphabetical orderRami Potinkara2026-03-203-12/+9
| | | | | | | | | | | | | | | This patch fixes Contactlist example to place contacts in alphabetical order in both use cases: adding a contact or editing an existing contact regardless of the start letter being lower- or uppercase. Fixes: QTBUG-144803 Pick-to: 6.8 Change-Id: I206216c78afb747e54286d7c2bf15408e133c5ca Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit f2df7bb373117a2a95d9b783bc5e58f4e9c516e0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d8d2c5f6a78e479f4d5cf564329de7bd5bdaecaf)
* ContactList example: enable OK button only on valid valuesRami Potinkara2026-03-201-4/+9
| | | | | | | | | | | | | | | This patch improves the dialog, by dimming out the "OK" button until to a contact, either a one to be added or edited, has all necessary information in place. Task-number: QTBUG-144803 Pick-to: 6.8 Change-Id: I749ac52fc772840256b6c99f1b21c00fed9e338b Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Jani Korteniemi <jani.korteniemi@qt.io> (cherry picked from commit 9f3e8d73bfc068aa74f16bc3b89aae2db241aefd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit a1616fb796782e4da351755dc84952da1ebece28)
* ContactList Example: change Number TextField to accept only digitsRami Potinkara2026-03-201-0/+1
| | | | | | | | | | | | | | This patch simplifies Contactlist example Number TextField input by allowing user only to type digits to there. This makes the typing of the numbers faster. Task-number: QTBUG-144803 Pick-to: 6.8 Change-Id: Id7d3fed33552c6780cd088d58b63dcc6d2d01b22 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit ddd5b83cade5ef46a335f4556cd93a1a19d5fffa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ec7843ec5154c7b555e59d9fb4913828c0e0d09a)
* lancelot: Add a test for vertical alignment of text componentsEskil Abrahamsen Blomfeldt2026-03-191-0/+84
| | | | | | | | | | Pick-to: 6.8 Task-number: QTBUG-141251 Change-Id: Ibd29f0e65c2940a4e20506ff2237c380d0fb77c7 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 0120a27c11d3c244364a95250cf509e3c3a32644) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit f2f34d67c0597aa0a8e722f53cc834be58699c0d)
* qqmljscontextualtypes: use const ref for setType()Sami Shalayel2026-03-192-2/+2
| | | | | | | | | | | | Take the const argument by reference. Amends 49987ee31aed48c204350b38694249eb52e3e933. Pick-to: 6.8 Change-Id: Ib1b0dc44493e808da4a9109e9503c98f0b6e30df Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 9db4c72b88066b313a56c53b627638e284742d57) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 83c5c2482937a66edbb964ad1bb53f9d0d8063b7)
* qmlClearTypeRegistrations docs: Mark warning as suchFabian Kosmale2026-03-191-3/+5
| | | | | | | | | | | Mark the warning that all engines must be deleted as an actual warning. Pick-to: 6.8 6.5 Change-Id: I602b4a5bef13e3e96d10a2ad34b827431bd2a7c2 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit 2d105c2a230d56e9f8f085c7c01b18d37917cb59) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 51b0ef089c06434b790fbdaa2f64464ab3b735de)
* QtQuick::TextInput clarify ImhSensitiveData behaviour on Android IMEsKonsta Alajärvi2026-03-191-0/+7
| | | | | | | | | | | | | | | Add information about Qt.ImhSensitiveData use on Android and that it may be interpreted by some Android IMEs as a “password‑like” variation. Those keyboards can disable predictive input and, in some implementations, restrict available characters to Latin/ASCII. Task-number: QTBUG-143245 Pick-to: 6.8 Change-Id: I2912600061c4fd0af5556fed4a17cfcb0e3dca8a Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 1a1fc239bc944b9bdbfa3d7d78f15d17b361ac0f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 5e9f28262e58fb09f6bfdb42a7ee90aa820a60a8)
* qqmljscontextualtypes: respect precedence when adding typesSami Shalayel2026-03-1815-98/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QML runtime uses precedences to import types, types imported via qmldir's import are less relevant than types with the same name imported via a QML `import ...` statement, for example. Mimic the precedence from the runtime in the tooling (but make the default 1, so that inline components, who should always be considered first, are 0 and don't need special casing), and increase the precedence during imports when importing QML module dependencies. Force users of QQmlJSImporter to specify a precedence, and provide an enum with default precedence values. QQmlJS::ContextualTypes only replaces types with the same name if they have the same or higher precedence, therefore only keeping types in the QHash that the QML runtime would select at runtime. Add new ContextualType type that contains the precedence, and inherits ImportedScope<QQmlJSScope::ConstPtr> to not change all the users that expect a ImportedScope. Only the QQmlJSImporter needs the precedence, the other users don't care about the precedence. Remove ContextualTypes::addTypes(&&) that didn't make use of the temporary argument anymore, and update the names accordingly to the preference. Pick-to: 6.8 Fixes: QTBUG-132452 Change-Id: Id83cfdd0b9b293b00c7459cc397e307e91590ded Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 49987ee31aed48c204350b38694249eb52e3e933) (cherry picked from commit 23414d51271080d9eba85350b1d3a4d2bb366c69) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qqmljsimporter: make methods with lambdas of processImport()Sami Shalayel2026-03-182-113/+119
| | | | | | | | | | | | | processImport() is too long, replace the lambdas it contains with member methods. Pick-to: 6.8 Task-number: QTBUG-132452 Change-Id: I77525cdc7d2a99dc181b95ece3711f7043c96d8e Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit 4cf4dba61bc1ff6eff4e85c992d60750d36bc830) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 717408e4ce617a2a62db3676ce3891a4bf7fb483)
* qmlformat: format lambdas correctly with MaxIndentWidth optionSami Shalayel2026-03-186-0/+45
| | | | | | | | | | | | | Teach qqmldomcodeformatter about lambdas, and treat their indentation in the same way as functions. Fixes: QTBUG-140506 Change-Id: I29bf1bb6db149b2f42a6dc55062dc82fc0e45c2e Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> (cherry picked from commit 7d77070c7ad29b3b4b9818699251f64634220157) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d76702f6652aaef7fbd546247e07ff7ce823fd5b) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_qmlformat: allow snippets to set linewriteroptionsSami Shalayel2026-03-181-1/+60
| | | | | | | | | | | | | | | | Allow tests to set the linewriteroptions. Changes compared to dev: Partial cherry-pick of f74b1936ac52a70590bfa81d74c8af9d404ddc39 to add the snippet tests to 6.8. Task-number: QTBUG-140506 Change-Id: I8cace9a25e9afc1595cfa15861a6d5286e4592df Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> (cherry picked from commit 7c5a6ee38258063ff210a6d985c4ad7dda334db3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 74ecc9c7028806f409f071ac1fd6444e1fd3f9ba) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tst_qmlformat: use indenting line writer if column break is in useSami Shalayel2026-03-181-3/+5
| | | | | | | | | | | | | Amends 3bb4962254498504c135ca0243c0be5bdf6defad that uses the indenting line writer in qmlformat but not in the qmlformat tests. Task-number: QTBUG-140506 Change-Id: I93ce76022958bf51333d8db3ce5b42fbc295062b Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> (cherry picked from commit 56ffd68aba05155671a55fd7544fa8f47ec829dc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 68aad6080966ec62fc9b455ce1cce292133dc443) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Silence bogus MSVC warnings in QJSEngine::fromVariant()Ulf Hermann2026-03-181-0/+6
| | | | | | | | | | | | | There is no unreachable code there. Pick-to: 6.8 Fixes: QTBUG-144933 Change-Id: I2d57fc331abb5203c89157462f5a95401c4069d6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit cf0673eec5bd191c2687536b195c9774fe34e69f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8500fb9302930459ab38b7b370f61cae5d34d482)
* QmlCompiler: Don't try complex conversions in canPrimitivelyConvertFromToUlf Hermann2026-03-185-2/+56
| | | | | | | | | | | | | | | If a constructor takes a constructible type as argument and we are given the constructor argument to that type, we may be able to create that argument via QJSPrimitiveValue, but that might give us an infinite recursion. We don't want that here. Pick-to: 6.8 Fixes: QTBUG-144999 Change-Id: I6a2e9b6ced1bb534a3617337d710271e369e8aff Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit d8729833750b11713e0aebf8ddbcd38787ad1c2a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 6bd9e38eeae69274b7c23791dfd9637aa19df4a7)
* QQuickTextNodeEngine: fix AlignBaseline positioning for inline objectsJarkko Koivikko2026-03-177-1/+458
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AlignBaseline was falling through to the default branch in QQuickTextNodeEngine::addTextObject(), effectively treating the object as having zero descent. This caused the rendered position to be shifted upward by line.descent() pixels compared to where layout placed it. This was introduced by qtbase commit 99c1465215 ("QTextDocument: repair AlignBaseline for inline objects"), which added explicit AlignBaseline handling to the layout side (QTextDocumentLayout::resizeInlineObject) without a corresponding update to the rendering side in qtdeclarative. Before that change, both layout and rendering fell through to the default branch for AlignBaseline, treating descent as zero. After that change, layout sets descent to font descent: item.setDescent(m.descent()); item.setAscent(inlineSize.height() - descent); But rendering still fell through to default (ascent = size.height(), i.e. zero descent). Add a dedicated AlignBaseline case that uses font metrics from the format (ascent = size.height() - QFontMetrics(format.font()).descent()), matching the layout side. This differs from AlignBottom which uses line.descent(), since in mixed-font-size lines the font descent and line descent can differ. Pick-to: 6.9 6.8 Fixes: QTBUG-144977 Change-Id: I4684e714ec8e8e3f3406fd73ff517b1bbb497628 Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 8cdbd1990fb75057629335058683623068210ce3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 2a22a3aa7667ffb6bb65db12183be4c38d069f15)
* QmlCompiler: Don't warn for ValueTypeBehavior: AssertableUlf Hermann2026-03-145-0/+83
| | | | | | | | | | | | | We don't use the attribute so far, but we should certainly welcome its usage. Pick-to: 6.8 Fixes: QTBUG-144585 Change-Id: Iaa69c9401d411a4ad986d4c46ace0bad049b9881 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit 9c8a2dab276a10064bd4ac608b5ba886fc492558) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 0fe39fca4edee70b90726090bfe0d986b834ba07)
* QmlCompiler: Honor isList flag when process deferred property typesUlf Hermann2026-03-134-1/+31
| | | | | | | | | | | | | | If the property has the isList flag, we want the list type, not the plain type. Pick-to: 6.8 Fixes: QTBUG-144810 Change-Id: Ifdcdc1a0c40f39aceaa2ef522eb12e90664e57c4 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> (cherry picked from commit 954b73a93f18474cfa5f811282e70a4292d7cb92) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 7f832fce871b4f750fa2a8959f9f525f6f7e992c)
* QuickControls: List only optional imports that existUlf Hermann2026-03-131-8/+31
| | | | | | | | | | | | | On e.g. android it makes no sense to list the iOS and macOS styles as optional imports of QtQuick.Controls. Pick-to: 6.8 Fixes: QTBUG-144917 Change-Id: Ie0c6494e30d2bbc36d2a8d34daeff21a93102085 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 4ac37f493aa24095d6909488c2a69a6924c65fa5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit e793ef5bdd513026417883755c750033c3405362)
* FluentWinUI3: Don't show busy indicator when not runningDoris Verria2026-03-131-0/+1
| | | | | | | | | | | | This follows the same pattern as other styles. Fixes: QTBUG-142249 Pick-to: 6.8 Change-Id: I389b9524536ccf8511bc13e5f9c41e7495e7b076 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 5892d8ef08971f37c234287ca1a96e93341be3fc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 883e08d211f0aaf3b2661a8a36083d751e411876)
* QmlCompiler: Use directly invoked lambda for value type transformationUlf Hermann2026-03-124-2/+122
| | | | | | | | | | | | | | | | | | Apparently the QNX compiler doesn't like our previous reinterpret_cast/std::forward trick. This one is less tricky. Also, test the pattern on the relevant QtQuick value types so that we don't have to wait for downstream integrations to figure out if it still fails. Amends commit 488927f5e86582a3035d8192a614e5aac4b9012a. Fixes: QTBUG-144915 Change-Id: I9cc43e51d74fc3ef226e74b1aabbe19fe96e33d6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit c2a43fdde4576b076f404420f8960cefbfe55a26) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 18e160bf4ab2e8265cd8c7b9d8d39df99f7b4527)
* SearchField: Emit accepted() independently of suggestionModel and textDilek Akcay2026-03-121-12/+19
| | | | | | | | | | | | | | | | | accepted() was previously emitted only when a suggestionModel was not null and the textField was non-empty because of the condition !d->suggestionModel.isNull() && !d->text.isEmpty(). As a result, Enter/Return didn't emit accepted() when no suggestionModel was set. This change makes Enter/Return and Escape/Back work regardless of the suggestion model, while navigation keys still depend on both text and suggestionModel availability. Fixes: QTBUG-144814 Change-Id: I3f5cde196479a6a9e16a09582a130d2683d6bfd0 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 12630c0071728e6d13ccb382e03f5bbbf2b84a6a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ba1075241b24566034147c75feb84bf8f3b19c59)
* curve renderer: Make sure uniforms update when path is changedEskil Abrahamsen Blomfeldt2026-03-121-0/+1
| | | | | | | | | | | | | | | | | When the path is changed, we also have to update the uniforms of the node. If the path had a visible fill, then this would happen because the code handling FillDirty always also dirtied the uniforms. But if the fill was not visible, the StrokeDirty would not do the same. This caused update errors for shapes which only has a stroke. Pick-to: 6.8 Fixes: QTBUG-144907 Change-Id: Ib433fdc69e780f56357d96a25c110c6e78ddd12d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit dc10dc19f3910d743da41235fd836b98d660bb99) (cherry picked from commit fde6390b03e7813e2f50497f9fab28c22939725f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: turn paragraph about window into a noteMitch Curtis2026-03-121-3/+3
| | | | | | | | | | | | | This can be confusing for new users, as there won't be any warnings and nothing will be show on screen. Pick-to: 6.8 Change-Id: Ia819ddc9d0912f46a8c79bca79f86c1934500c42 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 438855789478cf458b41986e92e479dc137d46b3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 2738d0d1c98534eaa5fa1adee8a96d082ad13409)
* Do not connect() (and hence warn) if item is nullptrJan Arve Sæther2026-03-111-1/+2
| | | | | | | | | | | | | | | Avoids warning "qt.core.qobject.connect:QObject::connect(QQuickItem, Menu_QMLTYPE_XXXX): invalid nullptr parameter" that was found when autotest in c4b2a1d8bffe1a695affcb608e4e6ade6c30ba49 was added. Pick-to: 6.8 6.5 Task-number: QTBUG-144556 Change-Id: I3b60153ccaf77ce53b8c0053088ebc6bca41107b Reviewed-by: SanthoshKumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit d5984f3a08e4fa5b1e1b49c8e71907a5ae945120) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 22c53dca00d37ecbe2ac5783a79a827bc6d72c8a)
* SearchField: Adjust indicator background height to match control heightDilek Akcay2026-03-115-21/+96
| | | | | | | | | | | | | | | | When larger fonts are used, the SearchField indicator backgrounds become visually smaller than the control. Update their background height so it follows the control height. Keep the icon sizes unchanged, since scaling them with the font would make them look blurry at larger sizes. Fixes: QTBUG-143298 Change-Id: I6d185401ffde53ed46fbb21bfc31e98da9f82d10 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 04e3bc7a0d27646e14994b87c2bce44cb58d1feb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ea70a0501a1620ec37f9481a28e660169d89a6fb)
* QtQuickView update API documentationRami Potinkara2026-03-111-5/+1
| | | | | | | | | | | | | This patch removes outdated limitation. Fixes: QTBUG-144113 Pick-to: 6.10.3 Change-Id: Ida7a10246331029f392713f18af9647582f0ddea Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alexei Cazacov <alexei.cazacov@qt.io> (cherry picked from commit f208574a4d6a5ff55c1dca2f85a86413c5ecbb35) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 5cd48306351890a8a95529d5719ee2cea4080304)
* A11y TextEdit: Implement AT-SPI editable text interfaceMohammadHossein Qanbari2026-03-115-9/+73
| | | | | | | | | | | | | | | | | | | Previously, AT-SPI clients could not modify a TextEdit's text content because the editable text interface was not implemented. This patch adds support for the AT-SPI editable text interface, enabling accessibility clients to edit the text content of TextEdit elements. Since TextArea inherits from TextEdit, this change also fixes text editing for TextArea as well. Task-number: QTBUG-142132 Pick-to: 6.8 Change-Id: Id747f4784e48f9f58949fc03fd31e78228688ad6 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit b0844a4433ad249573274ea5d55c4ad2a3962458) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 43af0c5d7ba049ebd1e33bc7cd7e1acb7a8b2205)
* Let TreeView with DelegateChooser update on dataChanged()Eugene Shalygin2026-03-116-4/+190
| | | | | | | | | | | | | | When TreeView delegate is DelegateChooser, it might update its choice in result of dataChanged() signal. Thus let the TreeView listen for dataChanged() and if roles include the one from the chooser schedule rebuilding the delegates. Fixes: QTBUG-139544 Change-Id: Ia9b44f58fd66761484d8b0aa640ccf2ab4e728d4 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 31fe14ff110bfba5139093a300248284a178621c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit e6100791c0a9d760bcdce6d15e60c8c263957036)
* QQmlDebugConnectorParams: access QCoreApplicationPrivate's member directlyMarc Mutz2026-03-101-1/+1
| | | | | | | | | | | | | | | | | | | ... not through an inline function. Function and member have the same access level, so there's no benefit here, but an extra function that can now be removed to bring qcoreapplication_p.h closer to Qt-Security header-impl-only. Amends the start of the public history in this module, but really e7a709044e75004075e62c1c3a665b19c47947af, which reduced the number of calls to this from from six to one, making this change much more defendable. Pick-to: 6.8 Change-Id: Ic3651a17df84f62414381329cfd04233cc06395c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit b0e7f674fee135c9d7037516ffac8629fbda8d39) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 0490099ac0e604a17c135054e63848034192adbf)
* Remove Redundant calls to requestActivate in tst_QQuickGridViewFrédéric Lefebvre2026-03-101-2/+0
| | | | | | | | | | | | | | | tst_QQuickGridView include calls to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: Ibeb039a09aeedbd91a5b5843f8aec4ba2d9e0898 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 6738cc98fff88a5ea114bac1e2c16a7b9e467b1d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit c9f3f8b1b5f1710471b9ee47cfc0be2d44758b54)
* QmlCompiler: use extension-constructed value types with reinterpret_castUlf Hermann2026-03-101-2/+9
| | | | | | | | | | | | | | | | | | | We typically inherit the actual value privately in order to neither create inheritance cycles in the .qmltypes nor risk UB in the run time. Replicate the same operation we do in the runtime when compiling ahead of time. This can only be exercised when compiling in direct mode, and qmlsc already has a test for it. Amends commit 03dbbec0cca22797e53d88ee908f8ac97bbdfbc2. Fixes: QTBUG-144811 Change-Id: Iba6828aa54279232208fb10e25467daadb2a94f3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 488927f5e86582a3035d8192a614e5aac4b9012a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit aa833a48de1f4a14dd1ddcfc2a2d3877dd51bc53)
* Doc: Repeat \brief statement also in CMake API documentationKai Köhne2026-03-106-10/+10
| | | | | | | | | Change-Id: I06d179f8c63f5974ad620a39f8774745226b9acf Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 5790f682be62142aea60c02278a17c6816dc3271) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit a42b6e6e34c75a6cce220817bdc1d76c598113c7)
* "Missing-property" warning docs: Acknowledge that property might existFabian Kosmale2026-03-102-2/+81
| | | | | | | | | | | | | | | | | | | | | | | There are quite a few cases where a user knows that a property has a specific dynamic type, but its static type is less precise, triggering a member-not-found warning in qmllint. We can't solve that on the framework level unless QML gains support for some form of generics, and we can't solve this on the qmllint level without significant engineering effort – and even in that case, it is unlikely that we could solve all instances. However, we can recommend that users cast to the more precise type if they have the additional knowledge. Pick-to: 6.8 Task-number: QTBUG-144618 Change-Id: I8f80aaade2500aef9fb02f50e1c7c5e17006e695 Reviewed-by: Alexei Cazacov <alexei.cazacov@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit 4d6573f0ffdfe5b6450ef29fcabde260091cfd17) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 6d37c3501eb517f5d88943a82182da45d8f27cb3)
* Remove redundant calls to requestActivate in tst_QQuickNinePatchImageFrédéric Lefebvre2026-03-101-4/+0
| | | | | | | | | | | | | | | tst_QQuickNinePatchImage include calls to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: I2448b359b407d217170f6a752f6795a87e9f7331 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit ec56528d3428828024d10c45da2425e3fb936126) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit d6c3d62bd1515af4c704314e96790cd31f49160d)
* Remove redundant calls to requestActivate in tst_QQuickMenuFrédéric Lefebvre2026-03-101-15/+0
| | | | | | | | | | | | | | tst_QQuickMenu include calls to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: Ib36a44ed386fdc3fff4b91c7df34b8f5e9c777a3 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 2444d81fc58d5ea46ce9f650515566234ffdfdf9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 5b799d5ca7eed71e6eac8a0329362f3225f9f1c1)
* Remove redundant calls to requestActivate in tst_QQuickIconImageFrédéric Lefebvre2026-03-101-11/+0
| | | | | | | | | | | | | | | tst_QQuickIconImage include calls to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: Iee86c7f602a77a654d8b82c17cf717b28bc7fdae Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 87cfcf514e280c1f97aa1e57781e762575b089f1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 58bca9087be3a1d1269e79ed8de5775bc7aa1f36)
* Remove redundant calls to requestActivate() in tst_focusFrédéric Lefebvre2026-03-101-4/+0
| | | | | | | | | | | | | | tst_focus include calls to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: I0c0117023499b7b4370a610684c5c01031f69934 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit e581b872cf2d8d54a483f188b6de4af35551c1c0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 1ec06bc0f009182e0935d56ffdf7fcfc14e757a6)
* Remove redundant call in tst_customization::comboPopupFrédéric Lefebvre2026-03-101-1/+0
| | | | | | | | | | | | | | | tst_customization::comboPopup include a call to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: Iad068eea1653f6d875cd1632f2750b09695763b1 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 10ec0c3eacc42c2f4d94ff9a0a5b465562a7bec1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 3d4498636aae9fd801bd0b04c70e0fd708ad43eb)
* Remove redundant calls to requestActivate in tst_QQuickWindowFrédéric Lefebvre2026-03-101-3/+0
| | | | | | | | | | | | | | | tst_QQuickWindow include calls to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: I20342f7a0ab6563609ff433fbd69664b9ebc8744 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 9a1b2926e69bb89921d1d7d74fa5fc2ba08de687) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 390e9db60198e43dcd1dc3b840c082b6114ce020)
* Remove redundant calls to requestActivate in tst_QQuickTextInputFrédéric Lefebvre2026-03-101-11/+0
| | | | | | | | | | | | | | tst_QQuickTextInput include calls to requestActivate() after a window is shown. This call is superfluous for the current test and should be removed. Remove the unnecessary requestActivate() calls to simplify the code. Task-number: QTBUG-139705 Change-Id: I864a9b2d8165d87f6115abc025aac265baef718c Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit ecc321b8b8b6abb93c5d607162f96d2e6208d8dc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8f9979f2bf27c2938dc5bef7f4b7dd9c07ebaaa0)