Commit Graph

36733 Commits

Author SHA1 Message Date
Ulf Hermann 2d016a2653 QtQml: Mark values on the AOT-compiled stack during gc
Keep them in a special generated struct with virtual method that gets
called from the GC for each frame.

Pick-to: 6.10 6.9 6.8
Fixes: QTBUG-139059
Change-Id: I81bcbeab6531e174a5207d03f57d241461ae9ba3
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-02 09:15:02 +02:00
Ulf Hermann 9148ab4d8d QtQml: Store detached Sequence objects on the JS heap
While the Sequence is detached it is subject to the GC or
unrelated C++ code deleting objects from its internals. Since it's then
not the owning object's responsibility to track this anymore, we need to
track it ourselves. The way to do it is to use the existing V4 objects.

We don't have to store the sequence on the JS heap if it cannot store a
QObject. Only lists of variants or pointers are affected.

This independently fixes QTBUG-129972 for 6.8 where
VariantAssociationObject does not exist, yet. This is because the
detached sequence shown in that bug won't need to be written back to
anymore in order to stay up to date.

Pick-to: 6.10 6.9 6.8
Fixes: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: Ib469c6c65f2f96041e2ad2fd106f8cd60a182e13
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
2025-09-02 09:14:58 +02:00
Sami Shalayel 28377160be qqmlcodemodel: extract version checking code into static method
Prepare for QTBUG-119163 that will require some kind of "force update"
to reconstruct the DomItem once the CMake build in the background
finishes.
Extract the version-testing logic into static methods, one to test the
version of the "normal" document, one for the valid document, and one
that acts on the results of the two first methods.
This will allow to pass a "force" flag in the future that skips the
version checks.

Also add capitalization to the warnings and correct typos.

Task-number: QTBUG-119163
Change-Id: Ia72be615b527a571332640ceb6c7f6085f03ded9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2025-09-02 09:04:47 +02:00
Sami Shalayel d0aa527a45 qqmlcodemodel: remove unused members
m_state is never read and m_lastOpenDocumentUpdated is never written to,
so remove them.

Change-Id: I1ec093fee06d0852a2759e539295279575f361ac
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2025-09-02 09:04:42 +02:00
Even Oscar Andersen 347fd931ba Fix uninitialized implicitTextPadding in QQuickMenuPrivate
Reported by valgrind when running test test_repeater

BPASS  : tst_controls::Basic::Action::test_repeater()
==433792== Conditional jump or move depends on uninitialised value(s)
==433792==    at 0x69C1DE2: double const& qMax<double>(double const&, double const&) (qminmax.h:21)
==433792==    by 0x6B13C62: QQuickMenuPrivate::updateTextPadding() (qquickmenu.cpp:1129)
...
==433792==    by 0x5999EA8: QtPrivate::QSlotObjectBase::call(QObject*, void**) (qobjectdefs_impl.h:461)
==433792==    by 0x5B6411E: void doActivate<false>(QObject*, int, void**) (qobject.cpp:4314)
==433792==    by 0x5B58506: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:4374)
==433792==    by 0x6F6CA7E: QQuickItem::visibleChanged() (moc_qquickitem.cpp:1031)
==433792==    by 0x6F5DE54: QQuickItemPrivate::setEffectiveVisibleRecur(bool) (qquickitem.cpp:6721)
==433792==
==433792== Conditional jump or move depends on uninitialised value(s)
==433792==    at 0x6B13CA1: QQuickMenuPrivate::updateTextPadding() (qquickmenu.cpp:1132)
...
==433792==    by 0x5999EA8: QtPrivate::QSlotObjectBase::call(QObject*, void**) (qobjectdefs_impl.h:461)
==433792==    by 0x5B6411E: void doActivate<false>(QObject*, int, void**) (qobject.cpp:4314)
==433792==    by 0x5B58506: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:4374)
==433792==    by 0x6F6CA7E: QQuickItem::visibleChanged() (moc_qquickitem.cpp:1031)
==433792==    by 0x6F5DE54: QQuickItemPrivate::setEffectiveVisibleRecur(bool) (qquickitem.cpp:6721)
==433792==    by 0x6F5DD6E: QQuickItemPrivate::setEffectiveVisibleRecur(bool) (qquickitem.cpp:6711)

