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]>
Copy link

cla-assistant bot commented Nov 15, 2024

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
0 out of 10 committers have signed the CLA.

❌ torarnv
❌ pixelgrease
❌ Frédéric Lefebvre
❌ dorisverria1
❌ eskilblomfeldt
❌ QtDheeru
❌ ec1oud
❌ alcazaco
❌ mitchcurtis
❌ aavit


Frédéric Lefebvre seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

Ulf Hermann and others added 28 commits November 21, 2024 15:25
With SetLookup there is always the possibility of causing a reset by
passing undefined. That's why we need to wrap the argument into QVariant
most of the time. SetValueLookup didn't take this into account, which
resulted in invalid code.

The test also reveals that a number of cases were generating different
errors depending on whether the code was run in interpreted or compiled
mode. Align those.

Pick-to: 6.8
Task-number: QTBUG-127174
Change-Id: I88f45977dcd0eeba8aaf580663d4b85b8bb26f72
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Alexey Edelev <[email protected]>
Overlays are positioned so that they are centered over the content item
within the window. If the window has a null-size when this is computed,
then the overlay ends up being misplaced, and overlay-provided services,
such as modality or closing popups, stops working for parts of the UI.

Fix this by resizing the offscreen window before resizing the content
item.

Add a second test case that verifies that the overlay geometry is as it
should be, both after the initial show, and after resizing the widget.
The existing resizeOverlay test doesn't use a proper QQuickOverlay, so
it doesn't cover all the relevant code.

Fixes: QTBUG-125135
Pick-to: 6.8 6.5
Change-Id: I682d87f07051d213d3bd58c1c2533c84b50a3139
Reviewed-by: Mitch Curtis <[email protected]>
QmlLive has not been ported to Qt 6 and is not expected to be available,
all mentions of QmlLive have been removed from the Qt 6 documentation

Fixes: QTBUG-131406
Change-Id: Ib280eebf014040ac5864087ee10252a6f0ceddbd
Reviewed-by: Volker Hilsheimer <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
Similar to 8d454b2 and
f7dffe0.

Pick-to: 6.5 6.8
Change-Id: Iaf9a4edc8a3c37f232ad3b66923864f4baa02d4d
Reviewed-by: Oliver Eftevaag <[email protected]>
Reviewed-by: Shawn Rutledge <[email protected]>
This can be useful for QQuickRhiItem subclasses with PIMPL.

Change-Id: I874333adcd688d3e38eb2c1d6013a9d1d4c9cc00
Reviewed-by: Laszlo Agocs <[email protected]>
For some reason, the argument count is called argv and the argument
values are stored in argc. That should probably be the other way around.

Change-Id: I60361cc6d84cefb9599ea349a40e77c5eaf0c581
Reviewed-by: Fabian Kosmale <[email protected]>
The other transformations that previously used castTo() are better
phrased as conversions rather than casts.

Task-number: QTBUG-124670
Change-Id: I3cf885edcac6fa665a6ad12b97f6d063709a1632
Reviewed-by: Olivier De Cannière <[email protected]>
Define a pair of lookup methods for this and generate code that uses
them. Write back after calling a non-const method.

Task-number: QTBUG-127174
Change-Id: I6de22e76b63390fd7159d9c14ea2c908d961ec97
Reviewed-by: Olivier De Cannière <[email protected]>
We now call the toUpper/toLower function for the correct locale.
It fixes the case of the Turkish uppercase i is İ not I.

Fixes: QTBUG-112898
Change-Id: Ibd0174656e0aa561747490f3e6d52c639bd06b63
Reviewed-by: Ulf Hermann <[email protected]>
It returns a bool. You can tunnel a bool through ReturnedValue but
that's quite wrong.

Change-Id: I6cf618a71e3a0fb393c2ea3086a8a029b8178ffe
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
Change-Id: I7c1db388f4906cd98c7c883ae204d55e3b702142
Reviewed-by: Fabian Kosmale <[email protected]>
Once we have handled them, we need to remove them from the list of
reader locations.

