| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Marking mmap'ed memory as unneeded, leads to it being zeroed out on
both Linux and Windows. Unfortunately that behavior is not defined by
POSIX, so BSD based OSes (and possible others as well) do not do this.
We do however rely on getting zeroed out memory whenever we allocate a
new Chunk for the garbage collector. To work around this, zero out memory
we deallocate on those platforms.
Task-number: QTBUG-59278
Task-number: QTBUG-59977
Change-Id: Idde812db8537b63b9e9df7de41620ce0df09b6de
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I5f9c00541c27377e8310d32bf045c2860eeffcb4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This only deals with Qt code. MASM has a lot of those left. We should
just update from upstream instead to get the fixes.
qv4regalloc.cpp:660:52: warning: this statement may fall through [-Wimplicit-fallthrough=]
if (leftSource->type == DoubleType || rightSource->type == DoubleType) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
qv4regalloc.cpp:666:13: note: here
case OpBitAnd:
^~~~
Change-Id: I7814054a102a407d876ffffd14b6b0e2d6b03689
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is undocumented and internal, as well as being virtual. It is
usually (but not always) at a 0,0 position too, so I suspect that for
the few items like text that aren't, this may have been incorrect.
Change-Id: I948eceb5df052fdd137b37e211c244036b74299f
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The costly addition is down to that we're performing TransformJob::postSync()
which we did not do before. This is superfluous though, as we do the same
bit of code in preSync() and there is no way the pointers we're checking
for can change between pre and post. Only missing bit is to move the invalidate().
Change-Id: I96420c14e11a5a33997ed6fac6a78695a917a8f2
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-60133
Change-Id: I5497dc3c4a1c3922e7147d7a20593c75a0d9d0e9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\| |
| | | |
| | | |
| | | | |
Change-Id: Ibed6ee74d36b4ce37391c82db00a0abd30d09e7a
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If an external QObject is exposed to an engine through a QObjectWrapper,
make sure to deref and clear the propertyCache reference in the object's
declarative data when the QObjectWrapper is destroyed. This makes sure
that there is no dangling propertyCache pointer when the object is
subsequently exposed to another engine.
Task-number: QTBUG-57633
Change-Id: I37f6793d8be65b23b4e81bb4ed91db18271261b0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This rarely happens - only seen with Delegates - when
- an object is created during incubation
- some error occurs in this object
- the object gets deleted before the incubation run finishes
Because the errors are delivered after the incubation run finished, the
object() pointer of QQmlError is now a dangling pointer that will crash
your application if accessed.
Change-Id: Idd9fccbc58e4ada67bde3ca1aeec736aa9374789
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Amends change 5ef3265cd46de6579399562429e26961d6f13885.
Change-Id: I6c75273e45e235084e5aea53e83669bab85798ee
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: If1a8b91c11ca3d84e80691e247c0281a966a2939
Task-number: QTBUG-60206
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Idc2ab95d0ea1e556995e7bcd29b5cbcd82bc28f6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ia3a590a564ab9bde9b19c4e7955420a7d1eacb2b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I2f6f38af1fb9ecc8a763f9c2d0a45200fd6374af
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The previous attempt to fix this (05a88ef) had to be reverted (7fe0d1a)
because Q_ASSERT(m_controller) in updateCurrentTime() failed in QQC1
auto tests. It seems that m_controller can be null when m_internalState
is still State_Starting.
Task-number: QTBUG-59034
Task-number: QTBUG-59953
Change-Id: I07ceec8fe4e66ba0571092b4385d8140035a4b33
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Aleix Pol
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QString::replace(QChar, QChar) was fixed in c12f42e91b146109cc9ee5d050928672776ca1ee
So no need to use pre-condition.
Change-Id: I98eadfc89350194832b229afe061dc0bd01f1bc9
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
URL is the type of the property, not its name.
Change-Id: Id76bdb70031a3cacdfd0951ff132e57a512ae208
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ibac6a3f8ddf4b441dd8359162094eb786fda84d7
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Helps give an idea about what kind of garbage is being tossed away.
v8-bench shows no real change in performance outside "usual" variance, I
didn't benchmark QV4_MM_STATS=1 but I assume there will be some penalty
there.
Change-Id: Ida0c5917289891279d95fd47480bd4869b42b0e6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Answer is "no, it cannot".
Change-Id: I2b0a25f81b69578e9aa0b21e258d2dba5831e5ff
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... not just in the documentation.
Change-Id: I524841e253b16364b404053290db246729d72e48
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
No major impact on benchmarks -- if anything, this improves the new
delegates_item_childrenRect by 2-3 frames.
Change-Id: I50fef6f0bc9531eabd1d42079886dca754e1ce2a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These properties all have proper documentation now
Change-Id: Ie65221de468cac18b916506432097843e7921fed
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I156d27b21159f019a969a33e553e63fac9a3d193
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Until now, DragHandler::pos() was not staying constant during a drag,
because we update m_pos from the EventPoint, then move the Item.
scenePos() also returns mapToScene(m_pos). If the Item is being dragged
to follow the finger or the mouse cursor exactly, unconstrained, then
pos() should always be the same as the parent-relative position where
the press occurred.
Change-Id: Ia02738c0cf458e039cf90371f9c8a7becb75a035
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It makes as much sense for DragHandler as it does for TapHandler.
If you want to allow right-button dragging, you need to enable it in QML.
In general, UIs have always relied on the left button for normal
interaction, while the other buttons are for special cases.
Change-Id: I708d5d080832c32ef581ca333c9be06e987ef007
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When a TapHandler's Item is inside a Flickable, the user has pressed
the mouse button over the TapHandler, and then the Flickable takes
the mouse grab during dragging from there, if the TapHandler has
only a passive grab, it is cancelled. In this case the TapHandler
should no longer be pressed, because it's being dragged instead.
Change-Id: I129f44cc9b8d8e99b00e23cd5943dd57d4ae5d16
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The most obvious way to implement a Slider is to allow dragging the
knob - as on a real-world physical sliding potentiometer. But to make
it easier on a touchscreen, it should be possible to touch anywhere
along the slider's travel, as on a QtQuick.Controls 2 Slider. For
that purpose, we need to respond to events within the bounds of one
Item while actually dragging a different Item (the knob). It's
similar to the way that PinchHandler can handle pinch gestures within
one Item while transforming another (which may be too small to get
both fingers inside).
Change-Id: Iac9a5f11a7a45e22d93fe52bf62d157c48d72d3d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It was part of the intended design for pointer handlers; omitting this
feature has until now prevented some opportunities for handoff
from one handler to another.
Now if PinchHandler has grabbed, pressing one more point will let
something else have a chance again, for example.
But this is incomplete in that if we release a point, we should do
the same thing, actually.
Change-Id: I10f567e7e4388bf0caab54c261178f19db20b14a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The scene-relative position at which an EventPoint was pressed does
not change during a drag. The target item is moving, so we cannot
convert a point relative to the target item back to a scene position
and expect it to stay constant.
Change-Id: I07389993c6b15316b686824c37dbad83b4b10861
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
An Item (such as MPTA with onGestureStarted: gesture.grab()) may set
these flags, traditionally to prevent Flickable from stealing the grab.
QQuickMultiPointerHandler (and thus PinchHandler) now respects these
flags too.
Change-Id: Iac3ab796c5aa410be45639d679ecf82b7c44a442
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A PinchHandler for example has strict requirements, so when they are
finally met, it needs to be willing to take over the grab from
something else. This occurs when a point is pressed or released
(in which case a grabbing PointerHandler might probably give up its grab
anyway, if its requirements are not met anymore). MPTA can typically
handle a variable number of points though, so it will not give
up its grabs, and PinchHandler must be able to steal from it.
The first step in stealing is for the handler to say that it wants
the points despite any existing grabs.
Change-Id: Ic3a2586d43e4cfe1877f90ce2e2862a9abc4b81b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
and remove the similar "delivering to" log from QQuickItem.
It's more useful to know whether delivery will continue rather than simply
that we made an attempt.
Change-Id: I58c37fb50d4d0c99ef6aa68662ab304194b6d128
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Sort the entries to ease lookup
Change-Id: I306ca508e8b382b9a60fe737f28f5fa2c9471dc1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Sometimes you want to require holding down a key in order to enable
some interaction. As with the other "accepted" flags, it's better to
do this with a property than with Javascript.
Change-Id: Ie29880f5f9f496ddca1bee462e2c0e6dd30fa9f5
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
After 3523b676382db4aa39adeb9126d8bb2185e84403 it became impossible
to write a subclass which handles one point and ignores the rest.
In some cases this is necessary.
Change-Id: I27511e6112a93ef98a4cf45c8531287781698b5b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the grab is stolen by a parent such as a Flickable, ensure that
the DragHandler doesn't keep dragging. This helps to prevent dragging
sliders out of their "groove" constraints.
Change-Id: Id24f53e137ed186b1c02ab9c73a69a59022e80b0
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This also caused a failure in the new TapHandler test:
wantsPointerEvent() can see stationary touchpoints, and they may end up
being "candidates" (although not if wantsEventPoint() returns false for
all stationary points), but don't get confused by that: we chose a
particular point, always the first for which wantsEventPoint() returns
true, not any subsequent points for which wantsEventPoint() returns true.
It's important to accept only that point, because in other places
where we don't have access to the return value from wantsEventPoint(),
we treat the accepted state as the _memory_ of what wantsEventPoint()
returned. So it must be consistently the same.
Change-Id: Ia121bde50d956b45b2cf62eddf326293a5c02274
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In autotests, stationary points normally have invalid position.
A TapHandler does not need to react to them anyway.
But we must also avoid having a grab cancelation due to a stationary
point, and that applies to all PointerHandlers in general.
Change-Id: I99493ad7d859e0c4ef155afc699aa34f28ffdbc7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows TapHandler to veto the "wanting" during an update, if
the policy is violated. For example, if the policy is WithinBounds,
and the point leaves the bounds, it will say that it does not want
the point; but without this change, it is not asked again when the
point is moved outside the bounds.
Change-Id: Id764b3d24966ce9c3c4795e9f2a0aa37821caa42
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the policy is ReleaseWithinBounds, we assumed wrongly that
wantsEventPoint() would not be asked about a point which
QQuickPointerSingleHandler::wantsEventPoint() would already rule out,
or about a point which was not grabbed either passively or exclusively.
But in fact it is asked about every point. A tap is not going to
occur unless the press occurs within bounds; if that happened, then
QQuickPointerSingleHandler::m_pointId will have been set. So a
TapHandler with this policy should remain interested in an updated
or stationary point only if it is the same one which it was already
interested in when it was pressed.
This gets the multipoint button example and autotest working.
Change-Id: I399c06071fd804cd6994d5f0153c307cec9d2f90
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes the multibuttons manual test: the first button would see
that a second point was pressed, and that it didn't want it, because
it's outside the bounds. This is not a good reason to discontinue
responding to the first touchpoint, which is the one it was first
interested in.
Change-Id: I7004a667873f235d3dda84b4261113d37d911763
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It's not just the grabbers we have to worry about. If touchpoints in
one event are in a different order than in the previous one, we need
to also preserve anything that was remembered from when that touchpoint
was pressed: that is pressTimestamp, scenePressPos, and maybe sceneGrabPos.
So now we use a vector of structs for that purpose, which is more
extensible and easier to read.
Change-Id: Ibf2c0079693ed10988f0066184d53ee9106f2eca
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If we have a TouchCancel event we send it to the Item via sendEvent,
so it can be detected in the Item's event() or touchEvent() override.
If not, it still needs to be informed that it lost the grab, so
call touchUngrabEvent() instead. MultiPointTouchArea for example
will stop showing that all its points are pressed, if the grab is
stolen by something else. Followup to
59c753bc75c7cfd4068fbbba3c25e1f54c46f4c0
Change-Id: I211c02d51cdde8f8722600cf914485adcc2aa1f3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I34cc9146155bded8311c1173e4b8d34d8b17b034
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
PinchHandler has its own. Maybe every pointerhandler should.
Change-Id: Ic87494c8e333dcd502d4e259789b68337c3de349
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I04122218499733856136f5a49b72707a0e8885e5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Revisions to 9b5fc80af28580e9672792dd511d876a93947882 and
781f76176239bfbfe6041f2676e2f2804337d312 are necessary to allow
Flickable to steal synth-mouse events from children which accept only
touch events.
Change-Id: Id779368d7a44c1561da99a9f2c37e8d32278773e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It has been suboptimal to speculatively deliver touch events to Items
which are not interested; even worse is when we must deliver to a
parent item which is filtering events, when the child Item will not
accept the touch event anyway.
So now it is required that any QQuickItem subclass which wishes to
accept touch events must call setAcceptTouchEvents(true) (typically
in its constructor). If it does not do this, it will not get any
touch events (and this saves us the trouble of looking for parents
which filter touch events, too). It is consistent with needing to
call setAcceptHoverEvents() to get hover events, and
setAcceptedMouseButtons() to get mouse events.
[ChangeLog][QtQuick][QQuickItem] When subclassing QQuickItem, it is
now required to call setAcceptTouchEvents(true) if you need the item
to receive touch events.
Change-Id: Idc76c04f4e7f1d4a613087e756e96dac368f4f23
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\| | |
| | | |
| | | |
| | | | |
Change-Id: Ie2894830470a69827d4ace3d8af9bee971e3fbd4
|