Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calls order of q_invokable method #10

Open
wants to merge 10,000 commits into
base: 6.2
Choose a base branch
from
Open

Calls order of q_invokable method #10

wants to merge 10,000 commits into from

Conversation

rjcamatos
Copy link

If there are 2 or more methods with the same name but reciving diferent arguments the QJSEngine Pickup the First One declared.

Example:
methodxyz(string)
methodxyz(objptr*)

It picks up the first one passing as argument a string and not the one that i was expecting an object as it was send.

qtprojectorg pushed a commit that referenced this pull request Dec 8, 2023
Using std::binary_search has the requirement that the passed
range fulfils ordering requirements, which was not the case
for the cppKeywords array here.

As the QString doc says [1]:

> QStrings can be compared using overloaded operators such as operator<(),
> operator<=(), operator==(), operator>=(), and so on. Note that
> the comparison is based exclusively on the numeric Unicode
> values of the characters. It is very fast, but is not what a
> human would expect; (...)

Therefore, sort the array accordingly and add an assert to
ensure it will remain sorted.

Fixes an crash/assert when building qtdeclarative with
CXXFLAGS='-D_GLIBCXX_DEBUG':

    /usr/include/c++/13/bits/stl_algo.h:2243:
    In function:
        bool std::binary_search(_FIter, _FIter, const _Tp&) [with _FIter = const
        QString*; _Tp = QStringView]

    Error: elements in iterator range [first, last) are not partitioned by the
    value __val.

    Objects involved in the operation:
        iterator "first" @ 0x7ffc4a2c4f18 {
          type = QString const* (constant iterator);
        }
        iterator "last" @ 0x7ffc4a2c4f10 {
          type = QString const* (constant iterator);
        }
    Aborted (core dumped)
    ninja: build stopped: subcommand failed.

GDB backtrace:

    Program terminated with signal SIGABRT, Aborted.
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    44      ./nptl/pthread_kill.c: No such file or directory.
    (gdb) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    #1  0x00007f307e0a815f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
    #2  0x00007f307e05a472 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
    #3  0x00007f307e0444b2 in __GI_abort () at ./stdlib/abort.c:79
    #4  0x00007f307e2a300d in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
    #5  0x00005639ff90471d in std::binary_search<QString const*, QStringView> (__first=0x5639ffa1a9c0 <QmltcVisitor::checkForNamingCollisionsWithCpp(QDeferredSharedPointer<QQmlJSScope const> const&)::cppKeywords>,
        __last=0x5639ffa1b2c0 <guard variable for QmltcVisitor::checkForNamingCollisionsWithCpp(QDeferredSharedPointer<QQmlJSScope const> const&)::cppKeywords>, __val=...) at /usr/include/c++/13/bits/stl_algo.h:2243
    #6  0x00005639ff8fb837 in operator() (__closure=0x7ffc4a2c52bf, word=...) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:764
    #7  0x00005639ff8fb89e in operator() (__closure=0x7ffc4a2c52a0, name=..., errorPrefix=...) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:768
    #8  0x00005639ff8fc99b in QmltcVisitor::checkForNamingCollisionsWithCpp (this=0x7ffc4a2c6070, type=...) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:787
    #9  0x00005639ff8f9dea in QmltcVisitor::endVisit (this=0x7ffc4a2c6070, program=0x563a002e0628) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:341
    #10 0x00007f307f6636fa in QQmlJS::AST::UiProgram::accept0 (this=0x563a002e0628, visitor=0x7ffc4a2c6070) at /home/michi/development/git/qt5/qtdeclarative/src/qml/parser/qqmljsast.cpp:1193
    #11 0x00007f3080159b8f in QQmlJS::AST::Node::accept (this=0x563a002e0628, visitor=0x7ffc4a2c6070)
        at /home/michi/development/git/qt5/qtbase/include/QtQml/6.7.0/QtQml/private/../../../../../../qtdeclarative/src/qml/parser/qqmljsast_p.h:272
    #12 0x00007f3080212f4b in QQmlJSTypeResolver::init (this=0x7ffc4a2c5b50, visitor=0x7ffc4a2c6070, program=0x563a002e0628) at /home/michi/development/git/qt5/qtdeclarative/src/qmlcompiler/qqmljstyperesolver.cpp:173
    #13 0x00005639ff8f0bd3 in QmltcTypeResolver::init (this=0x7ffc4a2c5b50, visitor=0x7ffc4a2c6070, program=0x563a002e0628) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltctyperesolver.cpp:19
    #14 0x00005639ff8c02d4 in main (argc=23, argv=0x7ffc4a2c7a68) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/main.cpp:269

