| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This reduces our dependence on QV4::Value in the devtools.
Change-Id: I4b3f937bc08c16f7e2543fdc5cc34c0cfb121f8f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are now three mechanisms in TableView that works together to
ensure that the table ends up edge-to-edge with the content view. They
are applied in the following order:
1. Adjust the content size, based on the predicted size of the table.
2. Adjust the origin and endExtend on the fly, if the content size is wrong.
3. Move the table directly to where it should be, in case we don't have
time to wait for the origin to change.
We could have, strictly speaking, setteled with just one of them, but choose
to use them all at the same time for best flicking experience. Still, 1. and
2. sometimes step on each others feet when they both detect that something is
a bit off, and adjust.
So rather than adjusting the size of the content view every time we load a
new row or column, we just keep the first prediction. And then we leave all
later ajustments to 2. and 3. This turns out to be a more stable, and will
avoid some glitches that occur when flicking using a scrollbar, if several
mechanisms kick in at the same time.
Change-Id: Ib551a0bf8f6ee59ac9b3556b9462c91adb9cc80b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I9ddc66784f986fe0e9de06a8b05844db90eb6802
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes snap behavior slightly. Basically, it does not snap
anymore if the target() item is an ancestor of the parentItem().
In addition, we add a property that enables users to change the behavior.
(SnapIfPressedOutsideTarget has the old behavior)
[ChangeLog][QtQuick][Event Handlers] Added DragHandler.snapMode which can
be used to configure under which conditions the dragged item is snapped
to be below the cursor. The default mode is SnapAuto. The old behavior
can be obtained through the SnapIfPressedOutsideTarget mode.
Fixes: QTBUG-75661
Change-Id: Ibc00e8fbe31b779f8e817af1505e76425467d27a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
We need a CompilationUnit that only holds the data needed for
compilation and another one that is executable by the runtime.
Change-Id: I704d859ba028576a18460f5e3a59f210f64535d3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\
| |
| |
| | |
Change-Id: I192cb06f3b92869699cb3e072f2c6c1e8dbb1ef4
|
| |\
| | |
| | |
| | | |
Change-Id: Ia93dc734ce25b3134b0f905f473a0c30777ceaf1
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to respect QPlatformTheme::TouchDoubleTapDistance
Fixes: QTBUG-75770
Change-Id: I2adc7097bb29cb93beb2609a8a806a666856a0c8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
But do not interfere with any custom cursor that user code sets:
remember and restore it when the mouse is no longer hovering a link.
Task-number: QTBUG-14769
Fixes: QTBUG-50482
Change-Id: Ia4633c22d0ad42d07203d4dc3e330b90a5f94a7c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Amends b8fd580cb3453b3850c36765c4b2537538d2f4f8 to add documentation.
The eventPoint is important to get ephemeral state from the pointing
device: which button was released (thus triggering the tap), which
device it was, and where the release occurred. Users may expect to use
the point property, but QQuickHandlerPoint::reset(QQuickEventPoint *)
resets every property of the point at the same time, so the architecture
currently does not allow for mixed state, i.e. having correct button
state but still holding leftover position information. It may be
surprising for users, but the changes to the point property are an
atomic transaction that occurs before the signal.
Task-number: QTBUG-61749
Task-number: QTBUG-64847
Change-Id: I33e0e232084beba8e10d8b02fa3bf85f36293358
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We therefore need to keep track of which states have been explicitly set
or not in order to know which ones should get initialized with their
defaults.
Change-Id: I49fdae82288f04ea4f50d45735a93434ac02abec
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes bad type-cast during destruction when objects no longer has the
full type they used to.
Detected by UBSAN.
Change-Id: I4867091901d70d5a882656834eb97a704def1751
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One state hadn't the group unset and ended up with a non-null group
pointer that was no longer a group.
Change-Id: I916fdab577c90e859a49b97426396c78e7ff426f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We set the size of the content view to be the size of the complete
table. The problem is that the exact size will always be just
a prediction, since we would otherwise need to iterate over all rows
and column up front, to be able calculate the exact size.
This is not acceptable when using non-trival table models.
A side effect of this, is that is will be possible to flick the
viewport further out than the actual end of the table, if the
content view turns out to be larger than the table itself. From
before we used to just move the whole table back into the viewport
when that happened, which could be seen as a sudden jump of the
table to a new position.
This change will improve this logic so that we can avoid most
visual jumps. Instead of moving the table around, QQuickFlickable
supports moving the origin instead. So when we see that the
table is not in sync with the content view, we simple move the
origin to the edge of the table. The effect is that any flicking
or ongoing momentum animation in QQuickFlickable will continue as
if nothing happened. This is also the same logic used by QQuickListView.
Change-Id: I6060b7e84b9489c8fa569e6ff41b958e3871f8e7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
"Markers" (only checkboxes so far) are a new feature too.
Change-Id: I5a0ea337ec6cf8bdadf3b4729caaa579e8b625b5
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When moving contentX/Y, we also need to ensure that the viewport rect
reflects the change. Otherwise we'll end up loading rows and columns
somewhere else then under the viewport.
Change-Id: Ifbd3d66b9b3a822414aefde9b5bd088274dfa2ad
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qqmlirbuilder.cpp
Change-Id: I2cfda470515e2df778ad3c89105c07344af07c6d
|
| |\|
| | |
| | |
| | | |
Change-Id: I3eb5d1affe64b6ae709d1154cc37de91db3816b6
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Test more of the text properties. This is still very incomplete, but a
small step forward.
Also make sure that editable text reports the editable state.
Fixes: QTBUG-75002
Change-Id: I9e43c980d8fa91671acb4e40e5d9162854884ee7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix spelling errors, punctuation, and links.
Change-Id: I79154d0da6acf403903f102655d5dcb64240b137
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQuickTextControl and consequently QQuickTextEdit did not emit
cursorPositionChanged() signal when cursor position was changed by a
QInputMethodEvent with a QInputMethodEvent::Selection attribute.
This is especially important on Android because QAndroidInputContext
uses such events extensively to move the cursor and also relies on
cursorPositionChanged() signal being emitted by the focus object. If the
signal is not emitted, QAndroidInputContext does not notify the virtual
keyboard about cursor position change which results in various glitches.
Change-Id: I46bef6185463d11507b1b96435fdc056bbe951f2
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I59f738402d51e39188bbbca2ef1fbc8a61612372
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we know the exact size of the content view, we can take advantage
of this to calculate the exact average cell size. This in turn will
improve the positioning of rows and columns whenever we need to
rebuild, since we have a better idea where they should end up in
the content view.
Change-Id: I46c3e87eb38ab032df7c28b6144d1b2de1b9d4ef
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It was only called from one place. And we can optimize
it a bit by moving the contents to the caller. Besides, stray
relayouts without rebuilding (RebuildOption::LayoutOnly)
is no longer allowed.
Change-Id: Id63bd2d71969b81ea999caa9d4d331abf8999704
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since different tables can have different sized
models, it can also happen, as the views are being flicked
around, that some views temporarily end up with no
visible rows and columns in the viewport. When that
happens, we continually check if the columns should
become visible again, and if so, schedule a rebuild.
Change-Id: Ic84e47fd5d7968c1f1408eb122e38fa841e7aec7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The table and object models should be configurable, too, and Package
conceptually belongs to the delegate model.
Change-Id: Id928f14c5b378b6e7ffcbb98039192fa7c375fa7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
content view
Calling the base class implementation of fixup might move the content
view and start animations etc, which will cause glitches. So ensure
we don't do this when we adjust the content size internally.
Change-Id: I214a6ae2da0c21fd733ea884bccb5e77fc554615
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ib2f195780415836ebb03c151a6586fd7b0fb77b8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The model types are not part of the core QML runtime and should only be
loaded if you explicitly import them. We cannot enforce that in Qt5 as
some of them are available from the QtQml import, but we can change it
in Qt6.
Change-Id: I1e49e84d748e352537ec2d4af901c034c91d038f
Reviewed-by: Erik Verbruggen <erik.verbruggen@me.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: I5d2c3da38df35922b2147c3c0bc55c6c3bae2fe5
|
| |\|
| | |
| | |
| | | |
Change-Id: Ic008bf9223a9ac293c925044355ff218f7ed7f78
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
qCInfo is enabled by default, so this turns into noise for users.
Task-number: QTBUG-70083
Change-Id: Ie7f50d393055846bd2f9935c2bbe72830b1b24a3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Used to store columnWidths and rowHeights.
Change-Id: Id66fba9de05afa2c4df15761fb004b4f046fe103
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If you put two tables inside an async loader, with one being
the syncView for the other, the syncView child will start
loading items async simultaneously with the syncView.
This is unnecessary, and steals loading resources, since
the child will have to rebuild anyway once the syncView has
completed loading. So return early from the recursiveUpdateTable
call before handling the children if we detect that the parent
is not done.
Change-Id: I8c0badaf3cfa3a353a650e5f38f381bf9a7b98f9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qv4compilercontext.cpp
src/qml/qml/qqmlmetatype.cpp
Change-Id: I02e0216961b92ff68a3f91a70edc33fe9e8db147
|
| |\|
| | |
| | |
| | | |
Change-Id: I552629813ea8100d04ea19e51fe7198931082e19
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In handlePointerEventImpl, there is the call
d->centroid.reset(d->currentPoints);
with the expectation that currentPoints is not empty. But we weren't
populating it in case of a native gesture.
It still ends up being empty at the end of the gesture, but it's
normal to return false from wantsPointerEvent() when there are no
eligible points.
Fixes: QTBUG-70083
Change-Id: I12ca6460a24d2eb6c44a639f83ce3ff17eb37613
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |\|
| | |
| | |
| | | |
Change-Id: I2fea101de38922d34088c6eca0e256ec167ad118
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Store PointVelocityData by value in the QMap to avoid leaking memory.
This also appears to be slightly faster than heap allocation, with
the struct being relatively small (24 or 32 bytes depending on qreal).
Fixes: QTBUG-73182
Change-Id: Ibd9374746b76fd5b78c23283d278b6af42907c96
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It can be used to change any qreal property of its target Item in
response to wheel rotation, or it can be used in other ways that involve
bindings but without a target item.
[ChangeLog][QtQuick][Event Handlers] Added WheelHandler, which handles
mouse wheel rotation by modifying arbitrary Item properties.
Fixes: QTBUG-68119
Change-Id: I247e2325ee993cc1b91a47fbd6c4ba0ffde7ad49
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog][Qt Labs Animation] Added the BoundaryRule QML type, a
PropertyValueInterceptor that restricts the range of values a numeric
property can have, applies "resistance" when the value is overshooting,
and provides the ability to animate it back within range.
Change-Id: I677b407a351c12b0c5b23c34a45933154310c2cd
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
calculateTopLeft() takes care of finding which cell should be
the 'corner stone' that needs to be loaded first when doing
a rebuild. When we have a syncView, the top left cell should
match the top left cell of the syncView, so the logic needs
to change quite a bit to take this into account.
Change-Id: Ia0b621a3155bbd113fa37c2ed585f16627d46443
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now that several table views can stay in sync through the
syncView parent-child chain, we also need to ensure that the
position of the content views stays in sync. This patch will
recursively go through all connected views when one of the
views are moved and set the same position on them all according
to the syncDirection flag.
Change-Id: I5a5b8e795426484eeab3771f6c8d4c9b7da046eb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now that a TableView can be inside a syncView hierarchy, we
cannot update a table in isolation, but need to coordinate
this with the other views. It's especially important that
we update a parent syncView before a child syncView, to
ensure that the parent has calculated all the necessary
columns width and row heights. For that reason, we always
update the table views starting from the top.
Change-Id: Iba8ae7d28fa0bb2fbbad9f8fc7aa198e15b91872
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Ensure that properties that has to do with the layout
stays in sync with the syncView. This is currently
rowSpacing, columnSpacing, rowHeight, columnWidth,
contentWidth and contentHeight.
Change-Id: I5af29d7be6c30cefbfa7d2353f53359907c9405b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Make two sub-sections: C++ and QML
- Add a TableModel example to the QML section
Change-Id: Ib391b4c0a78e11f5130944b6ac99e20a5982a453
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This property can be set to point to another TableView.
If set, this TableView will be synchronized to the
other table with respect to flicking, column width, row
heights, spacing, etc. This logic is needed as a foundation
for the upcoming HeaderView.
Upcoming patches will implement this logic (together with
autotests) gradually.
Change-Id: Ic7dea8e1d1aa46bbb3ea6e795953a65c96c25cc6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/qml/qqmlmetatype.cpp
Change-Id: Ieff61c076e46eb50a059c8b0210f7f4d7ce0cbcf
|
| |\|
| | |
| | |
| | | |
Change-Id: I9ef4be23bfe35aa48d4c65d4159e72c527943845
|
| | |\
| | | |
| | | |
| | | | |
Change-Id: Ie2e6a4af1953cb5d7965b95090d369e7433ceb85
|