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

Qt 6.2 QJSEngine meyatype converter #8

Open
wants to merge 6,510 commits into
base: dev
Choose a base branch
from
Open

Qt 6.2 QJSEngine meyatype converter #8

wants to merge 6,510 commits into from

Conversation

rjcamatos
Copy link

It was Nice to be able to register a meyatype converter and the QJSEngine convert for that object to a data type.
Until now i create a class of QIcon and add and invokable method that returns *this.
Like that i can recive on c++ a QIcon as reference
Is there something that Im missing?
If i create a object in c++ with QJSEngine::toScriptVale of a QIcon it works as well but like that i canto create a new object of that type and if i Change the value it chances for all c++ calls, in JavaScript is nota trivial to clone a object it was Nice to be able to clone it and fonte destroy the Last calls.

Qt Submodule Update Bot and others added 30 commits March 10, 2023 04:36
Change-Id: I5a919703ec6a9a55b620f3a02c6f6a28a891e71a
Reviewed-by: Qt Submodule Update Bot <[email protected]>
QML Loader creates multiple object of same component during initial
loading, if sourceComponent is assigned within state configuration
and it evaluates to be true. This happens due to the effect of
evaluating stage change (here in this case, setting loader source
component) during component completion which internally creates
component object and makes loader status be ready, even before
Loader instantiates object.

This patch adds a guard to check loader status and avoids object
creation if status is already ready.

Fixes: QTBUG-111559
Change-Id: I6c3456cd3bc35a717c139fbd3670c305304f480a
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Shawn Rutledge <[email protected]>
(cherry picked from commit 492dc98)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
Hopefully this reduces flakiness in CI, following the suggestion from
the error message:

Unable to use getContext() at this time, please wait for available: true

Task-number: QTBUG-41043
Change-Id: I3710163cb197170e590f8fd7d188fa62f32ea649
Reviewed-by: Mitch Curtis <[email protected]>
(cherry picked from commit 223f1d4)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
Change-Id: I31c18e50e4f5e15fff7cc94d83ad6a94423f56e8
Reviewed-by: Qt Submodule Update Bot <[email protected]>
We need a link target for the GrabTransition enum argument in the
PointerHandler::grabChanged QML signal doc, and a few other places.
Fix warnings about failing to link in a couple of places.

Fixes: QTBUG-102160
Task-number: QTBUG-104761
Change-Id: I92a544d363a6ff9e990c7d56c110bc5db1202bb3
Reviewed-by: Topi Reiniö <[email protected]>
(cherry picked from commit e283c05)
Reviewed-by: Shawn Rutledge <[email protected]>
People are constantly confused by GesturePolicy and its default value,
so we really need a "glanceable" reference in the docs to show the
differences between use cases.

Also clarify the pitfalls with the default DragThreshold value.

We switch from the \value tag to a 2-column \table because the \image
would otherwise break the table, and also because it saves space and
acts as a meaningful reminder to have the animation right under the
enum value that is being documented.

Task-number: QTBUG-70397
Task-number: QTBUG-73262
Task-number: QTBUG-100534
Task-number: QTBUG-107239
Task-number: QTBUG-111310
Change-Id: I1ff45f58a8a8edf55f4a8696d881aa9e0bedcfe3
Reviewed-by: Oliver Eftevaag <[email protected]>
(cherry picked from commit a6e196c)
Reviewed-by: Shawn Rutledge <[email protected]>
Animated gifs were captured with byzanz-record, then converted to webp:
gif2webp -lossy -min_size -q 40 -m 6 -mt -metadata none in.gif -o out.webp

Fixes: QTBUG-96915
Change-Id: Iee2f4ef774de7862d93c7e4cdf7b2b5e0553bec4
Reviewed-by: Oliver Eftevaag <[email protected]>
Reviewed-by: Doris Verria <[email protected]>
(cherry picked from commit 0247942)
Reviewed-by: Shawn Rutledge <[email protected]>
Many of the inherited docs were inappropriate or insufficiently specific
to PointHandler. Now we have more snippets with more ideas for how it
can be used.

As a drive-by, fix a typo in the docs for
PointerDeviceHandler::acceptedPointerTypes and add a link to the new
PointerDevice page added in e283c05