[1] https://doc.qt.io/qt-6/qstring.html#comparing-strings

Change-Id: I82ebbcdca4ab90155b935f9af24b3a3821134563
Reviewed-by: Sami Shalayel <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
Ed Cooke and others added 29 commits August 30, 2024 00:28
The test that tests whether centering a popup in its parent failed when
using popupType Popup.Window. This is because popup windows do not have
edge constraints and therefore can be drawn outside of the parent when
being centered.

Task-number: QTBUG-126553
Pick-to: 6.8
Change-Id: I5bca50a0965441c100bf489bc3674763de5f89aa
Reviewed-by: Santhosh Kumar <[email protected]>
ComboBox::test_emptyPopupAfterModelCleared currently tests that the
popup of a ComboBox is empty by checking the height is zero. This does
not apply to popups with popupType set to Popup.Window as they can not
have zero dimensions. Note, in the future the plan is to set a minimum
height for the ComboBox popup and so this test will become obselete.

Task-number: QTBUG-126553
Pick-to: 6.8
Change-Id: I34e256ec86de9c722894e21d289eddbb2bab3b1a
Reviewed-by: Oliver Eftevaag <[email protected]>
Pick-to: 6.8
Change-Id: I795e63e8823b2c57cef87728373732d8969b1643
Reviewed-by: Christian Strømme <[email protected]>
The example provides two sections including an editor and a view for QML
codes. The QML codes can be written by the user from scratch and save to
a file, or, it can be loaded from a file. Also, it is possible to save
the changes and see the result in the view side. The application can
detect any changes to the source file outside of itself and reloads the
editor and the view sections.

The editor is QPlainTextEdit and the view is QQuickWidget. The
QQuickWidget is used to embed QML in the application which is a widget
application.

The implemented actions in the example are:
- Open file: to open and load a (.qml) file
- Save file: to save the changes into the opened file or into a new file
- Close file: to close the opened file
- Reload: to discard the changes and to reload the opened file

Pick-to: 6.8
Change-Id: I3106dd78998c4b0e86e21803ccf1bb84205a13a4
Reviewed-by: Jan Arve Sæther <[email protected]>
The documentation was missing for the example. This patch provides a
screenshot image of the application and a documentation file.

Fixes: QTBUG-128224
Task-number: QTBUG-125767
Pick-to: 6.8
Change-Id: I2aa73ea7e82eb019db84a7ce685837b89e62f300
Reviewed-by: Santhosh Kumar <[email protected]>
When a window containing a Quick shortcut was closed, we would still
match the application shortcut, which doesn't match the behavior of Qt
Widgets.

We now check the visible state of the window containing the shortcut
before matching it.

The testcase creates a shortcut event in another window. It should fail
when the window which contains embedded application shortcut is closed.

Task-number: QTBUG-121785
Change-Id: I8cf5d3797102e0a1b43a91b347bdbfdd8cfc39e2
Reviewed-by: Jan Arve Sæther <[email protected]>
QQuickDragHandler::handlePointerEventImpl() accepts the event to begin
with. Since ca7cdd7 we meant to stop
event propagation for mouse events, at least to prevent Flickable from
receiving the event via direct delivery after it has already filtered.
But back then, QEvent::setAccepted() did not automatically accept the
touchpoints; now it does (a questionable choice in Qt 6 that accept()
and setAccepted(true) do not do the same thing).