Task-number: QTBUG-124670
Change-Id: Ibe08a86a497c42fcca1d246d38e68e73e9a98fe5
Reviewed-by: Olivier De Cannière <[email protected]>
QQuickLayoutItemProxyAttachedData that is associated with the target
item will be destroyed when there are no proxies controlling it any
more.

We therefore need to reset the "QQuickLayoutItemProxyAttachedData"
property that keeps a reference to the QQuickLayoutItemProxyAttachedData
instance

Pick-to: 6.8 6.7
Task-number: QTBUG-126794
Change-Id: I1fb404512f079aa7a6b70b0e724624a17530d7f1
Reviewed-by: Matthias Rauter <[email protected]>
This is probably impossible to trigger since any realistic operation
converts numeric types to JavaScript Number. However, we should rather
be safe than sorry.

Amends commit 372db48.

Pick-to: 6.8
Change-Id: Ifea57f10728a3bf9461ad5067d1db2b6902e80a7
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
This is a major departure from the previous architecture. We can now
alter a QQmlJSRegisterContentPrivate after it has been created. This is
fundamentally necessary so that we can add further links to other types
as they are discovered. With an immutable QQmlJSRegisterContentPrivate
we have to clone every time which makes for long and rather meaningless
chains of links that are hard to navigate, eventually. Making the
register content non-const will in turn allow us to uphold the
immutability of QQmlJSScope. That is much more important because it can
fundamentally be used across different compilations.

Task-number: QTBUG-124670
Change-Id: Iacee705be3260da0a2bc91c6758f91c70a137065
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
Change-Id: I60d1a475ba0c22f789c3412e58a9ecbe54dc9adf
Reviewed-by: Shawn Rutledge <[email protected]>
… resizes

7b282e9 introduced a macOS specific
mechanism to defer frame triggering on the render thread without
synchronising with the main thread. It has now been moved to a more
generic place to allow support from more platforms.

Change-Id: Ie0d111e294dbe7d06ec6dfd8148fac1fae76cfab
Reviewed-by: Tor Arne Vestbø <[email protected]>
This commit fixes the code snippets in the Run-Time Style Selection
section of the Styling Qt Quick Controls article.

Fixes: QTBUG-112453
Pick-to: 6.8
Change-Id: I522f9731214278467e1aa45a156a10f189ec1f1a
Reviewed-by: Mitch Curtis <[email protected]>
51ccfc0b32f3d69340bf82de4e7624c9e27b35bd enabled Xdoclint:all.
That caused errors in submodule depedency round.

This patch fixes the errors.

Fixes: QTBUG-131594
Change-Id: Ie7af71c6dfebb203dbe2c51a6e5204a9eb5f52bd
Reviewed-by: Assam Boudjelthia <[email protected]>
Change-Id: I396f19fdc40d972448b85456d173dc61a9e6fb38
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Due to the same problem as described in 98d4a44, qml tests fail to
execute properly without qmltest tool on VxWorks, which is run on qemu
as well as QNX.

Fix this by excluding VxWorks from platforms for which qmltests are
built and run.

Task-number: QTBUG-100202
Change-Id: I87019405ce9aa5eb87d660887033bef17ef40a1f
Reviewed-by: Alexey Edelev <[email protected]>
…erride

The interface for how QQuickImageBase and QQuickImage handles loading of
the image is via the virtual QQuickImageBase::load() function. For some
reason QQuickIconImage was using its own updateIcon() callback for the
same use-case, which was causing issues.

For example, when updateIcon triggered a pixmapChange we would update the
fill mode, but doing so via QQuickImage::setFillMode() would trigger load(),
which in turn ended up in QQuickImageBase::loadEmptyUrl(), because the
way we load icons is not based on QQuickImageBasePrivate::url being set.

We now implement the icon loading in a QQuickIconImage::load() override,
which also lets us remove some of the manual updates we had in response
to e.g. the DPR changing.

A small tweak to QQuickImageBase::itemChange is needed, since it can't
assume that a DPR shouldn't trigger a load() just because the URL is
empty.

Change-Id: I6dea4bd23bb2c0b69ba5dbe2dbf7f95655aa406b
Reviewed-by: Mitch Curtis <[email protected]>
We need to be able to look them up in the type registry in order to
locate the inline components.