Fixes: QTBUG-74020
Fixes: QTBUG-106878
Change-Id: I028e1577ac5d4ef0b927c94259d6ab25b6028885
Reviewed-by: Doris Verria <[email protected]>
(cherry picked from commit 4c6d0b2)
Reviewed-by: Shawn Rutledge <[email protected]>
Amends outdated stuff from 507efe5 and
c248a32. "eventPoint" should now always
link to docs added in b43a873.

Replace the phrase "event point" with a link to the QML eventPoint
value type.

QPointingDevice is called PointerDevice in QML, so the GrabTransition
enum ought to be found in those docs, in theory, for use in the
PointerHandler::grabChanged doc.

Task-number: QTBUG-102160
Task-number: QTBUG-104761
Change-Id: I5d1a8dedd9d98e6dee3fbca457aa38f42ea7bfb1
Reviewed-by: Andreas Eliasson <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
(cherry picked from commit 60ebb04)
Reviewed-by: Shawn Rutledge <[email protected]>
We cannot assume anything about the accumulator register after calling
PushCallContext::call(). Also add a note about not needing to re-load
the accumulator on ThrowException.

Fixes: QTBUG-111935
Change-Id: I7196585e1d2697c215f4fe87d8d7ac9b98b622a3
Reviewed-by: <[email protected]>
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
(cherry picked from commit 15ec024)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
…droid"

This reverts commit 24fedb7.

Reason for revert: the test gesturePolicyDragWithinBounds doesn't exist in 6.2

Change-Id: I66859ad52f1864643f86dc4ad54d44c95b3d7a0e
Reviewed-by: Ivan Solovev <[email protected]>
Fixes: QTBUG-111577
Change-Id: I7f259c3b710d0be16844d159e3204ee2e51f2a06
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Sze Howe Koh <[email protected]>
(cherry picked from commit f0f274e)
Change-Id: I13e82c0b4883b1758e3679822ee096725c3edd16
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Amends cbbbfe3.

Change-Id: If1247a4f2d347f5c8b4993e24b04736db45df80d
Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
(cherry picked from commit 18b4a5c)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
Fixes: QTBUG-95807
Change-Id: I0676fdb9bd7e8312d736bf0f4eb6775415d86296
Reviewed-by: Christian Strømme <[email protected]>
(cherry picked from commit 3bc05bf)
Reviewed-by: Laszlo Agocs <[email protected]>
We generally need to guess value types since there are value types
without metaobjects of their own, such as QRectF and QSizeF. However, if
they have upper case element names, they are clearly not in that
category. Guessing those as value types will make further tools produce
follow-up mistakes.

Fixes: QTBUG-111986
Change-Id: Ic15ef8c726eb3913c87eb4a300794f321f59fafa
Reviewed-by: Fabian Kosmale <[email protected]>
(cherry picked from commit c2fd73b)
Reviewed-by: Olivier De Cannière <[email protected]>
Change-Id: I805551dbc375fe076563dc13d1f111437cbfca40
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Change-Id: I10b5c28f70d87aafa34490324efb4c2681be5163
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Change-Id: I8dc8ae944d2a6bcd48643cc76aeba1300190db6b
Reviewed-by: Qt Submodule Update Bot <[email protected]>
- This started with QTBUG-112322: introduce the border property next to
  the first snippet where it's used.
- Give declarative-scalegrid.png a white background rather than
  transparent, to be consistent with the screenshots and to look better
  with a dark documentation style.
- Make the snippets resizable so that it's possible to test the effects
  of the horizontalTileMode and verticalTileMode properties.
- Get the borderframe.svg and .png files from the qtdoc repo (which
  ought to have been in this repo already, but perhaps not).
- Resize borderframe.svg to 120x120 and set document size to match
  (in Inkscape); this makes it possible to use the svg directly in
  BorderImage, to test that QTBUG-25244 is really fixed.
- Make the snippets match the screenshots (all 182px wide, with grey
  rectangle borders as shown).
- It seems our scaling is smoother (less jagged) than in the old
  screenshots, so the new ones make a better impression.
- Add region index labels to snippets and screenshots to be a bit less
  confusing next to the paragraphs that are talking about "parts of
  image in regions 2 and 8" and so on. Too bad they have to be so tiny.
- Use \value rather than \li for enum values.

Amends 1a84b19