Now we leave QEventPoint:isAccepted state alone if it's a touch event,
so the workaround to stop propagation of mouse events is the only case
where it needs to be changed. And update the comment: since
3073a81 Flickable handles touch events
directly, it doesn't depend on touch->mouse synthesis.

Fixes: QTBUG-124731
Pick-to: 6.8 6.7
Change-Id: I833a4d28f708e27cf01b108da1b886807725dc06
Reviewed-by: Shawn Rutledge <[email protected]>
Reviewed-by: Richard Moe Gustavsen <[email protected]>
It seems to me that it fits much better there instead of directly
under "quick" folder, and this follows other plugins and modules
Android code structure.

Pick-to: 6.8
Change-Id: I837e8cddaffabd239ca1dac966aaf6182e60afd3
Reviewed-by: Nicholas Bennett <[email protected]>
Quick NativeStyle is used simply as a utility for the QQC platform
styles. So we don't need to build it when both macOS and Windows
styles are disabled in the build.

Fixes: QTBUG-128135
Change-Id: Iff1a16e2302a007cf18977350936d96dcfdfe72f
Reviewed-by: Mitch Curtis <[email protected]>
Task-number: QTBUG-127993
Pick-to: 6.8
Change-Id: Ib7b3c4b9c88b3453f6a121b0f8d4e2f792ff9ae9
Reviewed-by: Mats Honkamaa <[email protected]>
The horizontal/vertical paddings need to be inverted depending on
orientation.

Pick-to: 6.8
Change-Id: Ia9d516088a749e0c29e70d06bc24a83f1ffb6f3b
Reviewed-by: Mitch Curtis <[email protected]>
…Button

We want to be able to support custom palette.accent and palette.button
colors for the Button/ToolButton. To do that, use QML instead of images
for the button background and factor it out in reusable component
ButtonBackground.
Remove previously generated images for the button/toolbutton backgorunds
but keep using geometry information generated from the stylegenerator.

Pick-to: 6.8
Change-Id: I6f195b32142d06c96833ac3d9184da9f8bbd22ba
Reviewed-by: Mitch Curtis <[email protected]>
Task-number: QTBUG-125279
Pick-to: 6.8
Change-Id: I400c3ccc27088427481a86cc937597675649fb3d
Reviewed-by: Mitch Curtis <[email protected]>
Add Dialog and DialogButtonBox.
While at it, remove them from the list of not-yet supported
controls in the Fluent style docs, together with other controls
that have already been implemented.

Pick-to: 6.8
Change-Id: I6abe0cae8712a999a5491b5ec1a904df56d38d0d
Reviewed-by: Mitch Curtis <[email protected]>
Pick-to: 6.8
Change-Id: I962b1d9a3aa0e2dbcdc9d262088de00e5abd3322
Reviewed-by: Mitch Curtis <[email protected]>
Add a FocusFrame component that follows the active focus item,
mirroring the approach used by the native styles with QQuickFocusFrame.

In the future, this should probably move out of the native style and
serve as a common solution across all styles.

Task-number: QTBUG-125279
Pick-to: 6.8
Change-Id: I577d0b783c36bc7e146a7e02051195d78a11ca60
Reviewed-by: Mitch Curtis <[email protected]>
- Update the link targets to 14.0 level
- Use the \QC and \QDS macros
- Remove \externalpage entries from the repository to use
  \qtbase\doc\global\externalsites\qtcreator.qdoc

Change-Id: I5b63b4f5fab2e4e6aceec385b3ce5516b803c682
Reviewed-by: Andreas Eliasson <[email protected]>
Currently popup windows do not support palette propagation. Skip the
tests that test for it.