Pick-to: 6.8
Fixes: QTBUG-131394
Change-Id: I86a615ffab1ffcc1262ca0f282ad4893366d4654
Reviewed-by: Fabian Kosmale <[email protected]>
This patch introduces TableViewDelegate to the Controls module.

Key features:
- Ready-made delegate assignable to TableView
- Handles table drawing using predefined styles
- Usable without customization
- Implements all required properties set by TableView
- Provides API for changing background and label

Test Suite:
- Verifies TableViewDelegate properties and functionalities
- Tests include:
  - Verification of selected, current, and content text properties
  - Validation of selection behavior and item clicking

BLACKLISTing two tests (dragToSelect and pressAndHoldToSelect), which
will be removed from the BLACKLIST in the next patch (to fix cell
selection on the Android platform).

Implementation derived from TreeViewDelegate, adapted for TableView use.
TreeViewDelegate patch: 0ddb0d4

[ChangeLog][Controls] New delegate added: TableViewDelegate

Fixes: QTBUG-114636
Change-Id: Ibb8b0a7622016e0c6fd58d696e507e7bb76daced
Reviewed-by: Mitch Curtis <[email protected]>
Flickable/ListView/TableView could sometimes pause (or lag) for almost
a second if you dragged it in one direction, but then switched to
drag it in the opposite direction (without lifting your finger). This
was especially evident on iOS. It could be reproduced in, for
example, the Gallery app (the controls-list in the drawer), or
any other app with a Flickable.

The reason this happened, was because a "reversed" drag would cause
dx and dy to converge back to zero (compared to the starting point
of the drag), which would result in overThreshold becoming false
again. And since the deltas ended up below the threshold, the content
item stopped moving.

The biggest reason for this problem was because we reevaluated the
drag threshold for each subsequent drag in an ongoing flicking
session. This has already been fixed in a previous patch. This patch
will in addition remove the related dx/dy != 0 checks because of the
same reason; Once in dragging mode, the content item should always
move, even if it was dragged exactly back to the starting
point (dx/dy == 0).

Fixes: QTBUG-129599
Pick-to: 6.8
Change-Id: I0af476903d537269458e2d2ee0d12a90e6dfd9c4
Reviewed-by: Shawn Rutledge <[email protected]>
Change-Id: I71729cca243bf8aaed76824ed76c549e2a9a8ecb
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
- call QFileSystemModel::setRootPath() to start populating it
- singleton rather than context property
- alternate-colored rows
- TapHandler rather than MouseArea
- required properties, qualified access etc. to satisfy qmllint
- no need for QApplication in Qt 6 (QGuiApplication is fine)
- make it buildable (how else would we know if it works?)

Pick-to: 6.8
Task-number: QTBUG-131487
Change-Id: I8b42971a3ec4f3a2fd8cfadbb2de699c852783a0
Reviewed-by: Fabian Kosmale <[email protected]>
The SafeArea attached type provides information about the
areas of an Item or Window where content may risk being
overlapped by other UI elements, such as system title
bars or status bars.

This information can be used to lay out children of an
item within the safe area of the item, while still allowing
a background color or effect to span the entire item.

The attached type also provides a writable property to add
additional margins, which are reflected through the item's
and any children's safe area margins.

This is useful for informing child items about elements
such as headers or footers, that may overlap the other
child items.

Task-number: QTBUG-125373
Change-Id: Id83e384f31f9770367c98e6455ec44e1086beb8a
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Mitch Curtis <[email protected]>
Ulf Hermann and others added 30 commits December 19, 2024 12:39
The type of the register may not be the one to be passed to the method.
We cannot rely on the run time internals to coerce the value anymore
since we've moved the type determination out of the generated code.

To make this happen, we need to adjust the storage types of read
registers in the storage generalizer.

Pick-to: 6.9
Fixes: QTBUG-132329
Change-Id: I642027f349f7c05f714ec36ef4e23f9d59b4a8df
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
It's not necessary anymore. We can use the read register as-is. Also,
explicitly name the type we are going to use to avoid integer range
mismatches on coercion.