Pick-to: 6.8 6.9 6.10
Change-Id: I2af1ff26f852a8eb3ce2426f1e8937e889aff1ff
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-09-01 17:25:21 +00:00
Petri Virkkunen 9fd9e881b2 QQ4A: Allow QML functions to be called from Java
This commit adds an API to QtQuickView and QtQuickViewContent which
allows users to call QML functions, with the following limitations:
     * The function parameters must have type information
     * The function parameters must be supported types: real, double, int,
     boolean or string.
     * The function cannot return a value

In the case of functions in QtQuickViewContent descendant classes,
these limitations are enforced by the code generation in
androiddeployqt.

To continue the journey of a function call from Java to QML, this
commit provides a JNI function which takes the view memory address,
the function name and a list of parameters, which may be empty.

When called, the JNI functions will look for a function with the given
name and parameter count, and if found, will convert the data from JNI
types into the expected QML types.

After converting the data, the data and QMetaMethod are passed to
QMetaMethodInvoker::invokeImpl which actually invokes the QML function.

Task-number: QTBUG-137112
Change-Id: I6617e3f5e1ebfcec7e44887d4e01b5137245ac0d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-09-01 20:25:21 +03:00
Qt Submodule Update Bot 16a5abcb2f Update dependencies on 'dev' in qt/qtdeclarative
Change-Id: Icbacba8a4509268dc3bf1a23238f8aa6a38ef585
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-09-01 17:25:21 +00:00
Ulf Hermann b3d2474c70 QtQml: Demote error to warning in Sequence's method_getLength
All other qsizetype <-> uint range violations are only warnings.

Change-Id: I611e423c115483e3f72b4cc542b3154478c347ca
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 09883c7788 QtQml: Consistently check isReadOnly in QV4::Sequence
We want generally want to throw an exception. Except in virtualMetaCall,
since that would lead to cascading exceptions. There, just return 0 to
notify the caller about the metaCall failure.

Change-Id: Ie3970d01a5b433100f9722a2f12843abfe8d512a
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann cc86fb0095 QtQml: Remove obscure exception check
There is no way we can have produced an exception in
Sequence::virtualPut().

Change-Id: I1f6f4d933b34b9f86c3a9093929815e9071eb61e
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 706e479e3b QtQml: Extract method to create the inline storage for Sequence
We will get a different kind of storage in addition.