Task-number: QTBUG-126553
Pick-to: 6.8
Change-Id: I16483665690d5df4311743513d6ec9c30bb92da5
Reviewed-by: Jan Arve Sæther <[email protected]>
Popup::test_size updates the size of a popup in QML and then checks that
the size has indeed updated. When using popupType: Popup.Window, a try
compare statement should be used when checking if the size has indeed
updated.

Task-number: QTBUG-126553
Pick-to: 6.8
Change-Id: I13567967fcea458e3b61e0cfd154158238b398c5
Reviewed-by: Oliver Eftevaag <[email protected]>
…) will be used

The detailed documentation for HeaderView says that
if you assign a QAIM to the model property, the models
headerData() will be used. But in the documentation for the
model property itself, it says that data() will be used
(except when using a QAbstractTableModel).
Both cannot be true.

The actual behavior is that we use data() when the model is
assigned explicit to the model property, and headerData()
when the syncView's model is used. It's debatable whether
or not we should have always used headerData(), but changing
that now could cause regressions. Such a change would
also stop e.g QML ListModel from being used as a model,
which is also an argument for keeping it as-is.

This patch will therefore fix up the documention to be
consistent, and to inform that data() will be used.

Fixes: QTBUG-123595
Pick-to: 6.8 6.7 6.5 6.2
Change-Id: Id64977a3db5f00b4269f0e5ffb6a31e5ad607725
Reviewed-by: Mitch Curtis <[email protected]>
This patchset implements the \qmlproperty command
to display the properties for the 'color' QML value type.
The following properties are added: r, g, b, a, hsvHue,
hsvSaturation, hsvValue, hslHue, hslSaturation, hslLightness
and valid.

Fixes: QTBUG-127337
Pick-to: 6.7 6.8
Change-Id: I583407f82d530ea80f34cb3e3d74775e9fa0e1e0
Reviewed-by: Paul Wicking <[email protected]>
Pick-to: 6.8
Change-Id: I1d920751dbb48944678898245a059360efcaca55
Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
Reviewed-by: Topi Reiniö <[email protected]>
Using \keyword instead of \target means that IDE's can
properly look up these commands in the qch index.

Pick-to: 6.7 6.8
Task-number: QTBUG-128368
Change-Id: I3995f5fe5a995765a12c129280f7ed3e8155ae3a
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Paul Wicking <[email protected]>
Pick-to: 6.8
Change-Id: I59940e0f8110793e2043bdd10c35db3b307c3400
Reviewed-by: Soheil Armin <[email protected]>
Reviewed-by: Assam Boudjelthia <[email protected]>
qtabstractlistmodel_kotlin example QtBuild projectPath points to
non existing project. Change to correct one.

Pick-to: 6.8
Change-Id: Ic8ff620e6a058ddc83948d9a7f207d4912c64e55
Reviewed-by: Assam Boudjelthia <[email protected]>
settings.gradle.kts include statement not working.

Pick-to: 6.8
Task-number: QTTA-111
Change-Id: I0dc0ab8b2bf9ad722bdaece05e99651f6914863f
Reviewed-by: Assam Boudjelthia <[email protected]>
Pick-to: 6.8
Change-Id: I1c2dbb796ebc005b6cd368f713baefedd0e24683
Reviewed-by: Sami Shalayel <[email protected]>
Reviewed-by: Leena Miettinen <[email protected]>
Change-Id: I957b55f42be372e36b0bdb2a26d452e5c60909e0
Reviewed-by: Qt Submodule Update Bot <[email protected]>
The handling of images in the VectorImage generator would apply
the node info before setting the new node as current, thus setting
transforms on the parent instead.

Note: This patch also removes a couple of outdated comments and
fixes indent on the QML generator for images.

Pick-to: 6.8
Task-number: QTBUG-128476
Change-Id: I1fbcfbac5a97f66ecbff0e74b27c0e2c88cc08f6
Reviewed-by: Eirik Aavitsland <[email protected]>
Morten Sørvig and others added 30 commits September 30, 2024 07:14
Follow-up to 7574111.
The position passed to QPlatformMenu::showPopup() is in the
window-local coordinate system, which means the the "local"
toNative() scaling function must be used.

