| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Also explictily mention again that objects with JS ownership won't be
deleted as long as they have a parent.
Change-Id: I1eeb5bc8183b6621f24f3751b8152b36acf2eeae
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 906ccb4694bbb3577efc8b8839ed687ebb3e3dce)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
We should pass the variants themselves, not their constData().
Fixes: QTBUG-94502
Change-Id: I92688348d7b46d74935dc11080b26290f5e8be86
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit dbe34dfa0d42510b804c898b77d6fe145473c31b)
|
|
|
|
|
|
|
|
|
|
|
| |
...and rephrase one of the general description paragraphs to be
more accurate.
Fixes: QTBUG-93489
Change-Id: If238fff84480720a618c8a337fe416cd08ee9b79
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 6dfed1ee9c8e03780b222a71f6b90fe2016d8994)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures that we list all of Item's properties in the "List of all
Members" page.
Change-Id: Ide7e270fd187e6adc4a20b70b8ef84d2c25a836c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 565290ef3b63fd6ac7b3eac06e64c6a09a2561ad)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As explained in the comment, the handler can override the keepMouseGrab
"veto" if the item is a parent (like a Flickable) that filters events,
but not in other cases. The logic was wrong though, apparently.
Amends 090f404cf80da35734f712b02cc1543acecd5b62
Fixes: QTBUG-78258
Task-number: QTBUG-79163
Change-Id: I9a473ab3b23743f863cb0be13767fdbc29cd5e1c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
(cherry picked from commit b09ce7dcd8ecf24ef23da8197a64e3fced3fc894)
|
|
|
|
|
|
|
| |
Change-Id: I1fb2a6b744ee1bbef2ceceba119bc8d4bc882144
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit a678309dfd132e1b34662c72b8d8d8515e2826d0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Includes the doc fixes from 5848c081c094a66e024493fc1e5c2569e06f73b6
(that had not been marked for backporting to 6.1)
Change-Id: I4a8db963e52a7899ab1796f9a560e8029cc1c929
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 96b528efcba1226d2980828d1255160bdceae4cf)
|
|
|
|
|
|
|
|
|
|
|
| |
Calling memcpy with a nullptr is UB, even if we copy 0 bytes. Add a
null check to avoid the issue.
Fixes: QTBUG-94067
Change-Id: I1d47424754e22f13d7b494ae984b4407b96b1805
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
(cherry picked from commit 0b10b83dad91b44559b9f4ddcf9d8bed5544de93)
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
qquickparticlesystem.cpp(217): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
Change-Id: If17ecb2003995d54fce4e0ed58c8e2b183928dc3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit ff8392d4ba28ebd6cb2eef584773a75aa8382392)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
qsgdefaultcontext.cpp(308): warning C4065: switch statement contains 'default' but no 'case' labels
Change-Id: Ic050d21549cb3eeabade803a23e3e9eb202e3a74
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit 0bdbfb9589ce912afbecc6fd3408f8320d78de10)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickPointerHandler::handlePointerEvent() calls setActive(false)
when wantsPointerEvent() returns false (except for a NativeGesture
event), for the sake of deactivating reliably when it receives an
event which it does not handle. Now we need one more exception, because
it's not what we want in DragHandler while dragging: If we get a
wheel event, that should not interrupt the current drag operation.
Thus, we change the logic in wantsPointerEvent to consider even events
we wouldn't normally handle while the DragHandler is active.
In handlePointerEventImpl, we then simply ignore them.
Fixes: QTBUG-91549
Change-Id: I24e8bd890a21b244c9964f4df76986688085fa87
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 40bbf1e8fddebb0974426a03b0f48dfc08f942de)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Followup to ca7cdd71ee33f0d77eb6bf1367d2532e26155cb2 : when overriding
a virtual function, it's good practice to call the base class function,
in the absence of any reason not to.
Fixes: QTBUG-93880
Change-Id: Icbd04faec51d55d8fbf73319bd20f5846761d3d5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit a10eeee97d42f05409074f69cc99d9a8da5db077)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
src/labs/folderlistmodel was not part of any documentation project after
the source directories were moved.
Fixes: QTBUG-94022
Change-Id: I61c31ff0e05f1bafdfe897556ecd167a5bcaba61
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit e2f247fafcd90c02e5db686c791ff4818be9cc50)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The versionless import tells us that any version of the type is allowed.
We still record the major version because types have to be re-registered
for each major version. Any minor version belonging to that major
version is allowed, though. Restricting by minor version has the effect
of passing the minor version of the "host" type into grouped property
accesses. This is certainly unwelcome as the grouped type can have a
higher minor version than the host type.
Task-number: QTBUG-33179
Change-Id: I73f0f4fdaa00ac13cf91a4c21fd705c9dba070ec
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
(cherry picked from commit 5ca899164156ee49770ef3749e6d4b1567c00362)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is not required for Qt 6, since it is indirectly pulled via
qanystrigview.h, but it is for Qt 5 (where qanystrigview does
not exist) and, in any case, it is good to declare all used headers
and not rely on them being implicitly pulled.
Change-Id: I97606ea493e723006759608b7d4c4f00632f340c
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
(cherry picked from commit 367293b18ab0d0a0432c1c8ce445fee052e5eee5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: Iea8bdf25542cd404ee71141467ac1f1398a7d0df
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 8cd43e370040e23fcbd03ad64969e683055bd7d0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: Ifea27b5906bf9dcc3087946aaf8bd3aed968309b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
(cherry picked from commit be74a0082c4b9f6fc3b700ea2c9689bfcb5d1433)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
When the visible value of qquickitem is changed, a crash occurs
while accessing the physically unplugged device information from
the knownPointingDevices list.
Change-Id: I7f3190bc47ef068ca3d795216eedd6377fa25120
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit b567c3836b518c69a1a3d11dfdc36f7c5742f2b4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-93849
Task-number: QTBUG-86726
Change-Id: If6e1033642d98ccd40daeb57a453c0e5bc2985da
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
(cherry picked from commit 1917a868d9bbd6c916e2a54cad6ad28780f73f34)
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the static analyzer doesn't see in 727c503c234d162fb8d62b1aadf328de
that node must never be nullptr when i == 0, the statement doesn't have
to be executed at all if the previous block wasn't run as well to assign
node.
Change-Id: I2edd901674e7603a317ebdf98dd4800b768a0a5b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit afb081115d05c010aa4c80c985f69f8f333264c7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The pointer is initialized to nullptr, set in enterEnvironment, and possibly
reset in leaveEnvironment. The static analyzer can't know that it is
always set before any of other functions is called, so assert that pre-
condition via Q_ASSERT.
Change-Id: I0198505db40a93227ba52a08c29a351e85b74cc0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
(cherry picked from commit ae1334d827bd386ae34ed5fca8f00dcef83bc65e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Extend the current special case handling for text items
to also handle QQuickTextInput.
Task-number: QTBUG-93599
Change-Id: I5c0393e5d34a8bce2c6a2cbf491c6d3cad3ff294
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
(cherry picked from commit 94f34ef69bda1378471c0e39bd354b99179dbb0d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on testing, when the amount of particles increases, Qt 6 QSet
seems to perform better in this use case than the QFlatSet.
Task-number: QTBUG-92977
Change-Id: I442a8fb7a0496f6ee7e5c4fc37348f549f81a686
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit 6f1ed8b46abed1a2190c12f8d7b272b075efa0e8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Show the existing grabber, not only the proposed grabber.
Change-Id: Idd1b41f96b063793c3c97aa67aa4425e2d58a027
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 2ae029e00bf4a0403aaeb24cbdcdfb0881b855e6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we pass a QVariant to QQmlListAccessor::setList which contains
something convertible to a number, we set the type to Integer. Later, we
simply return whatever is stored internally in the variant, and cast it
into an int. That goes horribly wrong if the variant actually contains a
floating point number.
To fix this, we now store the actual integer in the variant after the
checks are done.
Change-Id: I3aa173a1558e95361bb4b19e97542d8a435a6dd7
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
(cherry picked from commit 42afb8249cfcf8cec66aac9e55d13ac508699ec8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
The qtquick3d test tst_Input::dualTouchTap2D got broken by this.
Amends 5c08e911375966761ee8e4d7cd425120985876e2
Task-number: QTBUG-92944
Change-Id: I8b955029e9075204a8c8d5899eb2c9f516649f84
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 01069b8514dedb4e1f8f90a9a2c79bc064a63076)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A point might have an exclusive grabber and multiple passive grabbers.
It could be that different grabbers are in different subscenes; but in
the case that there is both a passive and an exclusive grabber in one
subscene, QQuickWindow::event() calls the inline insert() function
multiple times with the same point and same DeliveryAgent, but we must
not add it to the QList more than once. (It could even be a QSet
instead of a QList, but that might not be optimal, and would disrupt the
order of EventPoints FWIW... not that we normally guarantee order.
And afterwards we pass the QList to the QMutableTouchEvent ctor taking
QList<QEventPoint>, so it's just as well to have it built already.)
This helps to fix the tst_Input::dualTouchTap2D test in Qt Quick 3D:
if you press one finger on a MouseArea in the left subscene and one
on an MA in the right subscene, and then release, we do not want to
give two copies of the left eventpoint to the left subscene, because
then QQuickDeliveryAgentPrivate::deliverPointerEvent() will actually
store into originalScenePositions a copy of the scene position that has
already been through the sceneTransform->map(), and restore it
afterwards. That results in the synth-mouse event getting the wrong
position, and the test fails because the press and release positions
don't match.
Amends 5c08e911375966761ee8e4d7cd425120985876e2
Change-Id: I856b676b5c66b59ed20c4a5e395e6e66478438da
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 82bf2eeb341ecc6b252e7a575bed8bf4bd329e96)
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the window has parent windows its geometry should be mapped to the
global coordinates before check if it contains the point coordinates.
Fixes: QTBUG-91716
Change-Id: I300547361dbe895b67caeee0d47f416426444552
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
(cherry picked from commit c740a9d30571079fa22fd26cb8e72df6ca28c7b2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
You need to include qqml.h and you need to make your own class
declarations available to the registration code.
Change-Id: I98e6b0b8a0acc309482416c3137d8ed782bbdc82
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 40c759cbfa9dfb944a924b6c01fbfd1a15a7a25e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
This function has been removed.
Change-Id: I10a0b268313c6dbbaf27e66ee0e3a49aae87a531
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
(cherry picked from commit 0d7e9d95cbfda42e45a484046280f17d5b16df38)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apple errorneously detects pagesize as belonging to their private API.
Avoid this by putting the functions into an inline namespace to change
their mangling.
Fixes: QTBUG-69577
Change-Id: I061febdc6f961fa8a6e1d43de4154a8e26b04f27
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 719fa10c8219537187f2e3c63eacdf44bd76d410)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During dragging of a QEventPoint, Flickable computes the drag delta as
pos - mapFromGlobal(point.globalPressPosition())
We cannot use only the global position delta, because the Flickable
might be transformed in 2D (by setting rotation on it or in a parent, as
in tst_qquickflickable::clickAndDragWhenTransformed) or in 3D (by mapping
it onto a Model object). So we really need QQuickItem::mapFromGlobal()
to actually work regardless how many of these transformations are in
place. This is just the beginning: we have a lot of these mapFrom/To
functions; but it's enough for the Flickable in the quick3d/dynamictexture
example to work better. Without this fix, if you tried to drag a yellow
note on the door panel, at the very first drag ListView saw a large
delta and considered its drag threshold exceeded immediately, whereas
the DragHandler on the note saw a very small delta; so ListView grabbed
and DragHandler did not steal it: it relies on having "first dibs".
When the drag threshold is exceeded, Flickable merely plans to grab on
the next event rather than grabbing immediately, and therefore a child
has a chance to grab first. Therefore it's normally OK for DragHandler
to simply become the first exclusive grabber when the drag threshold is
exceeded, and not steal the grab from another item (although
grabPermissions can be changed to allow stealing if necessary).
However this means that we continue to enforce the drag threshold in
local (transformed) coordinates: if Flickable should wait until the
user drags 10 pixels, but it's scaled to half-size, it will start
dragging after only 5 pixels of movement, for example.
Task-number: QTBUG-92944
Change-Id: Id01cc833ca80850ca18a965adf47f435e43e20ed
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit f83efd3feb564cf8b929b9dfde6787853a561069)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a syntax highlighter changes formatting, the actual text doesn't
change, and QTextDocument emits contentsChanged() but not
contentsChange(int, int, int). We need to regenerate QSG nodes.
contentsChanged() is connected to QQuickTextControl::textChanged() and
from there to QQuickTextEdit::q_textChanged().
Fixes: QTBUG-74572
Change-Id: Ia62aa6d3adfc9a9d496ee8811db4c2d963dd0c54
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit d0ffa3c42bb58eef0d2a2c3326984695a60e9667)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
origin
There is a bug in TableView which will stop the user from
scrolling/flicking back to the first column if it has become
visible after first being hidden.
The reason is that this is somewhat of a special case that
happens only if the current left column is already at the
origin of the viewport, since that will fool tableview into
thinking that there can be no more columns in front of it.
This patch add an extra section to the function that checks
for visibility changes, to detect this special case.
Fixes: QTBUG-93264
Change-Id: Ieaad507b45ea11dc231519e9f49cbf182d6443ba
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 546df684e272bbbc5e8b871ae9b224fdb34a4cfa)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
std::acosh(v) wrongly returns NaN for v == Inf on mingw. This makes the
ecmascript tests fail.
Fixes: QTBUG-93175
Change-Id: Ic6677b3259dad591b946b23d4d6a6859f6e70b0f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
(cherry picked from commit 3a8c0fd5cb9bfec439c306593bce19f434c871ce)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
No gesture handling has been implemented in DragHandler (although we could).
It just made the target item jump unintentionally.
QQuickMultiPointHandler::wantsPointerEvent() returns true for gestures,
because PinchHandler handles them, and the pattern is that base classes
only rule out some kinds of events but leave the final decision up to
the leaf class.
The autotest has to use a touchpad now, not the primary pointing device,
because QQuickPointerDeviceHandler::wantsPointerEvent() returns false
if pointerType != Finger and acceptedButtons() is not satisfied.
Fixes: QTBUG-92165
Change-Id: I984de750c9ae892f3ee61c7ed5b3ac4a7d187024
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit 73051631545dc59d4419a5ef2202355349aab480)
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Block scopes can contain "const" and "let" members.
Fixes: QTBUG-92224
Change-Id: Ie13d7d573e2759c510e1ea48c6edc68a095f40a0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 051dd3178bc4c9214af60c69cecfc2c28f13174d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickDeliveryAgentPrivate::grabberAgent(event, point) was too naive:
it's not only that each point could be delivered by a different agent,
but also each point could have an exclusive grab in the context of one
agent and multiple passive grabs in the contexts of different agents.
E.g. in qtquick3d/examples/quick3d/dynamictexture, many grabs can occur
if you press on a door: the View3D has a TapHandler to pick the door, so
that you can click to open; each Panel has a TapHandler to defocus
whichever TextArea has focus; there is a ListView for dragging through
the panel delegates sideways; if you press on a yellow note, its
DragHandler prepares to start dragging; etc. So at least, a TapHandler
in the subscene and the other one in the View3D need to get passive
grabs, and need to receive the release event in the correct coordinate
system, to detect taps. When we apply the sceneTransform of a
particular agent before re-delivering an update or a release, based on
the grab, it has to be in the correct coordinate system for that grabber.
So on grab, we use EventPointData::exclusiveGrabberContext or
passiveGrabbersContext to store the pointer to the QQDeliveryAgent that
was doing the delivery when the grab occurred. When we deliver the next
event to a grabber, we also look up the correct DA to do the delivery.
This gets done twice: once in QQuickWindow::event() to find the DAs that
need to handle the event, and in QQDeliveryAgentPriv::deliverUpdatedPoints()
to ignore passive grabbers for which a different DA is responsible.
The failsafe "never allow any kind of grab to persist after release" is
moved to QQuickWindow::event because we don't want to do it prematurely
in a subscene agent, and ATM we don't require the main DA to deliver
last: it depends on the order in EventPointData::passiveGrabbersContext.
QQuickPointerHandler::onGrabChanged() should only be called from the
relevant DA, to avoid overreaction: that is, the DA that is delivering
an event at the time the grab occurs. QQDelAgentPrivate::onGrabChanged()
gets called on all DA instances, but only one of them is supposed to
store itself as the assigned DA for handling a particular point ID.
It's not always the same as QQuickItemPrivate::deliveryAgent(): that
goes astray when the same 2D subscene is mapped to the main scene and
also onto multiple QQ3D models. In that case, if the user interacts
directly with the 2D scene, the main DA should be assigned; or if the
user interacts with one of the mapped subscenes, its DA should be assigned.
We have to stop delivering to subscenes when the event is accepted,
at least, because of the usual convention that delivery is done when
the event remains accepted rather than being purposely ignored. So in
the dynamictexture example, if you click on a TextEdit on one of the
doors, it receives the event first (because it's on top) and accepts it;
that stops delivery in QQuickDeliveryAgentPrivate::deliverPressOrReleaseEvent(),
and now also stops QQuickWindow::event() from visiting the next
subscene, or the main scene, so that the TapHandler in the View3D
doesn't get clicked, and the doors don't open.
Task-number: QTBUG-92944
Change-Id: I1b4520b665e58874d17a936024cf62e4c7175d8e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 5c08e911375966761ee8e4d7cd425120985876e2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On rare occasions, it seems to be possible for the texture to be used
after deletion, which results in crashes in pixmap() after casting.
Rather than storing a raw pointer, wrap the texture in QPointer to
avoid the stale pointer accesses.
Task-number: QTBUG-80415
Change-Id: Ia0ee556f4a3a4eee777ca14065635f4bc5f90da2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 1c010b202506bb7eb0f0e24ab37ad50e319abada)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Also includes 9dacc312e5b0f5aeb0f8370f4f7722b57754a3c2:
fuzzy comparison in the test to avoid failure due to roundoff.
Fixes: QTBUG-63673
Change-Id: I91231bb8555b7eb02a9580f9f184b261d8bd44c8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit 7642205be45135add120373299df02e05f4ffc58)
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We cannot just take the number of active breakpoints as ID for the next
one. It's possible to remove breakpoints after all.
Fixes: QTBUG-93404
Change-Id: Icde7a8e47c740e930f2313ffd9034b00033a54aa
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 7f12cf3346d65d0bff78fff8000ed519fbb921ba)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To be complemented by an rhi change that adds verification for this
and prints a warning with mismatching names. The common use case with
ShaderEffect is to provide a fragment shader only, while using the
default, built-in vertex shader. In this case one must be aware of
how to correctly declare the texture coordinates input, and this was
not very clear in the docs.
In short, we need to advise that the fragment shader input must be
declared as qt_TexCoord0 at location 0 in order to be portable. Just
having a matching location number but a different name is not
sufficient. (because with old GLSL versions the location qualifier
will not be there at all and matching is name based)
Task-number: QTBUG-92500
Task-number: QTBUG-93370
Change-Id: I975557e9a754db8e7c69b86531a2d873f059c7ce
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
(cherry picked from commit 40959164bbc0e7144b3ba3e426296d0de61d60f5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Considering that there is lot more to know about the backend
value, link to a topic where this info. is covered is better
than list the values in the function documentation.
Fixes: QTBUG-93083
Change-Id: I4ae714685395e9c37de82d9a3ee42220a1f07f89
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit cc58bdfb57f6fe15113b797cad4d0486c9957ac6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For now this patch just tacks on another list type, but there may be a
better way to account for all types in the future.
This change also adds tst_qquicklistview2 to speed up development.
tst_QQuickListView is 10000 lines long, and compiling it
is slow (36 seconds on a 2016 i7 MacBook Pro). In addition, a similar
approach (creating a second test to avoid the slowness of a massive one)
already exists for QQuickItem tests.
Task-number: QTBUG-72906
Change-Id: I05455a2f20978b07eb38591ab63e7d0fb7dac1ab
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 0e3902b83dc3c59567a81a90c3f3c0365bdf68da)
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickWindow::event() forwards all input events to the DA. If it's not
handled there, it eventually gets handled at the bottom by forwarding to
QWindow::event() which then dispatches to QQuickWindow::tabletEvent()
and from there to da->deliverPointerEvent(); however the switch in
QWindow::event() is not meant to be the normal entry point for input
events anymore. In a subsequent patch we will move the failsafe
"never allow any kind of grab to persist after release" into
QQuickWindow::event(), before that is reached; that in turn breaks
tst_PointHandler::tabletStylus(), showing that the point is ungrabbed on
release before PointHandler handles it and has a chance to emit
pointChanged. So we must handle tablet events earlier, alongside
mouse and touch events.
Amends 68c103225f4e8bd6c1b18ef547108fd60f398c0f.
Change-Id: Id7508e4bbbdbfe88d002d298c15ec727040f02ef
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 73148c79a328cb834a51de5c152f32851194ce52)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we visit multiple subscenes via multiple DAs, if they are changing
the scene pos, the original gets lost, and then maybe we visit some
handler via the root DA again (like a TapHandler declared in a View3D).
This helps to fix qtquick3d/examples/quick3d/dynamictexture
Task-number: QTBUG-92944
Change-Id: I9bd8cfc2510168b6e14002957833b54eb9586ab0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 30013ccae388aa55b870aa70bc20979d7c434c05)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Unlike create(), it can produce errors that should be checked.
Change-Id: I78f2e58c8666eb45f6e850c43e3e97a448b2758e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 4f0622f7f553cd841874f0efe65d7f13edeec216)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
We can discern between the case where the property does not exist at
all, and the case where we cannot set it.
Change-Id: Ia2e8f4cc077a00b90d720db01bff1542a812dea0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 7275328b967582010abfd59c9a93feef4cb1379f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
JavaScript Grammatical errors,
There should be no colon after the function brackets
Fixes: QTBUG-93048
Change-Id: I902d490bf810fa60e3b3d2a76de7902345289cfe
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
(cherry picked from commit df8e6136834326e363db49829d227a303e5425ed)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note that it doesn't necessarily need a namespace; mention that it
however requires the "namespace" and its contained enums to be exposed
to the metaobject system to work.
Moreover, add a minimal code example.
Change-Id: I814c65b2b59747f902f2291e2f98962eb98d4d59
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit a3959ea9df49b5c30833d49daede5bf60a70897e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|