Pick-to: 6.9 6.8
Task-number: QTBUG-132345
Change-Id: I98d246b03e5194235246ee8e4ebcb0a8e0094a5b
Reviewed-by: Olivier De Cannière <[email protected]>
The conversion is not required to produce the same type. It can also
produce something equivalent that holds the same value. For example an
integer of a different kind that on assignment gets C++-converted.

Pick-to: 6.9 6.8
Task-number: QTBUG-132345
Change-Id: I07accb38062b7c89ab60d50bf6cbd63423e68301
Reviewed-by: Olivier De Cannière <[email protected]>
Pick-to: 6.9
Change-Id: Ia19ba0d0bc619f325c5649672ff32697f7421e55
Reviewed-by: Ulf Hermann <[email protected]>
A ToolBar and MenuBar is commonly placed in the header/footer/menuBar
of an ApplicationWindow, where we don't do any automatic padding to
account for the safe area.

By adding the safe area margins as padding to the controls, we ensure
that the control's background flows into the non-safe area, while the
content item of the control (the toolbar or menu bar content) is kept
within the safe area.

Pick-to: 6.9
Change-Id: I5fad7394beaa01ae8ed142e4e2e42c5bffaab9fa
Reviewed-by: Richard Moe Gustavsen <[email protected]>
…sses

Popup uses a Pane as its popup item, so now that Pane reflects its
explicitly set contentWidth/Height through implicitContentWidth/Height
we can use the same expression for implicit width/height as regular
controls, which hooks us into the safe area binding loop detection
as well.

Pick-to: 6.9
Change-Id: I3709978dae0271d7daf44fc6988f09f03df15b1f
Reviewed-by: Mitch Curtis <[email protected]>
When the drawer is pulled in from the side we want it keep its content
away from the non-safe areas, while still drawing the background edge
to edge.

Pick-to: 6.9
Change-Id: Iff145df719f5746cbdb1d3c13494967c5993c6e6
Reviewed-by: Doris Verria <[email protected]>
Reviewed-by: Mitch Curtis <[email protected]>
This commit is a minor simplification of DomItem::fromCode to remove
a redundant and misleading call to loadPendingDependencies.
When Env is created with NoDependencies option, the load of the File is
happening instantly, not through the loading queue, therefore there are
no pending dependencies.

+ Minor cosmetic changes.
Fore example, removing Option::SingleThreaded option, it's not used anywhere, like it's actually redundant and we should remove it completely. But it's also misleading. In most cases we create DomEnv with SingleThreaded option, but then we actually using lots of locks inside environment and it seems that inside Qmlls we indeed have more than 1 thread.

The similar was happening to DomUniverse from which I've successfully removed this option

Change-Id: Ia8e9707fd70dcc319330911ad9ea00df86629636
Reviewed-by: Semih Yavuz <[email protected]>
Since setData() and dataChanged() methods were added to
QtAbstractItemModel Java class, modify the existing model in
qtabstractitemmodel example to an editable one to showcase these
methods.

Changes includes:
- Main.qml:
    - Minor QML coding convention based changes
    - Changed cell size
    - Changes that enable cell text editing and
      forwarding the changes to the model
    - Changed Text alignment inside cell
    - Cell text is fetched from new "edit" role

MyDataModel.java:
    - Added override for setData()
    - Removed not needed roles "column" and "row" and
      replaced them with new "edit" role
    - Modified the Cell class to suit better editable model
    - Squashed generateRow() and generateNewRow() into one
      generateNewRow()
    - Added internal datalist updating to removeColumn()

Fixes: QTBUG-130254
Change-Id: I791ad33e3b729617a7f53f6553e11fc39878edae
Reviewed-by: Assam Boudjelthia <[email protected]>
When calling moveToItem() when the focus object changes, we were
explicitly assigning the visible property. This caused the previous
binding declared on the visible property of the frame to be removed.
To fix, don't assign the visible property on moveToItem, as the
binding on the target item and its visibility will take care of that.
Ammends 945c3a98edac75cac082b1719c380a0bae861944.