Task-number: QTBUG-127906
Task-number: QTBUG-128126
Pick-to: 6.5 6.7 6.8
Change-Id: I3ec34bdae4ce9a7235c68eab248f4a9cb127eb3f
Reviewed-by: Shawn Rutledge <[email protected]>
Reviewed-by: Inho Lee <[email protected]>
We set those options from CMake. qmlcachegen can still dump (empty) AOT
stats if it's compiling only to byte code, and it's not wrong to still
tell it the module ID.

Amends commit 6ae3620

Change-Id: I3990c0783f9fdf0c7c7263675dc82c8c74851eb8
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
This includes making it non-incremental by setting the timelimit to 0,
which might be a workaround for some issues with the incremental garbage
collector.

Task-number: QTBUG-129241
Pick-to: 6.8.0 6.8
Change-Id: I665052345688cd17f05d52a46adc9a09bebefef2
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
Amends commit ebd8b85

Pick-to: 6.8
Change-Id: I62bb78e75ab98129ca317a2cb741b246c5d1cf20
Reviewed-by: Fabian Kosmale <[email protected]>
The metatypes from any old engines may have been deleted.

Retrieve the types from the ResolveTypeReferenceMap instead. That is
much cheaper than doing a full type search and the CU should know the
types it's dealing with.

Sometimes, however, the CU does not pre-resolve the types. In
particular, types only used in function signatures do not end up in the
ResolvedTypeReferenceMap. In those cases, still do the full type search.

Amends commit 8bf5aae.

Pick-to: 6.8.0 6.8
Task-number: QTBUG-129388
Change-Id: I27f25e1c68de3c752d00345c6d94016fb315e16c
Reviewed-by: Fabian Kosmale <[email protected]>
In most cases, the usage of scope is only to guard against future
changes which could introduce allocations.
However, in a few places we end calling functions that can allocate:
Both addDummyEntry and cleanInternalClass can allocate memory, and there
is nothing protecting the newly allocated internal class.

Pick-to: 6.8.0 6.8
Change-Id: I727a91380c49fb95cbd6f5cba39bdd5f9a9b0e5e
Reviewed-by: Ulf Hermann <[email protected]>
There's no need for a src directory.

Fixes: QTBUG-128500
Pick-to: 6.8 6.7 6.5
Change-Id: I5663fa80bf06a1e46819ef74678a9a4710b718a0
Reviewed-by: Venugopal Shivashankar <[email protected]>
I fixed broken links in the Kotlin example, added missing ones there,
and added them to the top-level Qt Android Classes page.

Pick-to: 6.8 6.8.0
Change-Id: I70b6a4e9aa02c83c69f20139f4f3a57369cbd954
Reviewed-by: Paul Wicking <[email protected]>
3f3787a added a wrap parameter to
QQItem::nextPrevItemInTabFocusChain that allows us to not wrap around
the focus chain for cases where eg: we need to tab navigate in and out
of the quick window. The problem was that we were wrongly wrapping
from the first back to the last in case of a BACKTAB, even if wrap was
set to false. This was to allow for cases where the root item has the
active focus and we want to backtab to the last item in the quick
window. This shouldn't be the case, however, because if wrap is
false, that means that we shouldn't wrap in ANY case. This was also
not allowing us to backtab to a parent window when the focus is on
the root item of the quick window.
To fix, if we are about to wrap around and the "wrap" parameter is
false, always return.

Pick-to: 6.8
Change-Id: I29faa7c67bc229b9965b06acb4631b7c8e5b73d0
Reviewed-by: MohammadHossein Qanbari <[email protected]>
Reviewed-by: Mitch Curtis <[email protected]>
As it stood, the logic that resolved if a menu can, and
should be, native was duplicated into two functions;
useNativeMenu() and resolvedPopupType(). And the two was
somewhat inconsistent.

