Schedule a new layout after the section property is changed to correct
item positions if section headers are added or removed.
Task-number: QTBUG-24900
Change-Id: I7e46ec6dc00e5a810029396a4c5ca4e87ee1d94d
Reviewed-by: Martin Jones <martin.jones@nokia.com>
This reverts commit 18fb5506d5.
Without these properties there's no way to set a constant
movement speed.
Change-Id: I49cd648846f801eb479ecce8cde09ff49ea11736
Reviewed-by: Martin Jones <martin.jones@nokia.com>
This was causing a crash on exit.
Task-number: QTBUG-23605
Change-Id: I96a38f383a180f8aaf5177ad6d7183f9b0b5e85a
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
If asynchronous item creation finishes while the content area of a
ListView has been dragged full outside the visible area a full refill
is triggered which can overwrite the requested index and potentially
result in a single delegate item being assigned to multiple view items
and later being doubly released. Only create the view item object in
the createItem function to prevent this from happening.
Secondly only reset the visible items if jumping outside the buffer
range rather than just the fill range to prevent churn when the list
only contains buffered items.
Task-number: QTBUG-26232
Change-Id: I5bce845898ef5f699f34afc268594ef38e01d6a3
Reviewed-by: Martin Jones <martin.jones@nokia.com>
This is consistent with the naming of other x/y properties, e.g.
contentX/Y, relativeX/Y etc.
Change-Id: I5159f8e54a6fda6a1f83a563ea9db47c3b8af238
Reviewed-by: Martin Jones <martin.jones@nokia.com>
ListView should only have duration-type properties (i.e.
highlightMoveDuration and highlightResizeDuration) as it's unnecessary
to have both duration and speed properties for the highlight animation.
(PathView and GridView only have the duration-related properties.)
Change-Id: I1b94599e3e89afe6488ce2a882c2802354a859fe
Reviewed-by: Martin Jones <martin.jones@nokia.com>
- Unused variables and test data.
- () around operator &&.
- Conversion of false to 0-pointer where QVariant was intended.
- Missing enumeration value.
- Remove duplicated qqmlecmascript entry from qml.pro
(has an internal check for no-widgets).
Change-Id: Ie030167e22bce26e3988a4406c630fb460f61a3c
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
762b4d9011 introduced a regression by
setting the item parent after completion. This was to avoid rendering
an incubated object before completion. However this breaks bindings.
Restore setting the item parent before completion, and ensure items are
not rendered until completed.
Change-Id: Ifc9d0c34ee62e687889c32ffab7c091b4c8cc470
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Setting a cacheBuffer introduced more work for the scenegraph due to
cached delegates' visibility being toggled. Changing visibility is
expensive as it is proagated to all children. Introduce a cheap
method of hiding a branch instead.
Also avoid initiating incubation in the same frame as a completed
creation.
Change-Id: I573bcf37f441f96a7502d445be50ef4301f217d5
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Ensure that a valid contentHeight/contentWidth is set regardless
of whether there is a valid model.
Change-Id: I546683c7571a1379e3ca2ef285435ad48319e8e4
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Return the Referenced flag when the view has outstanding references
otherwise it will attempt to hide an item if believes shouldn't be
visible.
Task-number: QTBUG-25849
Change-Id: I7387ab8322a1cd7f3386685086b2b8ad10c8b4f0
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Always clear the layoutScheduled flag on a refill even if there are no
items to create, otherwise future layouts won't be scheduled because
it appears one is already pending.
Fixes an issue in the dragselection example where items that should
have moved to the PathView instead disappeared.
Change-Id: I4302b5b43184c697a78f5c09dc3811326e2271ca
Reviewed-by: Martin Jones <martin.jones@nokia.com>
This keeps object ownership within the context the items were created
in and simplifies lifetime management as the VisualDataModel has sole
license to delete objects and doesn't have to keep guards against a
view and all it's children being deleted.
Delegates are still reparented in the item heirarchy.
Change-Id: Ife5afdfe294a5a8ca1ca3638a086f72452e4915c
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Headers and footers are given a default z value. This value
should be set between Component beginCreate() and completeCreate()
to avoid overwriting any binding in the header or footer item
that has already set the 'z' value.
Change-Id: I8e3ee97232d99500a32f2d77d2b663016eb404f7
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Currently xOrigin is reversed for right-to-left and yOrigin is reversed
for bottom-to-top. This is wrong since xOrigin and yOrigin come from
Flickable so they should keep that meaning, i.e. the top left corner of
where the content begins, in ListView and GridView.
Change-Id: I88c77fadd1cf784f4b4d62677168b84675e921b0
Reviewed-by: Martin Jones <martin.jones@nokia.com>
If visibleItems.first() changes size in a ListView, the size change
should be made in the direction of the content flow. This was not
working correctly for layouts other than the default vertical+LTR
layout. This patch fixes the issue for other layouts and also fixes
resizing of implicitly sized delegates (e.g. positioners) within the
default layout.
Change-Id: Ib1d84ce000a3a341fe617cf644420dc5d589d577
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Don't run for items added in Component.onCompleted.
Change-Id: I58745ab989efae168d036875cb2fb88e3e2db0c3
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Provide verticalLayoutDirection property with TopToBottom
and BottomToTop values.
Change-Id: If6f0da5dd4735036162868d391852a661854de5b
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
If there are pending changes when the ListView viewport changes then
do a full layout instead of a refill. Likewise for GridView and when
animations finish or the cacheBuffer size changes.
Change-Id: I57a2b01fee5729381558af366dad24ba26c223ef
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Allows use of mixed case model data without having to add a
special role just for sectioning.
Change-Id: I0a747e51542b5bf0f9db8fc2732882928a6cc676
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Otherwise, changes received by a view during layout() may
override the changes that are currently being processed.
Change-Id: Iabc4db682f85ceb7d04c3f7442fb6c98ebdb94f1
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
The behaviour for considering left and right margins was inconsistent
in views with a right to left layout; these values were reversed for
extent calculations but not for general positioning. With this change
the left and right margins are never reversed in a right-to-left layout,
so minXExtent and maxXExtent calculations always use startMargin
and endMargin respectively, regardless of layout direction.
Also fixes calculation of endOffset in trackedPositionChanged() when
in horizontal orientation.
Change-Id: Ie00e3d4c2bd38d8fe6ac0213702206b88bfa895e
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Geometry listeners were called for deleted header/footer.
Change-Id: I47854178232f8a4ab5e19a931901b49741fec388
Reviewed-by: Bea Lam <bea.lam@nokia.com>
If the model is cleared or replaced with an empty one,
the section headers should be released.
Change-Id: Ia2f070c312593743b2c5332a6c69facaf222ee6d
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Makes the tests run faster since we're not waiting for a
window to appear all the time.
Change-Id: Ibff3706873dbad2f92d2135eae260368f4f4bb10
Reviewed-by: Bea Lam <bea.lam@nokia.com>
They should only move if they actually change from the last set
position, and not if they are simply changing from their current item
position, as that is wrong during an animation.
This also cleans up some code for resetting the transition data.
Task-number: QTBUG-24586
Change-Id: I0a6635903975ebc40d5cf8398b943a9de92d4493
Reviewed-by: Martin Jones <martin.jones@nokia.com>
refill() functionality should reposition items immediately, else
removeNonVisibleItems() sees different positions from those added in
addVisibleItems() if an item is animating.
Change-Id: Ib9904e08bf92b18fd4b712270c0ab69e9a113e04
Reviewed-by: Martin Jones <martin.jones@nokia.com>
If the delegate's size changes in componentComplete and all
items are flicked out of view, an incorrect jump calculation
in addVisibleItems() resulted in a new delegate being created
in the wrong position, and retriggering the jump calculation,
which resulted in a new delegate being created in the wrong
position, and retriggering the jump...
Also fixed currentItem visibility.
Change-Id: Iad5f211c4fc5eed9c009d51a0ce3b58181a7b36e
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Target items are now set from QQuickViewItem::prepareTransition()
instead of QQuickItemView and QQuickPositioner to ensure they are
for a displaced transition even if there is no matching target
transition.
Task-number: QTBUG-24535
Change-Id: I0a6c7e3c6198786527014d421b96fc562c6186dc
Reviewed-by: Martin Jones <martin.jones@nokia.com>
If it does not, itemX() or itemY() will still return the current
transition's 'to' position instead of the nextTransitionTo pos that was
scheduled for the next transition (which the item now has moved to
using the direct setPos() method).
Also refactor prepareTransition() to always move the item directly to
the nextTransitionTo if transition is not going ahead.
Also fix some broken test code.
Task-number: QTBUG-24523
Change-Id: I2e536fbc0da2acbf96fdf2d177190a8968f7fdb1
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Symbols beginning with QDeclarative are already exported
by the quick1 module.
Users can apply the bin/rename-qtdeclarative-symbols.sh
script to modify client code using the previous names of the
renamed symbols.
Task-number: QTBUG-23737
Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66
Reviewed-by: Martin Jones <martin.jones@nokia.com>