Pick-to: 6.8 6.9 6.5
Change-Id: I504a0e00000c5fdfb8c5193b9fa2314199a7c4e0
Reviewed-by: Jan Arve Sæther <[email protected]>
Blacklisting doesn't work since it times out.
Unblock CI until a fix can be found.

Task-number: QTBUG-132275
Change-Id: Ia162ced15ccf808fdde5d941406539ee4e6f84b9
Reviewed-by: Shawn Rutledge <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
We don't need to assign anything if the values are strictly equal in the
JavaScript sense. In that case they are indistinguishable and no signal
should be sent either.

[ChangeLog][QtQml][Important Behavior Changes] Assigning to "var"
properties now only triggers a change signal if the value of the
property actually changes. Change is determined using JavaScript's
"strictly equals" semantics (the "===" operator).

Fixes: QTBUG-131901
Change-Id: I42b8f370ea7e10d684aa279db9bff33d78253516
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
This adds support for quoted file names and for escaping quotes and
backslashes with '\'. It breaks support for file names that genuinely
start with a quote.

[ChangeLog][QtQml] You can now quote file names in qmldir files using
'"'. This is so that you can write file names with spaces in them. '\'
functions as an escape character, allowing you to escape quotes that are
part of file names and backslash itself.

Task-number: QTBUG-131916
Change-Id: Ia89e60153d3fafa273034f81da37166f30284c76
Reviewed-by: Fabian Kosmale <[email protected]>
The regular int32 coercion doesn't apply here. We have our own logic for
this case.

Pick-to: 6.9 6.8
Task-number: QTBUG-132345
Change-Id: I96596567ce83fcaa714c8372171261e8dd876480
Reviewed-by: Fabian Kosmale <[email protected]>
Most of the time we actually need the type loader. In some of the cases
we don't need anything at all. Where we do still need to poke into the
engine, mark this clearly.

Task-number: QTBUG-131721
Change-Id: Ib50adaa99af8f1347db5cf03b10fe590dea730ed
Reviewed-by: Fabian Kosmale <[email protected]>
Pick-to: 6.9 6.8
Change-Id: Ice0d17f4564d500e83ec205395ff7f50a50f1768
Reviewed-by: Ali Kianian <[email protected]>
Reviewed-by: Mats Honkamaa <[email protected]>
This works by first creating a transform object per animated
property we have in SVG. Then it creates a set of key frames
based on these. All key frames will touch all animations, so
that they can also control activating and deactivating an
animation, freezing the end result of one, etc. The frames
we generate are based on the end points of animations as well
as right after (and sometimes right before) the animation to
record the state when it is inactive.

If any of the animations have infinite repeats, we create a
set of key frames for the finite part first and then the
infinite loop, so that these are separated into two different
animations in QML.

At each key frame we check all animations to see if they
affect their corresponding transform at this time. If they
are inactive, the transform will be set to a default value.
But if they are active (either running or frozen), we
query the interpolated value from the animator to get the
value at the specific time.

Pick-to: 6.9
Fixes: QTBUG-127590
Change-Id: I0102cefb3713a0c36661fb3da008b25b19a80427
Reviewed-by: Hatem ElKharashy <[email protected]>
They have been added to the Qt namespace.

Pick-to: 6.9
Task-number: QTBUG-132387
Change-Id: I366e5dcfbe8d362f7776bf6b33a502979d34f78e
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
As properties of QObject they show up in several places.

Task-number: QTBUG-132387
Change-Id: I527bb9de52aa03735144fb5a720d31e59d7aeee6
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
We cannot access m_engine unless we know for sure that we're on the
engine thread. Therefore, a separate isEngineThread() method must not
exist. Luckily, all occurrences of isEngineThread() were actually
assertions.

Task-number: QTBUG-131721
Change-Id: I3bb6333f6a0fa43b613310c4362a9ec3547e4296
Reviewed-by: Fabian Kosmale <[email protected]>
This is in fact a test for qmltyperegistrar and it makes no sense to
check the qmltypes. Those can only be generated by qmltyperegistrar's
--jsroot argument which will use the built-in metatypes. The interesting
part is whether the metatypes are correct. Check that instead.

Amends commit 5789464 which introduced
an attribute to qmltypes that can only be generated with the --jsroot
argument to qmltyperegistrar.