This patch will therefore refactor all the logic into
resolvedPopupType(), so that the popup type is resolved
in a single place. Existing auto tests
(such as tst_QQuickMenu::subMenuPopupType()) should verify
that this refactoring is safe.

Pick-to: 6.8
Change-Id: Ifc73d20c2d2e06646dc2849c8398660a35b17cb2
Reviewed-by: Oliver Eftevaag <[email protected]>
Most of the relevant functionality is covered by unit-tests,
however due to some complexities of DOM some of the aspects
can be tested only as part of e2e testing. But also ofc,
the core flow
QmlLs<->DocumentSymbolProvider<->DocumentSymbolUtils
should be covered as well

Task-number: QTBUG-120002
Change-Id: I1e5a151d8c8ed582a76d368b778756104535be66
Reviewed-by: Sami Shalayel <[email protected]>
When dealing with the `for..in` language construct, V4 internally uses a
`ForInIteratorObject` to implement the required iteration.

As part of the initialization of this kind of object, the iterator marks
the elements it iterates upon to avoid them being collect in while the
iteration is still going.

A "proxy" is a kind of object that wraps another object, adding one
layer of indirection.

A "proxy" object can be revocable. Revoking a "proxy" through a revoke
function or the revoke method is generally intended to end its lifetime.

Internally, a `Proxy` object keeps track of its "target" and its related
"handler".

When the `Proxy` object is revoked, its references to those elements are
nulled out and the `Proxy` is unusable.

If the `Proxy` is the only object holding a reference to those elements,
it then means that, after a revoke operation, the elements are eligible
for garbage collection.

It is possible to create such a situation during a `for..in` run over a
revocable `Proxy` object.
If the `Proxy` has the only reference to its "target", and the iterator
doesn't keep the "target" alive itself, then revoking the `Proxy` object
will allow "target" to be collected when it is still in use.

Indeed, while `ForInIteratorObject` has some special handling for
`Proxy` objects, it failed to mark all its dependencies so that the
above situation could be realized.

To fix the issue, ensure that `ForInIteratorObject` marks all relevant
elements when iterating a `Proxy` object.

A test case was added to `tst_qv4mm` that shows the behavior.

Fixes: QTBUG-129310
Pick-to: 6.8 6.5
Change-Id: Ic360d77c1495a87153bb57f8ed87d23552edc08b
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
This enables us to encode instructions efficiently in between 1 and 18
bytes.

Change-Id: I2e6437ffb31c34069241cfe716f6c61e20388892
Reviewed-by: Ulf Hermann <[email protected]>
Added links to the Qt Quick Android Classes page for examples.
Added links to the Android Java classes provided by Qt Core.
Renamed QML in Android Studio Projects example as Qt Quick
for Android-related.
Rename filename using qml in Android.

Pick-to: 6.8 6.8.0
Change-Id: I79f79971ea7d224545c939a906bb449bd2b886c5
Reviewed-by: Assam Boudjelthia <[email protected]>
The focus did not move from QQuickWidget to sibling widgets.
Additionally, when focus moved to QQuickWidget via tab/backtab key
events, the item that was focused before the focus moved out was
refocused. This is expected when the focus reason is not tab or backtab.
In such cases, it is expected that the first/last item should be focused
due to tab/backtab focus reasons.

To address this issue, QQuickWidget checks the next/previous candidate
in its child items through the focusNextPrevChild() method. If
QQuickWidget cannot find any candidates, it should behave like a
QWidget. Otherwise, it simulates a tab/backtab focus event for the
offscreen window (QQuickWindow) to determine which item should be
focused.

The test case demonstrates a window containing a QQuickWidget with three
rectangle items, a middle widget, and another QQuickWidget with three
rectangle items. It then sends some Tab and Backtab events and verifies
that the expected order of items and widgets is followed. The expected
order varies depending on the direction of focus change (forward if the
Tab key is pressed and backward if the Backtab key is pressed).