The unification of the different init() methods uncovers a bug: The
storage can indeed be nullptr when querying the size later. If you
construct a detached sequence from a null container, there is no reason
to create the internal storage. The size is evidently 0 in that case.
Fix sizeInline() to tell us as much.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I33347805fc79f81c69c3191a76ff9167186b43f0
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann c9d9533346 QtQml: Avoid repeated retrieval of Heap::Sequence::storagePointer()
Each of those incurs a null check.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I7bc96755629d57e1a8f0bf69e0db8de8df737665
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann a99022e243 QtQml: Rephrase Sequence's appendInline()
What we actually want is append default constructed elements. Doing this
the natural way avoids needless complication.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I97318b0e093a76a3d67539ea0d4e28614db4879b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 2aeafa4699 QtQml: Heap::Sequence::isReference() where appropriate
In order to determine whether we need to write back, conceptually we
need to know whether the sequence is a reference. That happens to be the
case if there is an object to write back to, but that's not how object()
was meant to be used.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: Ie3e0e0318ecabd6f25d545d1198c07a0037b68fe
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 609a06be46 QtQml: Inline Sequence's shiftInline into its ownly user
It gets in the way if kept seperate.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I105ee78e89ce561ec27e8badc27aa94a717ace39
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 64d6496895 QtQml: Accept Heap::Sequence in doGetIndexed()
It only operates on the heap object anyway.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I7e6c232fd68893429533e1b10363ef9922a33ae7
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 2ce3b7bf0a QtQml: Eliminate Heap::Sequence::hasData()
We want to encapsulate the container as much as possible.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I7cf991ea7a3a879584066e7121c49e102ebadf08
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 476ee7f5a3 QtQml: Inline Sequence::containerIsEqualTo into its only user
We don't want to expose it from Sequence's interface.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: Iae144bb8a66a24660dd8da490edb0b4bd7cdc81e
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:21 +02:00
Ulf Hermann 8953a873fa QtQml: Inline containerDeleteIndexedProperty into its only user
We don't want to expose it from Sequence's interface.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I35c37ea1da675a83a1a8d3a4af08e4301c8cd60c
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann 308305c86a QtQml: Inline Sequence::containerPutIndex into its only user
We don't want to expose it from Sequence's interface.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I12453fed0143e5e75dfc749b87b197ec328085f7
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann f3b565a1db QtQml: Inline Sequence::containerGetIndexed() into its only user
We don't want to expose it from Sequence's interface.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: Ic001925c7fc1ae3be623e2fd7451f99d17899471
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann 28d6d704e7 QtQml: Remove some methods from Sequence's public API
Inline at() into its only caller, move size() further up to be visible
from all callers, and make them all static functions taking a
Heap::Sequence. This prevents them from being called from elsewhere and
improves encapsulation.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I65c724119c0df95f2d26116b3ff6ab0a4218d91f
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann 48fc94ac74 QtQml: Move Sequence's {load|store}Reference into the heap object
It's fine to call them from Sequence and its helper classes, but it
shouldn't be called from outside.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I0bfe5d813ec8fdee6c814269df069935fe304ccd
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann 1f2c87f754 QtQml: Move Sequence's length accessors into SequencePrototype
We will need to befriend them.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I0d877627f2b838f2bf06a7049cd51927e13bd24d
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann dec8d8d6ab QtQml: Inline containerOwnPropertyKeys into its only user
Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I2062b537c1c00908b7cc86f394d95ffdf2eabbee
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann 68e3532516 QtQml: Factor out Sequence's variant data creation
We want to use it in other places.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I720c4a71144ab634d70a1ec0115ca81b8030d083
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
Ulf Hermann 76dccf589d QtQml: Refactor QV4::Sequence's raw container operations
We want to encapsulate the container as well as possible.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I87841fbe9a9c9f1756eddc979b82ec8b90eec8e2
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 19:25:20 +02:00
David Boddie 93a1b24a04 Doc: Add missing property declarations
Task-number: QTBUG-139560
Change-Id: I9b9dfce9df58e64054e4b1208f70501eb6b11f0a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2025-09-01 16:03:12 +02:00
Frédéric Lefebvre d14031a8a9 Stabilize tst_QQuickTextEdit::inFlickableTouch on openSuSE 15.6
tst_QQuickTextEdit::inFlickableTouch is flaky due to the view being
repositioned after initialization, which shifts the window downwards.
This new position causes the flick gesture to fail.

Unblacklist tst_QQuickTextEdit::inFlickableTouch on openSuSE 15.6

Fixes: QTBUG-118066
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: I0d85d756594aa1976fff1f06f21b54a909474150
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-01 13:32:51 +00:00
Alexei Cazacov db62eec221 Doc: Specify in which version the Synchronizer was introduced
Fixes: QTBUG-139633
Pick-to: 6.10
Change-Id: I77eb00417199d7228c239ebfdb45877bda7e4b77
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2025-09-01 15:22:58 +03:00
Ulf Hermann cca07aa788 QmlCompiler: Fix access to optional QVariantMap
Without this, it tries to resolve the metaObject of QVariantMap, which
crashes.