Pick-to: 6.9 6.8
Change-Id: Iae9f7d08980ecb09f61000b7f63d6d7e9a746970
Reviewed-by: Fabian Kosmale <[email protected]>
Let's silence it until all the type loader changes are in. Then, let's
see if it's still flaky.

Task-number: QTBUG-132380
Change-Id: I2129c9dbdf84472dd034ffddcf6c713425b88ef6
Reviewed-by: Olivier De Cannière <[email protected]>
This patch enhances the test coverage for SelectionRectangle when used
with a TableView that has no delegate set.

The changes add the following considerations:
1. Verify that selection doesn't activate when no delegate is set
2. Cover potential crash scenarios
3. Consider the no-delegate case

The related fix patch is: 481d2e5

Pick-to: 6.8 6.9
Change-Id: I0e91491bc4a07aeb9dd9f4ae02e7137201c9bca4
Reviewed-by: Richard Moe Gustavsen <[email protected]>
The textRole property in HorizontalHeaderView doc is not applicable when the custom delegate is defined.

Update documentation HorizontalHeaderView::textRole. textRole is not applicable when the custom delegate is defined by the developer.

Fixes: QTBUG-131322
Change-Id: Iafda84d97d5cae3fd769561c3a048029e5a0d50e
Reviewed-by: Paul Wicking <[email protected]>
Add a code snippet to explain the use of protected two argument constructor when deriving a class from QQmlPropertyMap.

[ChangeLog][Qml][QQmlPropertyMap] Added a code snippet to explain the use of protected two argument constructor of QQmlPropertyMap.

Fixes: QTBUG-130592
Pick-to: 6.9
Change-Id: I85ec374e2b3067abf628af68fa5f692b3dd3a415
Reviewed-by: Olivier De Cannière <[email protected]>
This is an attached type that provides a way to open a context menu
in a platform-appropriate manner.

[ChangeLog][Controls] Added ContextMenu. ContextMenu can be attached
to any item in order to show a context menu upon a platform-specific
event, such as a right click or the context menu key.

Fixes: QTBUG-67331
Pick-to: 6.9
Change-Id: I225a8f498cc5bc18d36c3dc4cf481ef5ef95cd88
Reviewed-by: Jan Arve Sæther <[email protected]>
Reviewed-by: Shawn Rutledge <[email protected]>
Pick-to: 6.9
Task-number: QTBUG-132436
Change-Id: I95e6178c4453e35bc392118d6758a91074b7951a
Reviewed-by: Shawn Rutledge <[email protected]>
QQuickDeliveryAgentPrivate::eventTargets() finds items relevant to an
event at a position, where the position has to be found before calling
it, because QContextMenuEvent is not a pointer event. Relevance is
mainly determined by QQuickItem::contains() and QQuickItem::clipRect();
but an extra predicate can be passed along to encapsulate the extra
checks that QQuickDeliveryAgentPrivate::pointerTargets() needs to do.
It has a tri-state return value, implemented as std::optional<bool>,
to indicate whether the relevance should be definitely true, false, or
left as-is after the bounds check.

Task-number: QTBUG-67331
Pick-to: 6.9
Change-Id: I151faa655590c0b6a51b148889f18e3cde7c76f5
Reviewed-by: Mitch Curtis <[email protected]>
QQuickDeliveryAgentPrivate::deliverContextMenuEvent() relies on that the
QContextMenuEvent gets ignored if the target item doesn't handle it,
therefore we have to make sure it is ignored by default.

This fixes the context menu for the SideBar (still WIP) and likewise the
autotest in this change.

Pick-to: 6.9
Change-Id: If72a814adc92aea6e5e071eb49cbe84b025768fb
Reviewed-by: Shawn Rutledge <[email protected]>
In case QQuickDeliveryAgentPrivate::deliverContextMenuEvent() doesn't
choose the correct target the first time, we need to let it propagate,
as with all other input events. But it should stop when it's actually
handled.

Pick-to: 6.9
Change-Id: I086f87a90c596d93688033f1ae63f258f508d36e
Reviewed-by: Jan Arve Sæther <[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.