[ChangeLog][QtQuick][QQuickWidget] The first/last item must be focused
when QQuickWidget receives a focus-in event due to tab/backtab reasons.
In other cases, such as ActiveWindowFocusReason, the item that was
focused before will be refocused.

Pick-to: 6.8
Change-Id: Ie25e6c2c46e20e15a5db014e0054b8b9da2d8a21
Reviewed-by: Doris Verria <[email protected]>
If running is set to false and then true within a short period,
BusyIndicatorImpl's OpacityAnimator cancels the 1 => 0
animation (which was for running being set to false), setting opacity
to 0 and hence visible to false. This happens _after_ setRunning(true)
was called, because the properties were set synchronously but the
animation is asynchronous. To account for this situation, we only hide
ourselves if we're not running by storing and checking our running
state.

Fixes: QTBUG-85860
Pick-to: 6.5 6.7 6.8
Change-Id: I220dfb78f00028e4a12a92fc14082006e1844002
Reviewed-by: Doris Verria <[email protected]>
Tumbler is based on PathView and ListView. They both have a
flickDeceleration property. It was not possible to configure this
property when using Tumbler.

flickDeceleration in PathView and ListView does not have the same
default value. Hence, to preserve the original behavior, the property
of Tumbler changes together with the wrap property by default, unless
assigned an explicit value. It is resettable.

The designer file for Tumbler contains the new property as well.

[ChangeLog][Controls][Tumbler] Added flickDeceleration property.

Change-Id: I5f58b8659fea9bbd7bcc7381087351162b8e06c3
Reviewed-by: Mitch Curtis <[email protected]>
QQmlMetaType::prettyTypeName() can spontaneously return a non-pretty
name (ie. "QQuickText" instead of "Text"), so we can't hard-code the
type name in the expected warning message.

Pick-to: 6.8
Task-number: QTBUG-129301
Change-Id: I959aa6aca505ac49e809497834a05b5306f0b30c
Reviewed-by: Mitch Curtis <[email protected]>
Fixes: QTBUG-127795
Pick-to: 6.8 6.7 6.5 6.2
Change-Id: I4b9a958805b4bdcd0b06758e94aca5278847c314
Reviewed-by: Ulf Hermann <[email protected]>
So far we produced invalid QMetaTypes for them in various places and
that "worked" for the most part because with QObject pointers we can
introspect the actual type at run time.

Realize that we never actually want the concrete anoymous type of the
object when we pass it around. Rather, all methods and properties need
to handle named types. What we really want to resolve is therefore not
the type of the original value we've produced in the type propagator,
but rather the replacement we've produced when analyzing the lookup.

Pick-to: 6.8
Task-number: QTBUG-129202
Change-Id: I0b93495d6603f120375048c80a747170f147f8af
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
(cherry picked from commit 14ff682)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
We're not guaranteed to get string IDs for those.

Pick-to: 6.8
Change-Id: I5800a1e90589f3a6ae55ce8624fa56968f0f3ec3
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
(cherry picked from commit b8c3cf7)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
To avoid duplicated content, add a link to the qmlformat page.
Having a link to a more detailed page for the tool is also in line with
how the other tools are listed on the Qt Quick Tools and Utilities page.

Fixes: QTBUG-127287
Pick-to: 6.8 6.7 6.5
Change-Id: Id0fc71818bdb41fb5763dad7f2b562e4c3a00a4d
Reviewed-by: Paul Wicking <[email protected]>
- range of useful resizing is greater
- go from 2 to 6 columns during resizing
- don't make the sidebar huge: assume the "content" is more interesting
- required property index
- minor syntax reordering

Pick-to: 6.7 6.8
Task-number: QTBUG-119388
Change-Id: I55d684107e5fc972a1b328b12b4932a1fc85b382
Reviewed-by: Oliver Eftevaag <[email protected]>
… cases"