Fixes: QTBUG-139626
Pick-to: 6.10 6.9 6.8
Change-Id: I9248f57c428810024f9983df959f475e6557576c
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
2025-09-01 14:11:57 +02:00
Ulf Hermann e69a4b17cd QmlCompiler: Rename sequences' "valueType" to "elementType"
"valueType" is ambiguous. The prevailing meaning is a type that's passed
by value in QML. We mean the type of the list contents (or elements)
here.

Change-Id: Iaf4c0efe272dc6ec7511d2361e7e5ce475936fba
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-08-31 09:41:56 +02:00
Mitch Curtis d8d55cd69a tst_qquickanimatedimage::playingAndPausedChanges: bump timeout to 2 seconds
e7b90cfc31 changed the default to 1
second, which results in a failure:

FAIL!  : tst_qquickanimatedimage::playingAndPausedChanges() QTestLib: This test case check ("!obj->isPlaying()") failed because the requested timeout (1000 ms) was too short, 1050 ms would have been sufficient this time.

Bump it to 2 seconds.

Task-number: QTBUG-138662
Change-Id: I3ccbc5c6a13ac45752b252263e925ceb9edc6a5c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2025-08-31 15:41:49 +08:00
Mitch Curtis 0781477d51 tst_TouchMouse::pinchOnFlickable: bump defaultTryTimeout to 2 seconds
e7b90cfc31 changed the default to 1
second, which results in a failure:

FAIL!  : tst_TouchMouse::pinchOnFlickable() QTestLib: This test case check ("(flickable->isFlicking()) == (false)") failed because the requested timeout (1000 ms) was too short, 1200 ms would have been sufficient this time.

Bump it to 2 seconds.

Task-number: QTBUG-138662
Change-Id: I3e9b0e600bac879c506d23255e8587197e171d21
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2025-08-31 15:41:45 +08:00
Oliver Eftevaag 50fbd5a347 Fusion ScrollBar: Use stronger colors in high contrast mode
The ScrollBar's handle would either use palette.dark or palette.mid.
Using the outline colors instead should create more contrast between the
background and the ScrollBar's handle, which is what we want for high
contrast mode.

Task-number: QTBUG-134971
Pick-to: 6.10
Change-Id: I3527f57f498415463016e3c8ec42b6081922a688
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-08-30 03:20:18 +02:00
Oliver Eftevaag 54f9f6818f Fusion File&FolderDialog: Give the FolderBreadcrumbBar a maximum width
The fusion styled File and FolderDialog's FolderBreadcrumbBar would grow
in width as the number of nested directories in the currentFolder path
would grow. The other styles would give it a maximum size, which would
limit how much it could grow, but not the fusion style.

The FolderBreadcrumbBar's width also affects the entire FileDialog
default (implicit) width, which would cause the entire dialog to expand
as you'd enter more directores. This was unintuitive, and not something
that any other file dialogs do.

Let's make the fusion style FileDialog behave like the other
FileDialogs.

Pick-to: 6.10
Change-Id: Icd67803b6e205ac9224b2561417667b4893a4e87
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-08-30 03:20:04 +02:00
Inho Lee 0f534a6ce3 Revert "Make AnimatedNodes use afterSynchronizing"
This reverts commit ba7dcb65dc.

'threaded' renderer doesn't emit 'afterSynchronizing'
like the other renderers.

Fixes: QTBUG-139309
Reopens: QTBUG-126193
Pick-to: 6.10 6.9 6.8
Change-Id: Iec2d9cce919d00f7fefb84db153a48d035b4fb44
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-08-29 21:21:06 +00:00
Santhosh Kumar d3936e5e93 Fix flaky warning message in tst_qquickmenu::loadMenuAsynchronously
The test case tst_qquickmenu::loadMenuAsynchronously is getting flaky,
w.r.t warning message, sometimes depending on the platform, and so it's
required to extend the regex to consider that case.

Amends patch: 28553473cf

