| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Use QTRY_VERIFY in order to allow for a delay in rendering the
rectangle.
Fixes: QTBUG-74468
Change-Id: I797b269358aaa35487144bb03a85f36646e2302f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This happened if the "real mouse" was never moved, since moving the real
mouse caused it to update the internal
QQuickWindowPrivate::lastMousePosition. If the window never got any
mouse events, it would therefore fail to generate proper hover events.
However, if the window got exposed under a mouse cursor it would generate
a hover enter event. We therefore update lastMousePosition when that
happens also.
Change-Id: I77d9b1bd779a813756c4056b015f2e81664b6d36
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In this scenario, a DragHandler is inside an Item in a Loader, under
a MouseArea, which unloads the loader on press. So on press, the
DragHandler acquires a passive grab, then the MouseArea acquires the
exclusive grab, then the DragHandler is destroyed along with its parent
when the Loader is unloaded. On release,
QQuickEventPoint::setGrabberItem(nullptr) was sending an
onGrabChanged(passiveGrabber, OverrideGrabPassive, this) notification.
That was questionable: the handler was not just then getting its grab
overridden, but rather un-overridden, because the exclusive grab
was being released. It's also a good idea to check for null pointers,
since m_passiveGrabbers is a collection of QPointers already,
so we can tell when a passive grabber is deleted dynamically.
It can also be reproduced with MultiPointTouchArea just as with
MouseArea, so the test is written that way for convenience, because
we have tst_multipointtoucharea_interop already. It doesn't really
matter which handler has the passive grab, or which item has the
exclusive grab that's being relinquished.
Fixes: QTBUG-73819
Change-Id: Ic605efa2143a1d849be095dcb88d6c38d7d2ee19
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
| |
Those are flaky. They need to be fixed.
Task-number: QTBUG-74050
Change-Id: I08f17aa490afc1809823fbda3bfdbbd9ee109087
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
touchAndDragHandlerOnFlickable and touchDragFlickableBehindSlider are
unstable.
Task-number: QTBUG-73983
Change-Id: I220869a0a6e7beb69d7273b0edc66ac067ebcd38
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Tag the new 'row' and 'column' properties with revision 12.
This will make sure that they cannot be accessed by the delegate
unless the QQmlAdaptorModel has the correct minorVersion set.
Fixes: QTBUG-70031
Change-Id: I49e67c37ab5b7925c7bca313bbb99f04d1387cc4
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
If we keep plain pointers to objects we don't own, we need to zero them
when something else deletes them.
Fixes: QTBUG-73733
Change-Id: Ib4f3e144f10f70ab6cf44af4ffa62725470d3972
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When switching between the two it should respect whatever the color is
regardless of whether it is a color value or a string based color. This
also accounts for "invalid" colors as this should set the stroke-style
to be #000000 to be inline with the default stroke-style indicated in
the specification.
Change-Id: I00bee6c9a85787762271882838510b4187798ee0
Fixes: QTBUG-42155
Fixes: QTBUG-52959
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
This could for instance happen if the window gets exposed under the
cursor, and it sends a mouse move event that might interleave the press
and release events, causing the eventCount variable to jump to 3.
Change-Id: Icce59b2aa1a937a990baa83f503907633003e2bb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to our "Coin - Flaky Tests" dashboard on our grafana, initView()
in tst_qquickmousearea seems to have very few flakiness issues in actually
exposing a QQuickView.
It is therefore a good idea to share this implementation so that it can
be used by other tests too.
Change-Id: Ie83cbf7d00fa02bdd4699757471fa180945851e3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
macOS 10.9 is no longer supported.
Fixes: QTBUG-45466
Change-Id: I44ce5e6c7d941cf21d937fb0cfe54ee418d28c4e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-26696
Change-Id: I32cebc9e0b63b55113f24fd40c06e7017b763aaf
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...based on statistics visible in Grafana.
Task-number: QTBUG-41895
Task-number: QTBUG-38209
Task-number: QTBUG-65978
Task-number: QTBUG-36804
Task-number: QTBUG-45466
Task-number: QTBUG-29062
Change-Id: If62d2413ede234d33b411e0ecb4f93ec6e0f8062
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
The usual problem is that Flickable doesn't instantly jump to the
expected position but moves there after a delay.
Change-Id: Iafc9dd493b97629377e7f7c60ae7adde13427bae
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
Apparently the OpenGL context is not guaranteed to be available right
after showing the window. Wait for it to appear.
Change-Id: Ie3acdb857d4e3a8c6c148c57916a49a58c93a835
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This happened if you moved the mouse while doing a multitouch operation.
More specifically this caused the bug:
1. Open qtdeclarative/tests/manual/pointer/map.qml
2. Rotate the map with two fingers (Do not release fingers).
3. Move mouse (no buttons pressed).
4. Release both fingers.
5. Move mouse again (error: the draghandler has a grab and thus the map is
dragged even if no buttons are down).
This happened because if you moved the mouse while having two fingers
down, Windows would generate a *mouse*move* event with Left button or Right
button pressed (which wasn't the case on the physical device but it's
probably because of a bug in how mouse events are synthesized from touch
on Windows). This caused the QQuickMultiPointHandler to do a passive grab.
Then, when releasing the fingers it would not send a mouse release event
(just plain touch release events), so the QQuickMultiPointHandler would
keep the passive grab it had.
All subsequent mouse move events would then be dispatched to the
QQuickMultiPointHandler where it would assume that the button was pressed
until it got a release event (but button was never pressed so that
wouldn't happen). Eventually it would perform an exclusive grab, and
dragging was initiated.
Change-Id: I42b3133c5fde93c7f92f1cb28705156a69f9ad1c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far it was checking parentContains() on press, release, or when
the gesturePolicy is WithinBounds, but not for each movement when the
policy is DragThreshold (the default). This might explain most of the
remaining warning noise: "pointId is missing from current event, but was
neither canceled nor released" because it was possible for TapHandler
to remember wanting a point that it should not have wanted, but without
taking any kind of grab, and then complaining when that point was no
longer present. Since it did not grab, it did not get the release,
unless the release was part of an event containing a point that it
DID grab.
Fixes: QTBUG-71887
Change-Id: I26ce62279574cf6b0150f24e486f224a604ac6b1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-72822
Change-Id: I2773ba14fcb24a47fe2ec04860b4aa305a051453
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
You cannot keep the context when reparenting the canvas item. Use a
QPointer prevent dangling.
Task-number: QTBUG-73113
Change-Id: Ie7021c6f0bb0d09923eb358dc7e51d6727e74a7a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickItemPrivate::data_append() was not invoked when any kind of
Pointer Handler was directly declared in a Flickable (or subclass)
because QQuickFlickable redefines the default property to be its own
flickableData property. So we need to repeat the special handling
in QQuickFlickablePrivate::data_append() too. The handler must
be added to the private->extra->pointerHandlers vector, so that
QQuickItemPrivate::handlePointerEvent() will attempt to deliver
events to those handlers.
TapHandler seems OK (especially with its default gesturePolicy
so that it does not do an exclusive grab).
PointHandler seems OK.
DragHandler competes with Flickable for the exclusive grab.
pressDelay can help; or set acceptedDevices: PointerDevice.Mouse
to allow the mouse to drag but not flick, and the touchscreen
to flick but not drag.
Fixes: QTBUG-71918
Fixes: QTBUG-73035
Change-Id: Icb97ed5230abe0cb6ec0230b5b5759a0528df7e8
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|\
| |
| |
| | |
Change-Id: I1e0bbc35807bd0f7f96694539d2fbec0f83ddb16
|
| |\
| | |
| | |
| | | |
Change-Id: Ic746fbce93430867e2eda4bc7155d34e20a4aa2b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We already emitted grabCanceled() to inform QML callbacks, but we didn't
call reset(). It seems more proper to do everything that would normally
be done when grab is canceled. TapHandler should not give up its passive
grab yet though, because that prevents delivery to any parent Flickable
that might be filtering events. A parent Flickable should be able to
start flicking after the drag threshold is exceeded (it happens to be
exactly when TapHandler gives up).
Fixes: QTBUG-71466
Fixes: QTBUG-71970
Change-Id: Ibba1b0de92cfd88547eeb44edb095d019de76a94
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If multiple touchpoints are pressed simultaneously, each point can
be grabbed by one PointHandler instance. Each PointHandler instance
cannot grab more than one point, nor grab a point that is already
chosen by another PointHandler. This was always the intention, but
got broken (perhaps by 3523b676382db4aa39adeb9126d8bb2185e84403),
and there was no test coverage of this case until now.
Fixes: QTBUG-71431
Change-Id: I6d7614eb4767c677d929291f917cf62d9c03bd93
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add QQUICK_VERIFY_POLISH.
Fixes: QTBUG-73007
Change-Id: I08d90058770ef496469b917892104c751b5cf9c1
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Follows same approach as 47f6d256ed in tst_qquickapplication::state().
Change-Id: Ibecdab3f874fc9e75b38ba2ccaf3776bd46c77e8
Fixes: QTBUG-72953
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| | |
Pure QML types do not have a meta object hierarchy associated with them.
The test is only supposed to test C++ types, though. We can ignore the
types without meta objects.
Change-Id: I2a40bc0023f6d335c4dbdbc04818da60f47d8787
Fixes: QTBUG-72637
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When (naively) running the tests with High-DPI scaling active, the
test would assert on mismatching image sizes caused by the scaling.
Add an error message parameter to
QQuickVisualTestUtil::compareImages() for use with QVERIFY2, return
false instead of asserting on format/size mismatches and adapt the
usages. Remove duplicate code in tst_qquickwindow.
Change-Id: I76564f4125798fa1e065a0202b686bc7f5ec5680
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
See if this is stable yet. Recent coin statistics seems to say it's
been passing.
Task-number: QTBUG-40856
Change-Id: I49372cc514971acf26ac9b9b9a86ea2eb46a9773
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added <s></s> and <del></del> tag aka strike out to QQuickStyledText.
QQuickStyledText covers the essential text decorations, apart from
strike out. In order to use it, one had to switch to RichText,
which comes with its own overhead and limitations.
<s> for no longer accurate or no longer relevant content
<del> for removed content
Fixes: QTBUG-72376
Change-Id: I3c191d91d57afcc48090facc49d643f8ad708fb4
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
During a 2-finger press (to emulate right click on a trackpad), the
OS may also generate a QWheelEvent with ScrollBegin phase just in case
scrolling starts. This must not prematurely deactivate the TapHandler.
Also if a gesture or wheel event begins as the very first event after
an application starts, ensure that subsequent mouse events are not
mis-delivered as wheel or gesture events.
Fixes: QTBUG-71955
Change-Id: Ic12e116483ab9ad37c4ac3b1d10ccb62e1349e0a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
QQuickItemPrivate::data_append() was already getting called, but the
assert (that the parent was already an Item) was failing in case a
handler was declared inside a Window or a Dialog.
Fixes: QTBUG-71317
Change-Id: Ia497182e3b4a9722eee97a375f9ee5d4151108e6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If any kind of Pointer Handler is created dynamically in JS by
calling Component.createObject(), QObject::setParent() is called
rather than passing the parent to the constructor, so
QQuickItemPrivate::data_append() did not take care of adding the
handler to QQuickItemPrivate's extra->pointerHandlers vector.
We need to use the auto-parent mechanism (just as we did with
handling dynamic creation of nested Windows in
8cb02e23abbefc9d020707fc1a2d8b6eb4e103b6). Added
QQuickItemPrivate::addPointerHandler() to put the prepend()
and implied setAcceptedMouseButtons() in one place.
Fixes: QTBUG-71427
Change-Id: I3be3dd033c1c89e6e5b5c3463e1a720bbe963281
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
If we change the content height or content width to the initial one, we
still need to signal the change.
Fixes: QTBUG-71684
Change-Id: Idf6e3f89423eab3d8f5310c164c5acc5108e0d8b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|\
| |
| |
| | |
Change-Id: I7623438dde316ae1e97802f91991f2e7ccc205a5
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Latest changes moved to xmlpatterns:
e08f9393acc6417598f328d7f4b7b082c5d57afa
Change-Id: I7e3054a3f0f11833053746294e3b2b958047394d
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/imports/settings/qqmlsettings.cpp
src/quick/items/qquickwindow.cpp
tools/qmlplugindump/main.cpp
Change-Id: I3e5dae4de25b2da961a572b3a4bd151181d211c9
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes: QTBUG-60518
Change-Id: If41b3c7b3ca4ca9a48692cbb2753b47492693e83
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The signal for completed for the attached Component property was
no emitted correctly by emitComponentCompleteSignalForAttachedProperty().
I added a test for the correct behaivour.
Change-Id: I0ebfc10e512ba5c5e2352a5f5d6be3030b43cbbc
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| |
| |
| | |
Conflicts:
src/imports/settings/qqmlsettings.cpp
src/quick/items/qquickwindow.cpp
tools/qmlplugindump/main.cpp
Change-Id: I96fedbc773a110374baed79a0b7de92d65df0ed6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before, it would assume that StaticText was the role if the item
could be cast to a QQuickText. It should only do this if the role
is not explicitly set, in case it is not really StaticText in the
attached property.
Change-Id: I800810f1347fc9aa412c4ca5d180f78d27a89b38
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If during delivery of a mouse press, user code calls qApp->sendEvent()
with another mouse press, then when delivery of the nested event is
finished, we call QQuickPointerMouseEvent::reset(nullptr). Then when
delivery of the original mouse press resumes, crashes are possible
because most of the code assumes that QQuickPointerEvent::m_event is
not null during delivery.
Change-Id: Id65b1f2f64351e40d03bcd4f4d16693d616729da
Fixes: QTBUG-70898
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Id5524d7553ef37fbbc84157a4a4c7251e477f215
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I24beb0bb98f7e67abc4d5c3295376d863bb44892
Task-number: QTBUG-71239
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Use velocity to prefer snapping in the active direction.
* Calculate snap based on where the item is, rather than where
the section is.
Change-Id: I2531501dbe0a58f26f20bc3e719e435185e047a5
Task-number: QTBUG-67051
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Ensure we rebuild the table when the model emits 'layoutChanged'.
Fixes: QTBUG-71140
Change-Id: I70dac897830bf5a12ae6987920e388743fd358a1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is no reason for QQmlAdaptorModel to return the
wrong column count to the view. For models that are not
QAIM, the accessor that wraps the model will report the
column count to be 1 anyway. The same is also true
for QAbstractListModel.
Change-Id: Ia259b044201d76743e5f43d9f0999d3848912075
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The example is actually not very easy to build, and arguably too
complex for a 'getting started' example. qtdoc commit 1df7011858
therefore replaced it by the alarms example in the documentation.
Task-number: QTBUG-66064
Change-Id: I2f2776c649410575aef71948f64b358d60233022
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/masm/yarr/YarrJIT.h
src/quick/items/qquickwindow.cpp
Change-Id: I551404e1558d56c0b0626346ad1c86406bff0ec7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This test is for Flickable with pressDelay set to a testable timeout
value. For some reason it only checked trying to flick before the
press delay is over, or holding and waiting for the press delay to expire.
But if the user taps a child MouseArea before the press delay expires
(neither moving nor waiting), at the moment of release it's supposed to
send the delayed press and then the release, so that the MouseArea
gets "clicked" almost as if there was no delay. Lack of test coverage
allowed a regression in this functionality for 2 minor versions:
5.10 and 5.11.
Task-number: QTBUG-61144
Task-number: QTBUG-69059
Change-Id: I0d8867587e6877359c41ec5fc3a5cdd17447d0b8
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|