| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
When 1771d298 changed gradient from a QQuickGradient* to a QJSValue,
it forgot to also change how it was initialised, with 0 causing
QJSValue to consider itself a number, and hence trigger the warning
added to QGradient in 3b7db8ac90b.
Change-Id: I83377c40984f596f56645aea467b74de1a152b62
Fixes: QTBUG-74911
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|\
| |
| |
| | |
Change-Id: I910618824785f9119b1e1da9a82e998fd645a96f
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If currentIndex is quickly assigned a different index and then the
previous current index again, it should not move.
Fixes: QTBUG-74508
Change-Id: I8d610e3fe452c8631e082c648e77d2cb70ae57c5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I2f0b4f8543a448c9acffe0932e0fd67c0b7412f4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
634b59f187c8697f03a606cbacb5f0a69650ea7c caused a significant
performance regression during layout of any Text item with RichText,
by calling QQuickTextDocumentWithImageResources::setPageSize() with an
accurate width in ensureDoc(); but ensureDoc() is called multiple
times, and doesn't need to calculate actual layout. The accurate
width is needed (at least) when doing layout of HTML tables that
contain percentage-based column widths. For that purpose it's enough
to set the correct "page" size in updateSize().
Fixes: QTBUG-74638
Task-number: QTBUG-72457
Change-Id: I34ab085316018576eba64a67200c527bb64b9533
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For multiline texts with word wrapping, it is not so meaningful to add
breaks in the last line if it is anyway going to be elided. Fix by
using the WrapAnywhere strategy for the last line for such situations.
Fixes: QTBUG-72736
Change-Id: I1263c81277b6ca89ba461529fced1094263c026f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I16820387279ca616af6ab379874c247c83df4a2f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I939cba4ccdb5408a5a6a47f1324538462f51e35a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ \
| | |
| | |
| | | |
refs/staging/5.13
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qv4codegen.cpp
src/qml/animations/qsequentialanimationgroupjob.cpp
Change-Id: I8b76e509fd7c8599d4cef25181d790ee28edab54
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If QQuickItem::grabToImage is called from QML,
QQuickItemGrabResult is created but was never deleted.
Adding a deleteLater() right after dispatching the callback
ensures that QQuickItemGrabResult objects are deleted.
Task-number: QTBUG-73723
Change-Id: Ifda85599098f2b679ae5f22e1d47a73962ed0a85
Reviewed-by: Shawn Rutledge <shawn.rutledge@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>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes: QTBUG-74008
Change-Id: Ib232b723e4a246db0312145ef475ce81cd5f1a5f
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQuickFlickable::setContentX/setContentY used !=/== to compare qreal, which would
trigger binding loop warnings while using bi-directional property bindings.
Fixes: QTBUG-74128
Change-Id: I224a924e11c93cf047478ba0e09e10e57eedabde
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQuickTextNodeEngine::addTextBlock() was noticing the background color of
text fragments, including those within table cells (and adding to the
colorChanges vector for rendering), but not rendering a rectangle for the
background of the entire table cell. So while the color was correct, it
only took up as much space as the text itself.
Also, QTextDocumentLayout needs to be told how much width is available
so that QTextDocumentLayoutPrivate::layoutTable() will allocate cell width
appropriately in case width is given as a percentage, e.g. <td width="20%">.
This is done by calling QTextDocument::setPageSize() with correct width in
pixels rather than zero.
Fixes: QTBUG-72457
Change-Id: I5c8f861829f76d1cf4044fccd1142c3817bb33bc
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I0e08820a6d25996fe27118f05214ff63d695d24e
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a window is entered, due to another window being hidden, then it
is possible that the item under the mouse has a different cursor than
the one previously set for that window. Since there will not be a mouse
move at this point yet, then we should update the cursor right away.
Change-Id: I2ef3c72617ae5c995a4daf7daef1ba3311fdcc12
Fixes: QTBUG-41045
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the close event is accepted, the close handler in QWindow will
destroy the underlying platform window without notifying the
QSGRenderer attribute windowManager. This may cause a race
condition if the renderer is a QSGThreadedRenderLoop because
the platform window may be deleted while the thread is using it.
Correct this issue by notifying the QSGRenderer on a close event
using the hide() method (which is supposed to release the
resources according to documentation).
Task-number: QTBUG-73929
Change-Id: Ia48366b3f6638d5d714ceb17a2f8c7848eb20465
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
Change-Id: If3bf1abc23a59c458be0bb862d92f2edcb16b79f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
Change-Id: I69c3e6610ff590d9c18f386fc17ed2e429b58d26
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The auto test didn't catch this, since there we use the
setter functions directly from c++, instead of accessing
the properties.
Change-Id: I2101e4cfab11d1c0e037f6ca134b6804d328e162
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I95c7557dd552dd86bfcaa7eebf43f00516ef7db6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TextEdit items with readOnly:true do not clear the selection on losing
focus which is expected with persistentSelection:false.
The reason is that a readonly TextEdit does never show a blinking cursor
and thus the selection clearing within setCursorVisible never happens.
This change adapts the implementation from TextInput.
Fixes: QTBUG-50587
Change-Id: Ie66baaa0ccbc006359473862d8e9dbecd46a59f6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/qml/qqmlpropertycache.cpp
Change-Id: Ie7727499700b85cc0959ef3abb30d55dc728b659
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After the call to the application, we check the return value
and adjust it if it's e.g NaN. And we need to cache the
adjusted value, not the raw return value, otherwise the
getColumnWidth()/getRowHeight() functions might return different
values on subsequent calls.
Change-Id: I7f3134f599b9863641132811ab7d5883cc02857b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Otherwise, if we're unlucky, it's the stored column in the cache that
changes visibility. And unless we clear the cache, we'll not detect it.
Change-Id: I0933a7d6cd3056d7d3883bd032ea5f8fa048402e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I2842f4a8096c4555e29f08e65b88b77b841441cb
|
| |
| |
| |
| |
| | |
Change-Id: Iaf7cf035f76a1f198c60f4792d394b0fd19ef901
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace the deprecated functions with it successors:
- QFontMetrics::width() -> horizontalAdvance()
- QLayout::setMargin() -> setContentsMargins()
Change-Id: I2a2557cdb2eaec40e2c9955a0082372c582ec6b8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch will add support for hiding rows and columns to TableView.
You can now hide a column by returning 0 width for it from the
columnWidthProvider. The same can be done to hide a row (by using the
rowHeightProvider). If you return NaN or negative number, TableView
will fall back to calculate the size of the column/row by looking at
the delegate items, like before. This to make it possible to hide
some rows/columns, without having to calculate and return the heights
and widths of the other rows and columns.
[ChangeLog][QtQuick][TableView] Added support for hiding rows and columns
by setting their size to 0 from the columnsWidthProvider/rowHeightProvider.
Change-Id: If9e1a8db91e257d36cb2787bab4856e6201456ac
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I5209d833e171c795556c075e2a5f964b59b6df2e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An Item might set itself invisible or disabled while handling a mouse
press, as an alternative to rejecting the event. In earlier Qt versions
(e.g. 5.6) it did not end up with a grab in such a case.
Task-number: QTBUG-63271
Change-Id: I12f646e4217d773d396f380672420c85e6adcd52
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qv4codegen.cpp
Done-With: Erik Verbruggen <erik.verbruggen@qt.io>
Change-Id: I3ae3d64317e4f3fccba6605f4c6da15479ca75e0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The contents of a deleted QString can still remain in memory
and can be accessible by tools that read the raw process memory.
The same problem appears when the QString reallocates -- the
old buffer gets deleted, but its contents will remain in memory.
This means that a TextInput that serves as a password input field
can leak parts of the password while the user is entering it
(due to reallocation) and the whole password when the TextInput
instance is destroyed.
With this patch, the contents of the m_text string member variable
will be zeroed-out before the TextInput is destructed. This is done
only in the cases when the TextInput serves as a password field.
Also, this patch reserves the space for 30 characters for m_text
when the TextInput is used for password input. This is enough to
make sure no reallocation happens in majority of cases as barely
anyone uses passwords longer than 30 characters.
[ChangeLog][QtQuick][TextInput/security] When the TextInput is
used for password input, preallocate a buffer for the string that stores
the entered value and zero-out the string on TextInput destruction to
avoid leaking sensitive data to process memory
Change-Id: I8f1f307b1cfc25ad51f48bae8509a258042a2e7f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TableView keeps track of which rows and columns that are loaded
at any point by using a QRect called "loadedTable". loadedTable
basically describes the top-left and bottom-right corner of the
table that has been loaded (which also is what ends up visible
on screen).
But now that we prepare for making it possible to hide rows
and columns, using just a QRect becomes to simple. A rectangle will
only tell what the edges of the table are, but not if any of the
rows and columns in-between are hidden and therefore not loaded.
So a QRect(0, 0, 10, 10) will give us the impression that we have
10 visible columns on screen, but in reality, we might have a
lot less.
This patch will change this to instead use two QMaps to record
loaded rows and columns. This will make it much more easy
to deal with hidden rows and columns in upcoming patches. We
use a QMap instead of a QHash/QSet to keep the list of columns and
rows sorted, since we frequently still need to know the edges of
the table, like before.
Change-Id: I45736485c67042403b095e73b5f2effa411281d0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/masm/yarr/YarrJIT.cpp
src/qml/compiler/qv4instr_moth.cpp
src/quick/handlers/qquicksinglepointhandler_p.h
src/quick/handlers/qquicktaphandler.cpp
src/quick/items/context2d/qquickcontext2d.cpp
Done-With: Ulf Hermann <ulf.hermann@qt.io>
Change-Id: I109453131f9f0a05316ae37c7d6ed1edc8c0f9d4
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |\
| | |
| | |
| | | |
refs/staging/5.12
|
| | |\
| | | |
| | | |
| | | | |
Change-Id: Ic746fbce93430867e2eda4bc7155d34e20a4aa2b
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Device pixel ratio was included twice.
Task-number: QTBUG-72603
Change-Id: Idd1b75c3b1926a6381bf258c1b705be10c5575b9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
.qmake.conf
tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
Change-Id: Ic1f5e219a255d0613f7654368a5ce3eccb8f0ee9
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
Task-number: PYSIDE-903
Change-Id: I0c4640eb20157673eabb131e8834e79cbbf95d5c
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch adds itemAtIndex method to ItemView-derived views and
to PathView.
[ChangeLog][QtQuick][QQuickItemView] Added itemAtIndex() to
GridView, ListView and PathView to fetch a visible delegate by index.
Change-Id: Id8475d06c1481036984fe5109bb52cf2729b1c21
Fixes: QTBUG-72961
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Without this, it becomes very difficult to reimplement
updatePaintNode when subclassing QQuickImage
Change-Id: Ib5decca3584c89ea4ab793367b63ca70a4267c87
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Replace QFontMetrics::width() by horizontalAdvance(), fixing:
items/qquicktextcontrol.cpp:1001:80: warning: ‘int QFontMetrics::width(QChar) const’ is deprecated: Use QFont::horizontalAdvance [-Wdeprecated-declarations]
items/qquicktextinput.cpp:880:60: warning: ‘int QFontMetrics::width(QChar) const’ is deprecated: Use QFont::horizontalAdvance [-Wdeprecated-declarations]
items/qquicktextinput.cpp:1380:60: warning: ‘int QFontMetrics::width(QChar) const’ is deprecated: Use QFont::horizontalAdvance [-Wdeprecated-declarations]
items/context2d/qquickcontext2d.cpp:2980:57: warning: ‘int QFontMetrics::width(const QString&, int) const’ is deprecated: Use QFont::horizontalAdvance [-Wdeprecated-declarations]
items/context2d/qquickcontext2d.cpp:4060:36: warning: ‘int QFontMetrics::width(const QString&, int) const’ is deprecated: Use QFont::horizontalAdvance [-Wdeprecated-declarations]
items/context2d/qquickcontext2d.cpp:4063:36: warning: ‘int QFontMetrics::width(const QString&, int) const’ is deprecated: Use QFont::horizontalAdvance [-Wdeprecated-declarations]
Change-Id: Ie97be4a6cf1ce087caeb4d83fe016fa1a471f3ec
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|