| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 1c5de027d0c31d1d6697bd0557128d92207763d8.
The fix here is not correct. Calling a QSGRhiLayer function from the gui
thread is very wrong and can cause a set of unexpected issues. The
Address Sanitizer catches this by recognizing that the render thread is
trying to do something with an object destroyed in the meantime on the
main thread in the layer->setItem(null) call.
The issue the original fix is trying to address needs to be addressed in
some different form.
Fixes: QTBUG-94975
Change-Id: I46f904026281201fc6d233ed7d3bdc7080934afe
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
(cherry picked from commit a5f0361622eb08eab6c3474d5fc249d1962e3d1e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
Found by static analysis:
https://testresults.qt.io/codechecker/daily_diffs/qtdeclarative/dev/qtdeclarative-dev-20210604-1285b67a11/qquickpointerhandler.cpp_51058486.html#reportHash=9b76a76200c3a2eceb0e115776dda98b
Amends b09ce7dcd8ecf24ef23da8197a64e3fced3fc894
Change-Id: I4c35f648be9513e5e237d9b8d4e502e40e9f8a76
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 63b1f379b710c510f00311e03641aa65e72aaf34)
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To render the plain text of _War and Peace_ took 6.4GB of memory before
(Linux 64-bit debug developer build); and now it's 1.1GB initially.
More optimization is possible: sizeof(TexturedPoint2D) = 16, and we
store a 16-bit index, so 3158176 glyphs ought to take about 60MB (but
takes 200MB in practice); but we also store QGlyphRuns, which are
actually redundant after the SG is populated. We need them in case the
text can be edited, restyled, re-wrapped etc.
QSGDistanceFieldGlyphNode::updateGeometry() enforces a limit of 65532
vertices per node (0xFFFF is not allowed as an index value, because it's
reserved to indicate primitive restart; and glyphs are quads). But it
was making copies of the remaining QPointF positions and quint32 glyph
indices and giving those recursively to the subnodes, so every subnode
was storing all of those for itself and all of _its_ subnodes, even
though it only needs max 16383 of them. Now, in the RootGlyphNode,
m_glyphs stores the glyphs that node will render (as before); but in
each subnode, we use QGlyphRun::setRawData() to populate m_glyphs with a
range from the index and position arrays from the root node.
setRawData() just sets the pointers to those arrays; so to avoid any
chance of dangling pointers, we need to keep those vectors, which live
in the GlyphInfo structs in m_glyphsInOtherTextures. That's the reason
the glyphsInOtherTextures hash, which was temporary before, is now kept
(although the dangling pointers somehow didn't cause any crash).
In the first loop over indices in updateGeometry(), each SubGlyphNode
will break out of the loop as soon as it has created enough
TexturedPoint2D and index instances for itself, because it no longer
needs to redo the rest of the loop over indices that was done in the
RootGlyphNode; this speeds up the rendering of large text.
Creation of subnodes is now iterative rather than recursive, which
saves stack space, and also looks better in the QSG_RENDERER_DEBUG=dump
output: you can see that each RootGlyphNode has one level of direct
children (161 of them for _War and Peace_). In a future change, perhaps
we could create those dynamically when the user flicks down to them,
and reclaim memory from children that are no longer shown; but that
would not be possible if they were all nested inside each other.
Amends aeb1d48c9938241b1ffcf8e42e3864595e90b168
Task-number: QTBUG-60491
Task-number: QTBUG-90734
Change-Id: Iff981b9ba86acc01775fd72e3ce79ea9e33d9061
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 75a9b09d93b9462b77347d1992371a189037bc62)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
In case of mouse "chording", ignore all other buttons.
Fixes: QTBUG-96909
Change-Id: Ib091b271390c5b4e3aafbbe24d2dc7b6f08db175
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit f91aa3b4d8ae7bfba65a8252099ded3b428f7acf)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
| |
It's WheelEvent not PointerScrollEvent.
Task-number: QTBUG-81302
Change-Id: Ie03fbf60492525301ee8d60a0c38c8a111251e0a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit e2e7a1c5b81e4e7464134b4590aea799b0434d55)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
An autotest is added separately for dev only because the necessary
infrastructure for sophisticated scenegraph tests only exists there
due to some earlier commits that are in dev and not in 6.2.
Fixes: QTBUG-96190
Change-Id: Ie2adee96864b60f982a83b9b2785a93d5401bd6a
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 4de27382f9b5f05b8d5821247ea7653b44264c03)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Overriding the DPR enables the system to not use as much memory and
resources that a low-end device or mobile might have a limited amount of
for rendering the Canvas item. In a situation where the user is aware of
the consequences and impact of forcing the DPR to be different to the
canvas window's DPR then this can be useful in those situations.
By having the environment variable to override the DPR then it makes it
possible for those needing this right away in all versions of Qt, so we
add this now with a view to add API for this at a later date.
Change-Id: Icafaa04a15678e2c7f24bc791026676f476a6ced
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit b0193908258f315a5736edcbc2a034d3194d42c9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QPlatformInputContext::reset() function does not allow any further
input method events to be called. Therefore, clearing the pre-edit text
is the sole responsibility of the text input control.
This change modifies the QQuickTextInputPrivate::resetInputMethod()
function and calls QQuickTextInputPrivate::cancelPreedit() instead of
QInputMethod::reset() directly. The cancelPreedit() function will send
a QInputMethodEvent which clears the IM state (in addition of calling
QInputMethod::reset() function).
Also, rename the QQuickTextInputPrivate::resetInputMethod() function to
cancelInput, since it does not call inputMethod()->reset() directly.
Fixes: QTBUG-95461
Change-Id: I6ab3b9dbe71956af72656e2a25a05d79603b34ea
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Inho Lee <inho.lee@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
(cherry picked from commit b2103e33f490c96d0068d211c6f2d5b540ca407e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The regression was introduced with 2acb31641fc9c34d24ac29232cdfec
The problem was that when we entered
QQuickListViewPrivate::wantsPointerEvent(), the event was not localized
to the QQuickFlickable when mouse filtering was done.
Therefore, since the code assumed that the localPos was local to the
Flickable, it always ended up assuming that the point was within the
bounds of the header/footer.
Fixes: QTBUG-89409
Change-Id: Ib595e61b7995241b58e3051da09139e1e1f13cba
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit b2e4f09bfa2c42af562f6741c0a0246a53028f0a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
These functions have been added at ded64d0368 "Make the qml/js matrix4x4
type more useful."
Change-Id: Ia61eb5c7c058e2b94bb1b8b0e7bd56371feadca1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit d3b99595aee699dc4f01fb3658e0b33ba313f9f2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
| |
Fixes: QTBUG-95811
Change-Id: I3bedef190b839bf5436d0cdd07d2011c237c03f2
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 88f38cbcb27566650109a97098a9cf2c19668fb0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
| |
Change-Id: I6e5cc9807ddc2ae6a40a864b3154fe93fcc32d69
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit a4a80e9a5c0452936241657c19ce871094a4f335)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
This is an internal class that makes no sense without QQuickPalette, which
is also an internal class (and already documented as such).
Fixes: QTBUG-95591
Change-Id: I878d9bf9794530dfe57ba77db86c7ff9a9a02bd3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 419734ddda88950ad3f09f7c630eb8771f9f0144)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
| |
It was ironic that it's the most obvious use case of TapHandler but
we didn't have some easy copy-and-paste code for making your own button.
Change-Id: I680b6f828f0df82e2ab8b434a2e76aabb21fc2b9
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 0fb1a49db192e7b0f0b0fe7ac441dead1608eb63)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Document the exclusive/passive grab concepts better
- Mention gesturePolicy's impact on grab behavior in the TapHandler docs too
- More links
- Add a couple of snippets illustrating simple use cases with handlers
- Don't bother mentioning Qt.labs.handlers anymore
Task-number: QTBUG-68110
Change-Id: I5e6f538c2bc8cafef679f535a5248b218b4a8068
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit aade6857d12b2c9cd5552d25f4d084a5fcd25f7d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow 05ec3315e2ae723cd32b1b49260f0d09ee1fa423 from 5.15.
The windows render loop is gone in Qt 6, and there can only
be one type of material type cache (no legacy OpenGL path).
The same issue is present, however: the basic and threaded
render loops behave differently when it comes to calling
cleanupMaterialTypeCache(). Make the behavior identical
and follow a uniform order (1. tear down the scene graph
2. then drop cached QSGMaterialTypes)
Task-number: QTBUG-94844
Change-Id: I61f4962fe8ae1a359a22fbe72e40eb2525d81e03
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit aedb4853a509d63a599779fa5115083f84fad389)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Keep the existing QSGPainterTexture (QSGPlainTexture). This is
what Qt 5 would do as well. Otherwise we silently get lots of
unnecessary releasing and creating graphics resources
underneath.
Fixes: QTBUG-95132
Change-Id: I88e839793fedd8f2c6d00cd76cd9a653731865f4
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
(cherry picked from commit 146f8cbf865e0061859dd9f1c7a477db91298052)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This shows how to use non-rectangular shapes for hit tests,
as well as how to define the contains function in QML.
Task-number: QTBUG-89380
Change-Id: I93c686d840b292816a788c05a0a76fafa338d5f8
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 382d2bfe5f261c269ccf4b970c826003c90d57ae)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Otherwise, a TextInput item will always receive OtherFocusReason when
clicking into it.
Add a test that simulates focus changes with mouse and keys, records
the incoming focus events and verifies the correct focus reason is set
in the event. Qt Quick provides no mechanism to access the focus reason
from within QML (onActiveFocusChange only has a bool parameter, the
focusReason property exists only in QtQuickControl).
Task-number: QTBUG-75862
Change-Id: Ifea95c7ef2ac88c6c8e8bbdc8d2dbe5205ff922e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit bbcbb7c78f2f07e6c5e380ec5c018ac2a7abf292)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An SVG doesn't have a DPR, but we need to reload and repaint it anyway
when the DPR of the screen changes. So store the DPR of the item explicitly
if reloading it didn't change the value (for instance, because sourceSize
was not set). Otherwise, DPR changes are only handled when moving from a
1.0 (the default) DPR display to a different display, but not when moving
back.
Fixes: QTBUG-94622
Change-Id: I9f0a847699ab027ef876e341b8c6a954a6167ab3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 08838f434b55024d9d5a9252fc2a3fb782b087da)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
| |
Task-number: QTBUG-94928
Change-Id: I1ee14600fb0fd9f0ee499546e3ffcd66114aaeff
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
(cherry picked from commit d3cae36550fe8b82c641cef6a207e991a9064d85)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We connect to the signal when the screens change (in
QQuickWindow::handleScreenChanged), but never for the initial screen.
Not connecting means that changing the DPR of the initial screen doesn't
re-render QQuickItems with the new DPR, which was in particular visible
for QQuickImage when displaying SVGs.
Task-number: QTBUG-94622
Change-Id: I44ff3f8f3713d5a7bba8b6b8b4d5ca14530fe373
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 7e39a2204382a78ac6ff1e32dfe29dcbce65004c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Qt Quick docs weren't as explicit as possible; and the
\qmlproperty did not generate any C++ docs.
Amends bf74a908cb0591c2adc024a6f93d566c7348c125
Fixes: QTBUG-89375
Change-Id: Ib81796c1d7a00a7a48940c65137e4ed6a38a21ab
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit bcf3f29c6d26777c8db814477b8f3c3e19826234)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
An empty line dash array is indicating that it should be reset to be a
Solid line, otherwise it ends up reusing the previous settings for the
pen instead of drawing a solid line.
Fixes: QTBUG-75553
Change-Id: I16466672de95da8ef0cf3fc261969e7cc6add227
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit c31638f16b1fe709dd9df232afb9ab7fac3b231e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Input events are accepted by default, and get ignored by the default
event handler implementations. By overriding an event handler, the events
get accepted, unless ignored explicitly.
Since QQuickTextControl does not handle any key release events, it should
explicitly ignore all of them, not just Key_Back (ignoring of which was
added in 798112b6532a3c66abff630327d29a980a525f25).
Fixes: QTBUG-95073
Change-Id: I09105fd8ebef73c03eb2083149643d188a2f1360
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 6ca31ca88a7ee86308e329afd6cd2c90a050d4d9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
PinchHandler.minimumTouchPoints was probably just an early idea for the
name, because MultiPointTouchArea has it. Anyway it's now honoring the
inherited minimum/maximumPointCount properties from MultiPointHandler.
Change-Id: I6408da9dfe1d31a38da2777efa2c5d79ad17390f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit a04d98787dc5c816569a6eecce695a8d80257c05)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
| |
Task-number: QTBUG-94971
Change-Id: I047223dfdb76a6f1237b9d15b54381cd085aa1ac
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 0a271b5cd4da9e13accbf63a576413c45f367adc)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Given that we store lastMousePosition (which I hope we can move to
QPointingDevice eventually), the idea is it should always be correct; so
don't bypass updating it during a mouse move just because there's a
grabber. It resulted in synthetic hover events being sent after
release, with an outdated last-known mouse position.
Fixes: QTBUG-92563
Change-Id: Ic708bfcbdfcd0a9f6dc2cfd42f0671b0661e76bb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 930da44767dcd0ccb50aaf725e3cbac99eaf13ea)
|
| |
|
|
|
|
|
|
|
|
| |
1. Add missing "readonly" annotations.
2. Change sourceSize's type to QML basic type 'size'.
Change-Id: I3636818571b1e923058363f62b595567a1ccdcf0
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 9e0fdcf87fb0fd35a3313dff6243da6597289455)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a crash that gcc optimized the code in the
way that inspectedObjects->contains(object) executed
at a nullptr. (only release only some gcc versions)
This was already fixed in the past but reintroduced by
another commit in the past.
Task-number: QTBUG-94798
Change-Id: I9759f3347712f706dd99303ce9d804667c1525f3
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
(cherry picked from commit e865d977f6b6b0e3f7e7e61e4a9200f047b0213e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The code for these submodules are moved out of imports
but the qdocconf was not updated to include the new path.
Fixes: QTBUG-92840
Change-Id: I8c4677354622c6b601b273c8c96d67c33535c77f
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
(cherry picked from commit e981455f9439758f53f742decb758027d0a2f5e6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
...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)
|
| |
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|