Task-number: QTBUG-25244
Fixes: QTBUG-112322
Change-Id: I697ae1356eee62990b7903601cc493a04d3647a2
Reviewed-by: Andreas Eliasson <[email protected]>
Reviewed-by: Paul Wicking <[email protected]>
(cherry picked from commit b26439b)
Reviewed-by: Shawn Rutledge <[email protected]>
Change-Id: Ica8354a53d0a5fb5dd1d8cd5f774dcdc56b6f99a
Reviewed-by: Paul Wicking <[email protected]>
(cherry picked from commit 2a61510)
Reviewed-by: Shawn Rutledge <[email protected]>
roleNames are generally guaranteed to be stable (given that QAIM has no
change signal for them), except that resetting the model is allowed to
invalidate them. DelegateModel did so far not take this into account.

Handle this case correctly by snapshotting the current roleNames before
the model is reset. Afterwards, if we detect that roleNames has changed,
we throw the current model set up away and rebuild everything from
scratch – it is unlikely that a more efficient implementation would be
worth it.
If we detect no changes, we simply use the existing logic to handle the
model reset.

Note that some views, e.g. TableView do not use DelegateModel if they
detect that the model is a QAIM. They require a conceptually similar
fix (but can probaly implement this in a more efficient way).

Fixes: QTBUG-32132
Fixes: QTBUG-103220
Change-Id: I6874988cf09b8fe75d2e9750d0bf209915554c45
Reviewed-by: Ulf Hermann <[email protected]>
(cherry picked from commit 837c2f1)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
If one assigns a binding whose evaluation results in a QJSValue, care
must be take to correctly convert it into a bool. Instead of directly
using QVariant::value<bool>, one needs to first extract the QJSValue,
and only convert it to bool afterwards.
This is necessary due to the custom binding evaluation we're doing to
avoid state oscillation.
Amends a8c729d.

Fixes: QTBUG-105000
Change-Id: I4b093b48edecf9e0f09d2b54d10c2ff527f24ac3
Reviewed-by: Ulf Hermann <[email protected]>
(cherry picked from commit 2c31d25)
Reviewed-by: Sami Shalayel <[email protected]>
When calling QQmlBinding::evaluate(), we get a generic QVariant back,
and no conversions from the evaluation result to bool are done at that
point. Consequently, we would need to mirror the engines conversion from
arbitrary values to bool.
Doing that manually is rather fragile, so we instead use the QMetaType
based overload, which already takes care of the conversion. That
requires making the overload public.
As qmlsc is already using that overload from within evaluate, it was not
affected by the  bug.

Fixes: QTBUG-108024
Change-Id: I3d5ee8f886ea6ada44fc8182300f3472cb1efc3c
Reviewed-by: Ulf Hermann <[email protected]>
(cherry picked from commit dfdba3b)
Reviewed-by: Sami Shalayel <[email protected]>
We need to use QQmlAnyBinding::removeBindingFrom instead of the
functionality in QQmlPropertyPrivate, as the latter does not correctly
handle QProperty based bindings.

Fixes: QTBUG-105535
Change-Id: Ifcd8d3a97ff6d62b365008768e6bf50cfa102a39
Reviewed-by: Ulf Hermann <[email protected]>
(cherry picked from commit af5f853)
Reviewed-by: Hatem ElKharashy <[email protected]>
Reviewed-by: Sami Shalayel <[email protected]>
The logic to decide whether a state change triggered a size change.
When AnchorChanges did not remove all old anchors, we might end up with
an anchor configuration that changes the size of an item (e.g.,
anchors.left and right being set), even if the new state only adds a
single anchor, e.g. anchors.left.

Moreover, we need to pass the correct dirty flags to setDirty, otherwise
the UI will not actually reflect the state of the Item.
As a driveby, fix an accidental double negation of qt_is_nan for
height.

