| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickItem returns whether it contains QGuiApplicationPrivate's
lastCursorPosition. Since that position stores the coordinate last seen
by Qt (the window border), it will always be within the window, and
within an item that covers that part of the window's border.
However, QQuickWindow stores the lastMousePosition as well, and resets
that value when it receives a QEvent::Leave. We can use that to test
whether the window that contains the item has seen a Leave event, in
which case the item is definitely not under the mouse.
Notes on the test: That we use QPointF() as the "reset" value leave the
small possibility that the cursor might be at position 0,0 of the window
(ie inside the window), and the QQuickItem there will not be under the
mouse. We can't confirm this (through an expected failure test), as
QTest::mouseMove interprets a QPoint(0, 0) as "center of the window".
And since we can't simulate mouse moves outside a window's boundary
using QTest::mouseMove, the test needs to explicitly synthesize a
QEvent::Leave for the window.
Fixes: QTBUG-87197
Pick-to: 6.1 6.0 5.15
Change-Id: I04870d6e914092275d9d790312fc702fb99f2935
Done-with: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
| |
Change-Id: I058e7df9263be165ff0370ddc8c947aca1eba9b5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You should declare functions with formal parameters if you want to use
parameters passed by the signal. We need to generate two different
warnings because there are two code paths by which such parameters are
injected. If we compile with qmlcachegen, it simply inserts a lookup
instruction in to the byte code. This lookup then triggers our special
hack expressly made for signal parameters. If we don't compile using
qmlcachegen, a function declaration with formal parameters is
synthesized. We mark those formal parameters as injected and warn if
we see one of them used.
[ChangeLog][QML][Important Behavior Changes] The automatic injection of
signal parameters into signal handlers is deprecated. This is because we
cannot determine the names of the signal parameters at compile time.
Furthermore, also for human readers it is difficult to discern between
arguments, context properties, properties of the current object, and
properties of the root object of the component. Requiring the signal
parameters to be explicitly named resolves some of this confusion. You
can turn the deprecation warning off using the "qt.qml.compiler" and
"qt.qml.context" logging categories.
Task-number: QTBUG-89943
Pick-to: 6.1
Change-Id: If0a5082adb735a73efd793868b3a55bc7d694cbe
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Add execution function that can evaluate runtime functions available
in the compilation unit. Private API for now as it's unclear what would
be a comprehensive solution to support all existing use cases
Task-number: QTBUG-84368
Task-number: QTBUG-91039
Change-Id: Icf755b53484587d7983eaae4821c1aa0111d5c05
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I4154a0b5c7115375292794e0564d2f3657e6b4dd
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Move the value type registry into QQmlMetaTypeData. This way we can
conveniently drop the relevant entries when unregistering a type.
Fixes: QTBUG-86946
Change-Id: Id024a34a8b2b622fd9417fc0e52864b43c66cc01
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Injected signal handlers are bad practice because they aren't declared.
Pick-to: 6.1
Task-number: QTBUG-89943
Change-Id: I3a691f68342a199bd63034637aa7ed438e3a037b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-90439
Change-Id: I0e29e2ee090d5aa4ae40bcca4bd5fa14f87d9c0c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
Fix errors with \fn and hidden friend functions
Task-number: QTBUG-90439
Change-Id: I1de021c953efdd397de4bb25cbe3180175265174
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.1
Change-Id: Ibcb20311c7e5a56038c738da77d9dfcc9464bce4
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This collides with injected signal parameters. qmlcachegen cannot tell
those cases apart.
[ChangeLog][QML][Important Behavior Changes] QML warns about JavaScript
variables being used before their declaration now. This is almost always
a mistake. It is particularly dangerous in the presence of injected
signal parameters because qmlcachegen cannot identify a name collision
between an injected signal parameter and a variable being used before
its declaration. It therefore miscompiles such code. You can turn off
the deprecation warning using the "qt.qml.compiler" logging category.
Pick-to: 6.1
Task-number: QTBUG-89943
Change-Id: I8a9424ca8c6edd562402fe5c560ba7e8344b5585
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.0
Change-Id: I3b60586604003e360070a0d481e1a3df2e087e5c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
m_pixelRatio is not set in the constructor
It seems the method setDevicePixelRatio is always called, so there are
no ill effects, but without setting it we still read uninitialized data
creating warnings when used with a memory checker.
Change-Id: Iadfe07600d027dddb98fdd755b4022b2b81547a8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We cannot store a QStringView internally, as that would increase the
size of our objects (QHashedString(Ref) does not support strings with
sizes that do not fit into 32bit, thus it can store the hash and the
size in one 64 bit block). What we can however do is to construct a
QStringView on demand (which is cheap), and use its methods.
The benefits are twofold: We get rid of some accidental complexity in
qtdeclarative; and the code in QStringView is actually SIMD optimized.
Change-Id: I2445a2d5a16b253f4971d7f3be0e1b274326eacb
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Just like all of the other datastructures in qv4compileddata, changing
the size of String would require an inrcement of
QV4_DATA_STRUCTURE_VERSION.
Change-Id: I462d04204255946d309d245bc20b044ba9d222d7
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I13304631a9870874fb130cd9e6598065fc952a71
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
The parameter is gone since 3bc239a0f16fb93f84def55a5980ef8561e7a7b4
Change-Id: Iae411b61f27efd60b489dbc219ef0ad07ad19938
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Instead of spelling out QExplicitlySharedDataPointer<QQmlBinding>. That
is consistent with all other code, and makes grepping for binding
pointers easiers, as they now all end with Binding::Ptr.
Change-Id: I19018732a699368200f129cecf869ece1c8b1a7f
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.1 6.0 5.15
Fixes: QTBUG-86482
Change-Id: If938fad22f51b08fe3cb20b94634efe46a1eed47
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The 2 is meaningless.
Task-number: QTBUG-85064
Change-Id: I9f140155d274c691b5eab1285d9b7153f9f93a87
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
The "2" is meaningless and there is a better name available now.
Task-number: QTBUG-85064
Change-Id: I65d26b06712ed7dcf2825f16dffaa6060dd86985
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
| |
You're not supposed to call the registration functions manually.
Pick-to: 6.1
Fixes: QTBUG-90718
Change-Id: I829800132484dea670657ed1679357fe58d0ddf9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
As part of adding qHypot() in qtbase, we now have a robust efficient
implementation of arbitrarily-many-parameter hypot(), so reuse it.
Change-Id: Iafd0eee84f3271c37003431a5f2b1a62d7ef6f86
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Use noquote() for qqmlengine warnings.
Fixes: QTBUG-86595
Change-Id: Ibe161cb164b9fa2511e4bc02237de5d81172e114
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.0 6.1
Fixes: QTBUG-90038
Change-Id: Ic01b5d097e0b9e6720bcec7ccb18c22abb5418f4
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
There is no need to extract the metatype id to know whether the type is
valid (aka != UnknownType). Moreover, as we already have a metatype,
there is no need to do the typeid -> metatype lookup.
Task-number: QTBUG-88766
Change-Id: I5f9512aa6e06b0d89be8d3cad970f12319dab156
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-89956
Change-Id: I96439433b1f172e933c6c56daae639be7e18b931
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QRhiBuffer does not shrink; thus we can end up with
buffer->buf->size > buffer->size. This would subsequently lead to an
out-of-bounds memory access, and a crash. Fix this by using the
uploadStaticBuffer overload which takes the size.
As a drive-by, remove pointless QByteArray::fromRawData call.
Pick-to: 6.0 6.1
Change-Id: I40058ada6a6a5eb745ae559e8c9ed474fd41f75c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Don't mark geometry and material as dirty if there is nothing to change.
Pick-to: 6.1 6.0 5.15
Task-number: QTBUG-41867
Change-Id: I016d2d76f4ebf731f5bfc931ba616ee5d074bc65
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently removing an item connected to a particle
only invalidate the particle that will be reused for
the next item set. This has the effect that the new
item inserted appears in the same position as the
old one just removed. This patch force killing the
particle to assign next item to a new particle
starting from initial position.
Pick-to: 5.15 6.0 6.1
Change-Id: Ic937a6d7aea65368cceb1405bb81ef1502d988a5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Fix warning from configure step.
Change-Id: I5afeeeeabf1cb22149e1df3cecb27c6cf4a0567f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Previously this just failed silently and returned garbage data.
Change-Id: Ia8b72836aa0ccfd50fd18b0f813c2bf3a00801c5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This way it's fundamentally impossible to add the same animation job to
two different group jobs. The pointers are not exposed anymore and no
one can re-order the jobs.
Task-number: QTBUG-90401
Change-Id: Iebff4b64960c853915dd32714acd144fc5cdc00d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
setCurrentAnimation() can indirectly delete the animation group job
itself by invoking the animation controller. Use the RETURN_IF_DELETED
mechanism to avoid the resulting dangling pointers.
Task-number: QTBUG-90401
Pick-to: 6.1 6.0 5.15 5.12
Change-Id: Ibd0ad21e8d3af4760604c3ff37dc46101d5f49ad
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
Link to Exporting from Design Tools
Task-number: QTBUG-90439
Change-Id: I4c0b6bc899a48bb2aa2c4ad083e8b2ee9f9a41ce
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.1 6.0
Change-Id: I362b35b3d038d4fb24fab0e73cb120027f2308ea
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
There is no the QQuickWindow::setBackend() function, only
QQuickWindow::setSceneGraphBackend() and QSGContext::setBackend()
are available, assume it is the public one.
Change-Id: If5c4650d96919715abce92aec30f474518139ce6
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Normally the cursor will change position inside a text input after
receiving a touch or a keypress event. But it can also change
position by sending it a QInputMethodEvent. But as it stood, we
would in that case not inform the platform input context about
it, which meant that the IM state in QQuickTextInput would be
different from the IM state in QPA.
A bug on iOS could be seen from this when dragging the cursor
around using the magnifier glass. In that case QIOSTextResponder
would move the cursor in QQuickTextInput using QInputMethodEvents.
But since this would not be forwarded back to UITextInput, the
result would be that if you e.g pushed backspace on the input panel,
you would delete the character at the position the cursor
had before the drag.
This patch will ensure that we update platform IM state whenever
the cursor changes position from QInputMethodEvents.
Pick-to: 6.0 5.15
Fixes: QTBUG-72757
Change-Id: Ic39c60fbce982f80d014befddbb2d4439ddeea4f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no reason to hide the inputMethod explicitly when finishing
the editing. This will be taken care of for us by the platform plugin
and will account for a situation where Qt Quick Controls 2 will check
if the item had focus when it is in an popup being closed at this point
too.
Pick-to: 6.1
Change-Id: I687718ae9b4fabbf6456597a475507d2ec1a1f45
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
Register old versions declaratively so the plugin can be truly optional.
Change-Id: I0f5774d90788208dfce7928a45a904fc6595faa1
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
Mark plugin as optional and move out initialization code as to allow use with
the QML compiler.
Change-Id: I4c93168ebd42b6625fbf4c045beac4dcf41aafa6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Clang warning on macOS: warning: loop variable 'classInfo' is always
a copy because the range of type 'const QJsonArray' does not return
a reference [-Wrange-loop-analysis]
Change-Id: I7657d85fe44b5e106ead6d26d4481256e7ccfc71
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I1c63d617c1f7ac57d9efb5f66a34e51bf625ccb3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
Keeping it around is dangerous and we only need it in the ctor.
Task-number: QTBUG-90401
Change-Id: I128be1a5cef394bbf4be1a7b0e6a4595f9b25968
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
We cannot return the same job multiple times from transition(). The
calling code takes ownership of the job, and even retaining a pointer to
it in the animation would be a problem. There are no animations that
return the same job multiple times, though.
Task-number: QTBUG-90401
Change-Id: I3a113c624a20dceee745cd6a4fca6f3634bdbdd1
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch ensures that the QML Binding element can also save and restore
C++ bindings. Should QQuickItem's x and y property be ported to the new
property system, we'd need new test cases to verify that "old-style"
bindings are still handled correctly. This task is however left for the
change porting the properties.
Task-number: QTBUG-90493
Change-Id: I506ffa1060ff32a7d722214e5ccd469bdaa61ff8
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a QML component wants to mark properties of its "parent" component as
required, it can do so via
required propertyName
The information about those properties is stored in a
RequiredPropertyExtraData data structure. This structure is already
serialized to disk in the QQmlIRWriter. However, we neglected to restore
it so far in the loader.
Fixes: QTBUG-90538
Pick-to: 5.15 6.0
Change-Id: I789daff9bc881e4f35c942c77f5116b5284de81b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Default properties are always local. There is no way to declare a
default property for a foreign type as the default property is queried
directly from the classinfo at runtime.
Change-Id: I30efb6fba190957ac2a4ad86da437f209cd1f3ad
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
It is not conforming to the include conventions (module missing)
and thus breaks the Qt for Python doc build.
Introduced by 48b4c1f450109b148f03f62574d78b460859c4a1.
Pick-to: 6.0
Change-Id: I1ff56a967c457f1909b7f6e2e430458e3a3f47c9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
No one should mess with those. All the pointers have complicated
ownership semantics. We can just befriend the test instead of making it
all public.
Task-number: QTBUG-90401
Change-Id: I6c4adbab7046b40db7f4628780ef928445ea3eb2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|