This reverts commit 6561344. It needs
to be fixed in a different way.

Fixes: QTBUG-127340
Pick-to: 6.5 6.7 6.8
Change-Id: I8503b22a5257e0fb5ee11a1bdf83d3dcab4a600a
Reviewed-by: Richard Moe Gustavsen <[email protected]>
Since 837c2f1, we connect to
modelAboutToBeReset rather than modelReset so that we can handle role
name changes. _q_modelAboutToBeReset now connects modelReset to
handleModelReset with a single shot connection instead.

However, it's possible for user code to begin the reset before
connectToAbstractItemModel is called (QTBUG-125053), in which case we
connect to modelReset too late and handleModelReset is never called,
resulting in delegates not being created in certain cases.

So, we check at the earliest point we can if the model is in the
process of being reset, and if so, connect modelReset to
handleModelReset.

This is a less intrusive alternative to
6561344, which caused regressions and
was reverted.

Fixes: QTBUG-125053
Task-number: QTBUG-127340
Pick-to: 6.5 6.7 6.8
Change-Id: I2bfe192ed61eddaa481de4b1e14b1fa5d07a51c1
Reviewed-by: Richard Moe Gustavsen <[email protected]>
Prior to 06ace3e we would not
account for items in different scenes, and would map them as if
they were part of the same scene.

After 06ace3e we took the scenes
into account, but failed to guard against one or both of the items
not having a scene (yet), causing potential crashes.

We now properly check that both items have a scene before trying
any scene to scene mapping.

The semantics if one or both of the items are not in a scene is
kept as it was before 06ace3e,
where we assume the two items are part of the same scene, and an
item without a parent is assumed to be the root of its scene.

Pick-to: 6.8
Fixes: QTBUG-129500
Change-Id: I897faf73d04dddd68a7a8797e5238743efdd4f73
Reviewed-by: Shawn Rutledge <[email protected]>
This code is currently unreachable since we do not perform lookup
preparation for enums in AOT-compiled code. However, in case we do one
day, it should really return the right type.

Change-Id: Ie1489eb214cc6afe9355378d65e692e39da8584b
Reviewed-by: Olivier De Cannière <[email protected]>
It doesn't do anything useful anymore. We only want to use
lookupResultMetaType to prepare a QVariant to hold a return type we
cannot easily name in generated code. SetLookup does not return
anything.

Change-Id: I634656bce09d6603a4cd1bba0418eac842daeca5
Reviewed-by: Olivier De Cannière <[email protected]>
It seems the current description has been copied from
QQuickWindow::graphicsDevice().

Fixes: QTBUG-126784
Pick-to: 6.8 6.7 6.5 6.2
Change-Id: Ia52a6f7cd8e082e07b8cc8d59c345d4e2508aa19
Reviewed-by: Laszlo Agocs <[email protected]>
QQuickPdfPageImage::load() calls carrierFile() to get a QPdfFile
instance, a subclass of QIODevice, and calls
QQuickPixmap::loadImageFromDevice() which saves the device to
QQuickPixmapData::specialDevice, then calls
QQuickPixmapReader::startJob() which sends a ProcessJobs event.
The worker thread handles it in QQuickPixmapReader::processJob()
and calls readImage(), passing a simple QIODevice *dev. readImage()
relies on that pointer being valid until the work is done. However,
QQuickPdfDocument::setSource() may have called deleteLater().
We can detect it, and in that case there is no point in continuing this
render job. Also, change QPdfFile's thread affinity to the renderer
thread, so that deletion cannot happen until after readImage() is done
and the renderer thread has returned to its event loop.

Fixes: QTBUG-128875
Pick-to: 6.8 6.7 6.5
Change-Id: I1e8bf526c5596ce561d7bf4f7dea8d50f3c0eb18
Reviewed-by: Axel Spoerl <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.