Task-number: QTBUG-139552
Change-Id: I4766c7ac52a586dcf5b470ce5a676a51e2503cb5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2025-08-29 19:01:51 +02:00
Mitch Curtis 89bdaa7fdc Blacklist tst_QQuickPopup::fadeDimmer on macOS
It's causing a lot of flaky failures, so blacklist it until it can be
fixed.

Task-number: QTBUG-131695
Change-Id: I81835fe1af677899abcc26534c5fd95dc69004cb
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-08-29 04:00:16 +08:00
Assam Boudjelthia c4766f26e8 Android: adapt tst_QQuickApplicationWindow to safe area margins
The test was still not account for safe margins in few places,
it seems it didn't account for the fact that Android apps will
have the margins set from the start.

Fixes: QTBUG-139583
Pick-to: 6.9 6.10
Change-Id: Ia04a0ca2e7ad96a1e72a0d7fe9416634fb24e116
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2025-08-28 22:59:56 +03:00
Oliver Eftevaag 820da45c7a FluentWinUI3: Improve RadioButton when using high contrast themes
The RadioButton's indicator would not use the same colors as the WinUI3
RadioButton for users that had enabled a high contrast theme.

The indicator background is normally a ColorImage. But for high contrast
themes we prefer to keep things simple, and draw simple colors on top of
the image. It is possible to change the binding on the ColorImage to use
desired high contrast theme colors from the palette, but doing so will
slightly alter the colors used, due to blending with the pixel values
from the underlying png image used by ColorImage. Thus we put a
rectangle on top, so that high contrast themes become independent from
it.

Task-number: QTBUG-129088
Pick-to: 6.10
Change-Id: I57ef286584f7df2c26bacbc0bc9f3bcb7a1a64cd
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
2025-08-28 12:56:23 +02:00
Oliver Eftevaag 91690dbaa7 FluentWinUI3: Improve CheckBox when using high contrast themes
The CheckBox indicator uses a ColorImage to blend the pixels of a
png image file together with a QColor, in order to determine the colors
that the indicator should use in any given state (e.g, checked,
unchecked, hovered, etc).

Unfortunately, blending the ColorImage with a color has its limitations
when enabling a high contrast theme on Windows 11, such as when the
checkbox is in the pressed and unchecked state, where the color image
background will typically be mostly black, and this make the color
bound on the color property much darker, or in this case, completely
black.

To get around this issue, we now have a Rectangle on top of the
ColorImage, which is normally transparent, except for when high contrast
is enabled. In that case, it will be rendered on top, and use the exact
desired colors.

Pick-to: 6.10
Task-number: QTBUG-129088
Change-Id: Ic65218d3759495611772f010c86a85109faaaadd
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
2025-08-28 12:56:20 +02:00
Alexei Cazacov cf3892522f Doc: Add a missing link to qmlcontextpropertydump to the TOC
Task-number: QTBUG-128232
Change-Id: Id6b882fe8f39442200b2a726a62c4c210261d7b5
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
2025-08-28 13:49:50 +03:00
Alexey Edelev e00a8c3920 Use updated _qt_internal_android_get_target_deployment_dir exclusively
_qt_internal_android_get_target_deployment_dir no considers
QT_USE_ANDROID_MODERN_BUNDLE and produces correct target deployment
path even if the flag is disabled. In this case path matches to
the top-level Android target build directory.

Change-Id: Ia5817bf02dc7a8844fb8671d1945f1592af6b675
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-08-27 21:11:33 +02:00
Santhosh Kumar 28553473cf Skip warning from the loader for the test case loadMenuAsynchronously
The test case added as part of patch
36216db956 shows up warning
"There are still \"n\" items in the process of being created at engine
in destruction.\". This patch allow this test case to pass if fail
on warning enabled for the quick menu auto test.

Task-number: QTBUG-137160
Task-number: QTBUG-139552
Change-Id: I7f31ffd096cc10b514542092a85f346e413b40dd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-08-27 20:04:16 +02:00
Oliver Eftevaag da777a75f6 Run tst_qquickfiledialogimpl tests for multiple dialog styles
We were only testing the non-native file dialog under the Basic style
previously, but we have 4 other styles (Fusion, Imagine, Material,
Universal) that were never tested.