Fixes: QTBUG-112354
Fixes: QTBUG-106677
Change-Id: I6c456fbdc314672f4fcbe740d941b44183fd5500
Reviewed-by: Shawn Rutledge <[email protected]>
(cherry picked from commit f2c1085)
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Sami Shalayel <[email protected]>
Change-Id: I264db45dce614012b7fc49375ccde04d3dbd2c10
Reviewed-by: Tarja Sundqvist <[email protected]>
Change-Id: Ic598d79ebb5e98a156bd7275c382ea19cbbc7837
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Change-Id: I5b02dd01bf6fd8fc1d3bbba1de4012006a5096e0
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Change-Id: I489a99563d5321269e5ccff720d28652acd399ed
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Tarja Sundqvist and others added 24 commits January 17, 2024 22:43
Change-Id: Ibfa26f0fe5a7406c86484ed6cd755b3fa0f4797a
Reviewed-by: Tarja Sundqvist <[email protected]>
The generated qmldir files that are used by QML engine specify the
relative path to the QML plugins that are build within modules. So
it's usually expected that plugins are located on the same level as
the qmldir files. In Multi-Config builds all libraries are located in
the build-specific directories by default. In this case QML engine is
unable to locate the plugin and the application cannot be run without
extra manual steps. This fixes this issue, by using the top-level
plugin OUTPUT_DIRECTORY for the "default"(first) config as
RUNTIME/LIBRARY_OUTPUT_DIRECTORY.

In Windows platforms we need to make the same for non-static backing
libraries, since we cannot rely on RPATH there.

Task-number: QTBUG-99061
Change-Id: I51a8864743b87fd6ec4ba7179e13f311c5bee403
Reviewed-by: Joerg Bornemann <[email protected]>
(cherry picked from commit 2dbae96)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 91a25a8)
(cherry picked from commit dc1a163)
(cherry picked from commit 01b5581)
We rely on QQuickDeliveryAgentPrivate::flushFrameSynchronousEvents()
mostly, but it doesn't get invoked without a window update request.
So there is a special case when a touchpoint moves _out_ of an item
that has a HoverHandler but is not reacting to touch in other ways:
we just need to send another artificial hover event for each touchpoint
to each hovered item to inform handlers about the new hover position.

Fixes: QTBUG-120346
Change-Id: I479362a2663943eb495fe0be418009165c7134bd
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Santhosh Kumar <[email protected]>
(cherry picked from commit ff4c2c3)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 7ef31a5)
(cherry picked from commit 4a7ff2b)
(cherry picked from commit 2e3e3ad)
Reviewed-by: Shawn Rutledge <[email protected]>
They can in fact not be combined.

Change-Id: Ic01edf9328d7235511f305ed15114360b79d0a36
Reviewed-by: Fabian Kosmale <[email protected]>
(cherry picked from commit 5a86636)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 8bd24a7)
(cherry picked from commit f48bc12)
(cherry picked from commit 27506c2)
Change-Id: Ib60cb329864eaf99f307b3e838e92aa3a35b20c1
Reviewed-by: Qt Submodule Update Bot <[email protected]>
When analyzing a range with multiple child ranges, qmlprofiler would
create a rather random association between the start and end events.

Change-Id: I564d2c74656dda1cb0963c75cd7b947a7f86d05e
Reviewed-by: Fabian Kosmale <[email protected]>
(cherry picked from commit cc761e9)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 378de2f)
(cherry picked from commit 06fc186)
(cherry picked from commit 2311fc6)
When an IC was rebuilt, we must not set members that were deleted,
otherwise we'll trigger an assertion. Since the nameMap has to match the
data we still allocate memory for such members and fill it with
undefined. This could be avoided with some deeper refactoring, but a
simple solution is to be preferred because this needs to be picked back
all the way to 6.2.

Fixes: QTBUG-111729
Change-Id: I730d6b4634d989191434225600a08cf0208e72f8
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Qt CI Bot <[email protected]>
(cherry picked from commit 642d531)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 308f785)
(cherry picked from commit f17168e)
(cherry picked from commit 912886a)
Reviewed-by: Sami Shalayel <[email protected]>
The same object can be the context object of a hierarchy of contexts. So
far we would only clear one of them, leaving dangling pointers in the
others. Clear all the contexts.

Pick-to: 5.15
Fixes: QTBUG-119326
Change-Id: I509f257672813866e3736b51f430f1243a8577f0
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Fabian Kosmale <[email protected]>
(cherry picked from commit 27ba69a)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 833f4f6)
(cherry picked from commit 477c3c3)
(cherry picked from commit 7318fad)
This used to work and we cannot just take it away.

Amends commit 3ea55bf.

