| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Pick-to: 5.15 5.12
Change-Id: I85e60dd5c8643a8e443a14250987b2b38c78dc08
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
Use the now preferred GraphicsApi enum value (e.g. Vulkan instead of
VulkanRhi). Drop a reference to the long gone QSG_RHI env.var.
Change-Id: I233611b40186884a70e9680b3dfef7284b3e3c73
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...while extending the autotest to cover more complicated cases, such as
grabbing again after show-hide and doing show-grab-hide-grab-show-grab.
In fact some of these cases have not been working in Qt 5. Now the basic
render loop is fixed up to support the all the combinations threaded
does.
Task-number: QTBUG-87399
Change-Id: Id01995bc3a2660b16cfb2f8bedc84becea0be1bb
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
| |
From API review.
Change-Id: I3cda6f4b4e5a2e33356e7af4f7720e0b019b546d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The opaque pass will rely on it (by default at least). Not having
a depth buffer will almost certainly lead to rendering errors,
albeit silently since technically it's not an error not to have one.
Just make sure there is one.
The assumption is that the Z order problem mentioned in the comments
in the referenced bug is caused by this.
Task-number: QTBUG-87399
Change-Id: Ifbf5564848f17e7ce3498190d663c1ec693e86c9
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: I1b305bf1b74e7e7a078d7bd4b1358d773f5d2580
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
| |
It doesn't look like qdoc can document the Quick specific
namespace docs.
Change-Id: Ic3eca2d0834c0a461f696762070e9f099e3e2641
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I24c792fea1c5317466a155dcb3b050fac0f765b6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I1c6e9a6f949fa44265f05ce3d461d151d7e3763f
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's possible for itemChange to be called during destruction when
deleting the QQuickShaderEffectImpl. We nullify m_impl before deleting
it via another pointer to it, so we must check that it's not null
before trying to use it.
Pick-to: 5.15
Fixes: QTBUG-86402
Change-Id: If4955445f7cc0d1f376bc9b86b95e1cca4d88ede
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
From API review.
Change-Id: Ib1b3280b83222bb1b370640c4f733554f60d8104
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
| |
From API review.
Change-Id: Icc4f571603fe8d59851f768fec408070989623c3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
AnimatorProxyJob would not forward loopCount to the controlled job causing
the sequential or parallel animation to go infinitely after attempt to stop
Task-number: QTBUG-82890
Pick-to: 5.15
Change-Id: I6a1ca787f06789064e05407bbe9ae5e5861f24d5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I1f2171e18ec3df71f7eaec1be0e0e0d1442a3860
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
It can also be an UngrabMouse event, a plain QEvent, sent from
QQuickWindowPrivate::onGrabChanged(). So we have to test
isPointerEvent() before casting, rather than asserting beforehand.
Amends 9ce346411eb5bd71ae84647999030ae47c3c544a to fix a crash.
Change-Id: I1d169b4e8c8a58f3736a3d95dfc43fa21e123403
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We use an if-test to check if the document width has changed before
we set the new value. The problem is that the value we test
against is different than the value we set. The result is that
we can sometimes skip setting a new width on the document, even
if padding has changed.
This patch ensures that we use the same width for both testing
and setting.
Pick-to: 5.15
Change-Id: Ia8391999e8cc2b5be72fe525d396bf8c17ba0fa2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
...now that we're done with the cherry-pick to 5.15.
Amends 6857ad3e686a5e2b45d28a7f47dca3210608da50.
Task-number: QTBUG-74046
Task-number: QTBUG-85302
Change-Id: I3c2ec091976bcfc170ff58d8fcd226dcdf4c90d2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QEventPoint is explicitly shared, so a QMouseEvent synthesized from
a QTouchEvent shared the same QEventPoint instance.
When QQuickFlickable::filterMouseEvent() calls cloneMouseEvent(),
it was re-localizing the point for the flickable, after it had
already been localized for delivery to the original receiver item.
This caused a lot of failures in Controls, e.g. for any button inside
a Flickable, QQuickAbstractButtonPrivate::handlePress() would be given
the wrong position.
After filtering, we need to be able to resume delivery to the
original receiver item without re-localizing the point.
During filtering, the filtering parent should receive the same version
of the touch event that contains only the points that would be sent
to the receiver item, not the potentially more-complete original event.
Fixes: QTBUG-87157
Change-Id: I7eec6f5ecfe9f042199f0944897c04fbffb2172e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Earlier we reimplemented the contains() method of ListView to prevent
dragging in an Overlay or Pullback header or footer. But in QQuickWindow
(QQuickWindowPrivate::pointerTargets()), an early check prevents
delivery of pointer events to an item that is clipped and for which
contains() returns false, and also to its children. In that case, the
header or footer no longer responds to a mouse event even if you put a
MouseArea in it.
Reverts 6ad3445f1e159d9beea936b66d267dcaacdc5d6c; reimplemented using
similar logic in a new QQuickListViewPrivate::wantsPointerEvent()
method, overriding QQuickFlickablePrivate::wantsPointerEvent(), which
is now checked in event-handling code in addition to checking the
interactive flag.
Done-with: Wang Chuan <ouchuanm@outlook.com>
Pick-to: 5.15
Task-number: QTBUG-74046
Fixes: QTBUG-85302
Change-Id: I9474f035d26b74ee36c0ac19e45a77de2e694bf1
Reviewed-by: Wang Chuan <ouchuanm@outlook.com>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
| |
Modify special case locations to use the new API as well.
Task-number: QTBUG-86815
Change-Id: I3b964e3baf0cc7040830156dac30358ea1152801
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Followup to 389d4b1971630a67e3d6fa45b11ec13af59d26e0:
after qtbase/871d19a5b96fa5a5be4ac50e3121e0704ff08374 isBeginEvent()
will return false for a MouseButtonDblClick event, so that we will never
see these events in QQuickWindowPrivate::deliverPressOrReleaseEvent().
Change-Id: I1a04be6b4d6728a9db4aafc4c94b3be12934139b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: I728cecd85807eb835703a0bb8bb4acdb1f2068ae
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
Replace evil reinterpret_cast by evil nested static_cast. This fixes
the warning `warning: dereferencing type-punned pointer will break
strict-aliasing rules'
Change-Id: I5ad608377444aa42b79a38db656acd94508716a0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With some platforms there is no valid window size yet when the render
thread hits syncAndRender (of course, it does not actually render then).
In this case we emitted an afterFrameEnd without a corresponding
beforeFrameBegin. Just make sure both signal emissions are under the same
condition.
This is tested by the frameSignals case in tst_qquickwindow but since
that's not exercised with the threaded render loop by the CI atm, the
fail was not noticed.
Change-Id: I300ffcc117daa4c6163ce15dd60ceffba659bd69
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's no need to heap-allocate a short-term mouse event; and
localizing one is easy enough via QMutableEventPoint::setPosition.
The sendMouseEvent() function (and its name) didn't make as much sense
as handling the filtering completely in the childMouseEventFilter()
function. Checking and changing the grabber is also now possible via
accessors in the event itself, so now we have one fewer use of
QQuickItem::grabMouse() and QQuickWindow::mouseGrabberItem().
Change-Id: I84f9f26e349a8d1aabacdbdbb264949d1103e91d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As you can extend value types with QML_EXTENDED we may as well allow a
factory function in the extended type. Furthermore, if the original type
allows construction from QJSValue, we may just use that. In turn, we can
get rid of the value type providers now.
Change-Id: I9124ea47537eab6c33d7451080ab2fff942eaa7b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some subtests of tst_FlickableInterop::touchAndDragHandlerOnFlickable()
check whether Flickable can continue to filter child mouse events, even
when the only thing going on is that we are delivering a TouchUpdate
QTouchEvent to a TapHandler inside the Flickable's content item (such as
inside a ListView delegate) due to its having a passive grab. So during
filtering only, localizedTouchEvent() needs to localize the event for
any item that has passive grabbers somewhere in its children.
Change-Id: Icff0438ddba97bd916feedc9dcd6a71ae47671e5
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
| |
This ports all of QtDeclarative.
Change-Id: Ie6eb4d96b4d49fbed1e8be514d03e331549cd712
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Call onGrabChanged on Pointer Handlers during grab transitions:
this was missing in a97759a336c597327cb82eebc9f45c793aec32c9.
Flickable needs to receive an ungrab by child-event-filtering,
in order to set its pressed state back to false (as in the
cancelOnHide autotest). This is best done as a result of the
QPointingDevice::grabChanged signal, while trying to send the ungrab
to the item that was the grabber, rather than as a special case.
Thus, QQuickWindowPrivate::onGrabChanged (the handler for the
QPointingDevice::grabChanged signal) is now the only place from which
we call QQuickItem::mouseUngrabEvent() and touchUngrabEvent().
But the result is that they are called in more cases than before,
so some tests need adjustment. touchUngrabEvent() is not sent
unless the event is available and we can verify that all points
have been released. This is important for MultiPointTouchArea:
it will react by ending interaction with all points at once.
Another thing that's important to MPTA and multi-touch handlers is that
QQuickWindowPrivate::deliverPointerEvent() must not clear grabbers of
points that are not yet released, in the case that only some points are.
QQuickWindowPrivate::removeGrabber() now calls
QPointingDevicePrivate::removeGrabber() with its optional cancel
argument, so that it will emit either a cancel or an ungrab transition.
That's only relevant for Pointer Handlers, whereas QQuickItem
mouseUngrabEvent and touchUngrabEvent don't make a distinction.
Task-number: QTBUG-86729
Change-Id: Idf03aef2e2182398e0fc4a606c0ddbb2aaed5681
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: I7010c3fc1e922672eece4e2fee15e747ff21589c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Omitting stationary points from touch events is such a marginal
optimization that this code probably isn't worth maintaining.
It wasn't implemented correctly this time either, according to the
tst_QQuickMultiPointTouchArea::stationaryTouchWithChangingPressure()
test.
Task-number: QTBUG-77142
Change-Id: I1ccc8ffe0451d6417add2b03c063ac1aebe36e8e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QTBUG-82157
Pick-to: 5.15
Change-Id: I9d694dd543f41b1ce2b6976983d03a3dc659245d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was only used for QColor. The string representation of QColor was
funneled through the color provider to get a numerical RGBA value and
that one was passed to storeValueType() which would create a QColor
object. The RGBA value was retrieved by creating a QColor object. We
can just directly create the QColor from the string, and we can use the
generic create() method for that.
Change-Id: If36775830882237e5e36f748872ce23530c3bb71
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
This can be expressed as constructing the variant from a QJSValue.
Change-Id: I3140958469423acdc498e26129e349bcfb601198
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
It can be expressed as a special case of create() with a QJSValue.
Change-Id: I7342026ad694077d2780dd8a852714fa72dd68d0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
This can be expressed in terms of create().
Change-Id: Id1950390bf4a1c9dfd9364ea351b81c75eb7e28f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
This is so that we can replace them with factory functions as a next
step.
Change-Id: Ic8619e4e779bd3e47471642c556601555758697b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now have an extension object on a value type that offers
additional properties. This is how we model the QtQuick value types. It
allows us to retrieve the extension's metaobject without using the
virtual functions in the value type provider.
As before, this mechanism is still rather dangerous and not fit for
public consumption. It relies on the extension object having exactly the
same layout as the original value type, and it hides any properties the
original value type might expose.
Furthermore we enforce now that gadgets should have lowercase names.
The ones that didn't before are split up into an anonymous value type
and a namespace that contains all the addressable bits.
Task-number: QTBUG-82443
Change-Id: Ic93d6764538d6ccc0774b3c5648eee08ba0939c0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
What exactly this will cause is another question. But at least now the
traditional OpenGL way of setting the QSurfaceFormat's swapInterval 0
will have an effect with the other APIs as well.
Change-Id: I6d50952502a70e84828ed87347e2a948299f6f42
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
Some of the modules are not part of
the 6.0 release.
Change-Id: I1a7ce0fb34b579b2eb08c8e977e67930f561ef44
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
| |
We are only interested in the enum of the same name. StandardKey is not
creatable nor does it have any properties. It is also written in
uppercase. Logically it therefore is a namespace.
Change-Id: I98217625161f8d6f04bc328620cb2d93aa601fae
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Value types should be lowercase and this one is not a QObject. It's also
undocumented. Therefore we should be able to rename it without much
drama.
Change-Id: I7ae75aca5e592c9bee2a33ec3c36ed2ffa1edecd
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
| |
Change-Id: I17f5074a2ecbcf7b078def79cedf179d1d25f089
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QEventPoint does not have an accessor to get the QPointerEvent that it
came from, because that's inconsistent with the idea that QPointerEvent
instances are temporary, stack-allocated and movable (the pointer would
often be wrong or null, therefore could not be relied upon).
So most functions that worked directly with QQuickEventPoint before
(which fortunately are still private API) now need to receive the
QPointerEvent too, which we choose to pass by pointer. QEventPoint is
always passed by reference (const where possible) to be consistent with
functions in QPointerEvent that take QEventPoint by reference.
QEventPoint::velocity() should be always in scene coordinates now, which
saves us the trouble of transforming it to each item's coordinate system
during delivery, but means that it will need to be done in handlers or
applications sometimes. If we were going to transform it, it would be
important to also store the sceneVelocity separately in QEventPoint
so that the transformation could be done repeatedly for different items.
Task-number: QTBUG-72173
Change-Id: I7ee164d2e6893c4e407fb7d579c75aa32843933a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
| |
1204ed14dc11e6343a569646428a7ffddd098f8c did this in some places but
not others. Now we remove the remaining vestiges when delivering
mouse and tablet events.
Change-Id: I0aaecab49543ad65952d84f375e78936d737483e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
adapt to changes done in qtbase 2692237bb1b0c0f50b7cc5d920eb8ab065063d47
QTouchEvent.touchPoint -> points,...
Change-Id: I3ba1d54ff4f3375c781d765e806ac95392ad6c3c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
As documented in Qt 6 porting guide, qHash() should now also
accept a size_t as seed in addition to returning it.
Change-Id: I2b3ea26f631203468c071fa6ff65f95d82566132
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-84051
Change-Id: Iffc8774898dba5bda329fa572289cc0134fddb6f
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Replace more QLibaryInfo::location with QLibraryInfo::path
Replace old event accessors APIs, including relevant comments.
Change-Id: Ie205fc93b6e1c0dfb3dca9100fbde417ab68fc9f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
We can create, compare, convert registered types without going through
special virtual value type providers.
Change-Id: I0431256540b8dd6861ff3a945570ea7df45ed98d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|