This unfortunately caused recent regressions in both the FileDialog and
FolderDialog.

By running each test once for more styles, we should be better
protected against future regressions in individual styles.

In this patch, we enable all tests for Basic, Fusion, Material and
Universal. The Imagine style is intentionally omitted due to a bug,
which causes the tst_qquickfiledialogimpl::defaults() test to fail.

This will be fixed later.

Change-Id: I9b4ab722c5ad3052122024ad3a7a2f0a99de77e6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-08-27 12:20:03 +02:00
Mitch Curtis 8d1a8c1833 QQuickPopup: unparent popupItem when window is set to null
Interacting with Popups in async Loaders caused a crash because the
popup's window was null:

1  QScopedPointer<QObjectData, QScopedPointerDeleter<QObje qscopedpointer.h           112  0x7fffe8effafe
2  qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointe qtclasshelpermacros.h      137  0x7fffe8efd9c3
3  QQuickOverlay::d_func                                   qquickoverlay_p.h          76   0x7fffe8f729d4
4  QQuickOverlayPrivate::get                               qquickoverlay_p_p.h        37   0x7fffe8f8c392
5  QQuickPopup::overlayEvent                               qquickpopup.cpp            3214 0x7fffe8f879c2
6  QQuickOverlayPrivate::handleHoverEvent                  qquickoverlay.cpp          192  0x7fffe8f6ee88
7  QQuickOverlay::childMouseEventFilter                    qquickoverlay.cpp          478  0x7fffe8f701e4
8  QQuickDeliveryAgentPrivate::sendFilteredMouseEvent      qquickdeliveryagent.cpp    2897 0x7fffeb1bce04
9  QQuickDeliveryAgentPrivate::sendHoverEvent              qquickdeliveryagent.cpp    1090 0x7fffeb1b25af
10 QQuickDeliveryAgentPrivate::deliverHoverEventToItem     qquickdeliveryagent.cpp    1272 0x7fffeb1b2fd0
[...]

We can avoid this by unparenting the popupItem, which removes it from
stackingOrderPopups and hence excludes it from receiving events.

The fix causes a crash in QQuickDeliveryAgentPrivate::clearFocusInScope
after tst_QQuickPopup::closePolicy() finishes, because it tries to
access the now null window. Add checks for that.

Task-number: QTBUG-139306
Pick-to: 6.5 6.8 6.9 6.10
Change-Id: Id507e39497af3cacc832db4b23a2c27a0788dc74
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2025-08-27 12:45:40 +08:00
Volker Hilsheimer cf0d7ab281 QRangeModel test: only ignore message in debug builds
In release builds, we don't want to generate code that indicate wrong
usage of the model, so 313e271c730f18e9a1afc05f754b5cba86013783 in
qtbase made the emission of stderr messages conditional.

Pick-to: 6.10
Change-Id: I51f773943387f099b943d7b7980b6b2485e189bd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2025-08-27 01:29:24 +02:00
Oliver Eftevaag 2293803032 Fusion Dialog [ButtonBox]: Add strong outline for high contrast mode
The DialogButtonBox lacked an outline, which it should probably have,
when a high contrast setting is enabled. The Dialog had a subtle
outline, which we can make stronger.

Task-number: QTBUG-134971
Pick-to: 6.10
Change-Id: I56a9032161c6fe7d21d0e1d4ccdd1edbdc8bfb70
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2025-08-27 01:29:24 +02:00
Xavier BESSON c061da5e93 Fix '--' argument prefix in svgtoqml doc
Without \c{} '--' is rendered as a dash instead of 2 hyphens

Pick-to: 6.10
Change-Id: I8b78d8feaa2d1f20fdb9ecceb6b20c862d9da2d4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
2025-08-27 01:29:24 +02:00