Fixes: QTBUG-121710
Change-Id: I7f856140286bba9d49b7ed1abfdf398a65fb1962
Reviewed-by: Fabian Kosmale <[email protected]>
(cherry picked from commit f3bcbfd)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit ec692b2)
(cherry picked from commit 3a8028b)
(cherry picked from commit 4448108)
The application could call mlockall(MCL_CURRENT|MCL_FUTURE) to lock all
its memory for performance reasons, causing the madvise call to fail.
There's no need to crash. Instead, manually zero-out the memory when
decommitting.

Fixes: QTBUG-120450
Pick-to: 5.15
Change-Id: I6f1a8968853cc5e61561371bd2a435a686eaf0e4
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
(cherry picked from commit 524d260)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 1ead022)
(cherry picked from commit a2e0061)
(cherry picked from commit 5c42f57)
Change-Id: Icec80caf92be7d7fa3855be8ddc83c2f872be502
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Fixes: QTBUG-120105
Change-Id: I5d07068a6ed639b461cd3c9e314869a72d13f5b0
Reviewed-by: Andreas Aardal Hanssen <[email protected]>
(cherry picked from commit 198a90f)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit b156a1f)
(cherry picked from commit 11dcf2d)
(cherry picked from commit 5e4b4b0)
Change-Id: Ie744d28a91649a8a3787014d9770befda9852781
Reviewed-by: Qt Submodule Update Bot <[email protected]>
…2-opensource

Conflicts solved in a file:
	dependencies.yaml

Change-Id: Ib4083daa41a689b937d2aeb522e93e3aab0be1c4
Change-Id: I3d1714f607771b4ca273f13c57b9b658ca98a145
Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Fix typos.
* Show rich text Markdown example.
* Be consistent with relative clauses (that vs which).
* Where it makes sense, use active voice instead of passive voice.

Fixes: QTBUG-119485
Pick-to: 5.15
Change-Id: I7843a3276f277172e25f5891f08e2a830d713c4e
Reviewed-by: Shawn Rutledge <[email protected]>
(cherry picked from commit ec3b799)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit ce366ee)
(cherry picked from commit 1e58c05)
(cherry picked from commit 6afbf84)
Change-Id: I6a26eb264407516d587e931ecbf5952945725084
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Change-Id: I7ac3f770d4d74d03a57102c33378229d58284d7c
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Employ the new functionality in the baseline framework that
facilitates skipping blacklisted items prior to rendering. Useful if
rendering certain scenes cause crashes on some platforms.

Change-Id: I9f545751bff66eac548fdac8212f0ade4df7b6de
Reviewed-by: Paul Olav Tvete <[email protected]>
(cherry picked from commit 4ca19ba)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 22936a7)
(cherry picked from commit 0a110f6)
(cherry picked from commit ff5abc014903a5746698d870bef2b87b1cd93917)
Change-Id: I2f1a8a6a5c943d41d7ab3587fd02a1fb055fbd18
Reviewed-by: Qt Submodule Update Bot <[email protected]>
…tive

Change-Id: Iea77c0713e97dfaf8954134f78a8d07f804ed154
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Qt 6.2.9-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: If2cf4ac99b3e70b6a875b00cc4c3e7766b361a08
…tive

Change-Id: Ib02444aca85e975eb2487eb71d32542dfe83eefe
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Qt 6.2.10-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: Ibdf006fa08cddc80ad30fb9ce1089305729d4ece
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 11 committers have signed the CLA.

❌ Santhosh Kumar
❌ kbroulik
❌ ec1oud
❌ torarnv
❌ ratijas
❌ napaalm
❌ Inkane
❌ semlanik
❌ cstatic
❌ aavit
❌ andreaseliasson


Santhosh Kumar 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.

Qt Submodule Update Bot and others added 5 commits November 22, 2024 07:32
…tive

Change-Id: I230e4fd3e5e3470ea578ccc0f30446194cb11f59
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Qt 6.2.11-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: I088fe99748b323fbdf49c3766c262eb2a05131d9
…tive

Change-Id: Ie2f3c5c15c742068f5b5e977ee1ec441e10dac89
Reviewed-by: Qt Submodule Update Bot <[email protected]>
…tive

Change-Id: I277de0cc225406ec98a480b16f7db47e09cc0498
Reviewed-by: Qt Submodule Update Bot <[email protected]>
Qt 6.2.12-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: Ia7410afbc9d94f061fb13da84b6361428725b530
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.