| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
It also makes debugging easier to be able to see this value.
Change-Id: I4d68e7561cbc533a6cd3296a3b193732eb7f8d3e
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Major performance improvements can be gained if you know for sure
your text does not require any shaping features. This patch adds
Qt Quick support for the QFont::PreferNoShaping flag (though as a
boolean property to work better with property bindings).
[ChangeLog][QtQuick][Text] Added "font.preferShaping" property to
Text, TextEdit and TextInput. This makes it possible to improve
performance at the expense of some cosmetic font features.
Task-number: QTBUG-56728
Change-Id: Ib4e23d5b21b9d4929562df521347285b2586a62e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
All symbols must be prefixed with Q to avoid clashes with user code when
linking statically.
Task-number: QTBUG-62772
Change-Id: Ib4d44ad2db3053fc8dba3235ee2774774a38bf6c
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We cannot cull pairs from filteringParentItems ahead of time on the
basis of not visiting the same parent twice, because we don't know
which child will get the press event. Skipping parents which have
already seen the event once MUST be done during event delivery, as it
was done before 9b5fc80af28580e9672792dd511d876a93947882
But another behavior difference is that the same parent can filter
twice, if it's filtering the same event on behalf of a different item.
For example:
ListView
delegate: Rectangle
MouseArea
Text
If you click on the text, the MouseArea can filter for the Text,
then ListView filters for the Text. Nobody accepts. So we try to
deliver to the MouseArea; and then ListView filters again, this time
for the MouseArea.
So we need to go back to interleaving regular delivery and
parent-filtering to get back to the behavior we had in 5.9. It's not
the same if we try to do all the parent-filtering first, and then all
the regular delivery afterwards.
Revises and reverts parts of 1b0c9b46ce13b0f9c533f18fb420ff10ad56e4f6
Done-with: Jan Arve Sæther
Task-number: QTBUG-62412
Task-number: QTBUG-62549
Task-number: QTBUG-62628
Task-number: QTBUG-62631
Change-Id: Id0bf64cb54668cc0eecfba01746a00ed7ea0359f
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
| |
It's useful to see target items and parents which need to filter events for them,
together.
Change-Id: I2d072a91ccb382077caf71b7413a9a10b34cb121
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
f3446071da8357620d0c8593a04e3b4fbba88f21 introduced a build-time
way to select the default render type of text-like elements.
This patch adds also a way to select it at runtime, via a setter
on QQuickWindow. (QQuickWindow has been chosen as convenience,
rather than adding another namespace/class to just have this
setter.)
Given that QT_QUICK_DEFAULT_TEXT_RENDER_TYPE was never documented,
I've taken the liberty of changing the accepted values for it
(to match the new enumerator names in QQuickWindow, rather than
the ones in QQuickText/QQuickTextEdit/etc.).
[ChangeLog][QtQuick][QQuickWindow] It is now possible to set the
default render type of text-like elements globally via the
QQuickWindow::setTextRenderType() function. If you were using
the (undocumented) QT_QUICK_DEFAULT_TEXT_RENDER_TYPE macro
when building Qt Quick for the same purpose, note that the
macro value needs now to be set to the "NativeTextRendering"
value, instead of "NativeRendering".
Change-Id: Id4b2dc3ec823971486e445ca4173b8be848fb4e3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
Change-Id: I31375151eb239f348bec988d2d0506c2b4d9604c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reverts 39061af50cc3092289cdd71d17802139590ecb59 and calls endSync()
instead after syncSceneGraph().
Task-number: QTBUG-61754
Change-Id: I7b51ffdc93557bacd93927dd642ec3715980b21c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Roger Zanoni <rogerzanoni@gmail.com>
|
| |
| |
| |
| |
| | |
Change-Id: Icd0e0d4b27cb4e5eb892fffd14b5285d43f4afbf
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\ \ |
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/qml/qqmlcustomparser.cpp
src/qml/qml/qqmlimport.cpp
src/qml/qml/qqmlimport_p.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypenamecache.cpp
src/qml/qml/qqmltypenamecache_p.h
src/qml/qml/qqmltypewrapper.cpp
src/qml/qml/qqmltypewrapper_p.h
src/qml/qml/qqmlvmemetaobject.cpp
src/qml/util/qqmladaptormodel.cpp
Change-Id: Ic959d03e6f9c328fb02710d9abbb0f27cddde131
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Check d->_movie pointer before dereferencing
Task-number: QTBUG-62380
Change-Id: I62314c7c0d4a7e41fa6f8c4629d16f30d6036156
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry-picked from fc3ecd2522deb3f6d8d48b66dbd89402e1ab4b53)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When editing text with a validator set then it can happen that it would
no longer be in the acceptable state. This ensures that it does not
prevent editing the text when an input mask is used to go back to an
Intermediate state.
Change-Id: I6da533d18035e9da468939c28a961bc8f2f3090b
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When fixupPosition is called for a ListView with StrictlyEnforceRange,
the original reason for the move is lost, and the fixup is applied
immediately. There are already checks for whether the view is moving,
so expand these checks to include movement caused by highlight.
Change-Id: I25f771b9a529d31dc28acb9f91fcd2b582428200
Task-number: QTBUG-33568
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ib7cb0781799191636a13aba9d357313a860876e9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is where it belongs, and it makes the PropertyCache independent
of the engine used.
Task-number: QTBUG-61536
Change-Id: I21c2674ee3e2895abd2418764d140b154b47b868
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQmlType is now refcounted, and we need to use it by
value, to control it's lifetime properly. This is
required, so we can clean up the QQmlMetaTypeData
cache on engine destruction and with trimComponentCache()
Task-number: QTBUG-61536
Change-Id: If86391c86ea20a646ded7c9925d8f743f628fb91
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
182648 Dereference before null check
There may be a null pointer dereference, or else the comparison against
null is unnecessary.
In QQuickEventPoint::estimatedVelocity(): All paths that lead to this
null pointer comparison already dereference the pointer earlier
(CWE-476)
Coverity-Id: 182648
Change-Id: Ie8ca1a58b9c11f7c459d719ccd0a3f3fa9eaeea5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
qquickpinchhandler.cpp:138: warning: Missing property type for QQuickPinchHandler::minimumX
qquickpinchhandler.cpp:151: warning: Missing property type for QQuickPinchHandler::maximumX
qquickpinchhandler.cpp:164: warning: Missing property type for QQuickPinchHandler::minimumY
qquickpinchhandler.cpp:177: warning: Missing property type for QQuickPinchHandler::maximumY
qquickpinchhandler.cpp:194: warning: Missing property type for QQuickPinchHandler::minimumTouchPoints
qquickpinchhandler.cpp:198: warning: Missing property type for QQuickPinchHandler::active
qquickpointerdevicehandler.cpp:107: warning: Missing property type for QQuickPointerDeviceHandler::acceptedModifiers
qquickpointerhandler.cpp:47: warning: C++ class QQuickPointerHandler not found: \instantiates QQuickPointerHandler
qquickpointerhandler.cpp:176: warning: Missing property type for QQuickPointerHandler::enabled
qquickpointerhandler.cpp:255: warning: Missing property type for QQuickPointerHandler::parent
qquicktaphandler.cpp:175: warning: Missing property type for longPressThreshold
qquicktaphandler.cpp:235: warning: Missing property type for gesturePolicy
qquicktaphandler.cpp:252: warning: Missing property type for pressed
qquicktaphandler.cpp:329: warning: Missing '\endqml'
qquicktaphandler.cpp:340: warning: Missing property type for tapCount
qquicktaphandler.cpp:353: warning: Missing property type for timeHeld
Change-Id: I8a5bd0ec7c5603573f39f5b5f1f24d5735ba98dd
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Check d->_movie pointer before dereferencing
Task-number: QTBUG-62380
Change-Id: I62314c7c0d4a7e41fa6f8c4629d16f30d6036156
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When you hardcoded the font family of an application font before
the font was actually loaded, the QTextLayout would cache the
glyph indexes from the fallback font, and these would later be
applied to the proper font in the render thread, causing corrupted
text and warnings.
It is easy enough to work around this by binding the font.family
property to the name property of the FontLoader, but to handle the
error case more gracefully, we now check during the polish phase
whether the actual font assignment has changed, and redo the
QTextLayout when we have to.
[ChangeLog][QtQuick][Text] Fixed an issue when the family of
an application font was hardcoded and applied to text before
the font itself was loaded.
Task-number: QTBUG-61984
Change-Id: Ib0e80a78f3b6fe4a3b0188c69516a20d0bf4cb45
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\ \
| | |
| | |
| | | |
Change-Id: Ifae425744d69779a661c7465d33163a7d53fb8a4
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Only abort event delivery early if event that got filtered was accepted
(previously we aborted as soon as the event got filtered, even if the
event was filtered, but explicitly *not* accepted)
- If the event that got filtered was *not* accepted, we do not abort event
delivery, but we need to remove the item from the list of target items that
we will deliver to later
- If childMouseEventFilter returns true it should not automatically mean that
the event was accepted.
Change-Id: I2f2415379061131af1d5102e03d01f010e1a8168
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: I0af7b0c3e0a21aae68c82ec11c5ca579c1661ce9
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Once pointerhandlers are merged it should be fixed in
qtlocation, and then this should be removed.
Change-Id: I8b6364fff762417ac45ea76bfe1c06836c7fdf15
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
examples/quick/shared/LauncherList.qml
src/quick/items/qquickevents.cpp
src/quick/items/qquickevents_p_p.h
src/quick/items/qquickwindow.cpp
tests/auto/quick/touchmouse/tst_touchmouse.cpp
Change-Id: Id692d291455093fc72db61f1b854f3fc9190267b
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It seems that moving the registration to the block where the rest of the
type registration was done avoids the crash.
According to the documentation, a Q_GADGET doesn't have to be explicitly
registered into the meta type system, but I never managed to get that
working (and our existing Q_GADGETS seems to require explicit registration
too)
Change-Id: Iab1c258dbe40bd1c8062fab2c4b68fce208f5144
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
to test interoperability of PointerHandlers with conventional touch-
handling Items (with MultiPointTouchArea being the prototypical instance)
Change-Id: Id19f312b17b70df072d66cd91816d2b19250a500
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The sequence of events delivered from a double click is:
[Press,Release,Press,DblClick,Release]
The problem was that a DblClick was delivered just like a press event, so
it would clear the passive grabber that was established because of the
former Press event.
When the Release event then got processed, there was therefore a risk that
the Release event was not delivered to the passive grabber.
The fix is to not deliver DblClick events at all to handlers, and to not
deliver DblClick to items if the former Press event was accepted by a
handler.
Change-Id: I49c0e32ef4e33f7b6014d35dc065da2527b94779
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I80000110a2e0ca69210322a0fcc587d86158358e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
And allow potential combination of passive and exclusive grabbers
Change-Id: I0bd2d6863305c3db7c91b064c0a58cd5e167470e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The new rule is that when the number of touchpoints changes, we start
over with event delivery as if the touch had just begun, to give more
opportunities to hand off processing from one item or handler to
another. And MultiPointTouchArea can now handle the handoff:
for example in tests/manual/pointer/pinchDragFlingMPTA.qml when the
user is pressing three fingers, the PinchHandler is active; when the
user then lifts one finger, the MPTA can resume handling the two
remaining touchpoints as if they were just pressed.
The change in QQuickMultiPointerHandler::wantsPointerEvent is both
a behavior change and an optimization: released points aren't eligible;
but if some points are released, then pressed, updated and stationary
points are all eligible. And, figure this out without looping over the
points twice.
Change-Id: I26b7593de8e72b471adfec4a4482dd87a8288442
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If a button with a TapHandler with the DragThreshold policy is inside
a Flickable, and you press on the button and start dragging, when you
exceed the drag threshold, TapHandler will not "want" the EventPoint
anymore. That triggers it to call setPressed(false). Flickable does
not have a grab because it was relying on filtering the children's
events; and QQuickWindow does not deliver touch updates to non-grabber
items. So when TapHandler gives up its passive grab, Flickable does
not get a chance to filter TapHandler's touch update events anymore.
Thus, we cannot do that. When the touchpoint is actually released
though, passive grabs are ungrabbed anyway.
This is required to get the new
tst_FlickableInterop::touchDragFlickableBehindButton()
autotest working.
Change-Id: I55a175ae358f75b9d7ab64f0b8124d91b6a9e1d6
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is required to keep the tst_flickableinterop touchDragSlider test
passing after the change to TapHandler to never give up passive grab.
And QQuickEventPoint::setGrabberPointerHandler(nullptr, true)
will just go ahead and allow TapHandler to cancel the grab which
the DragHandler currently has at that time, when you have pressed
the TapHandler but started dragging so that the drag threshold is
exceeded. (Perhaps this points to an API problem.) For now, we at
least can enforce the rule in QQuickPointerHandler::setExclusiveGrab
that if grab is false, it won't nullify the grab of a different handler.
Change-Id: I7c93188cfdce51b3b5a17c13e5efc7fcbd123d4b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
QQuickPointerEvent is a wrapper for a QInputEvent. Between event
deliveries, the object exists but it doesn't have a current event to
which to refer. qDebug() should still work OK anyway in that case.
Change-Id: I5aa9584c5d7988bb748befa90785efe8bd24678a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It can help to distinguish the time period when we are still delivering
the same event.
Change-Id: Id738d3e210431f1803cad9ace000c0f702e930fc
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is a partial revert of 1457df74f4c1d770e1e820de8cd082be1bd2489e
to avoid making a mandatory API change so soon.
Change-Id: I05040579fa36d3dc5ef7616861f6d17adf500d2c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If receiver is nullptr, all filteringParentItems are candidates for
filtering.
Change-Id: I9c388a9a2e83c1f5815c99c059f0e507e0bc1040
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Change-Id: Ia06843de255547174efa556b1ab76be4b4be4287
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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>
|