When assigning an empty model to e.g. a ListView after component
initialization has been completed, currentIndex is now correctly
set to -1.
Change-Id: I540c034944009ccb8894bf84f400658ef9f0371f
Task-number: QTBUG-32838
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Consider the old geometry, not the new one to check if an item
was outside the viewport or not
Change-Id: I108412d560faf86130044f3d091254c07af0c004
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Applying changes in the getters can lead to binding loops, and is
currently inconsistently applied. Removing the applyPendingChanges calls
from remaining getters, and adding a forceLayout() function for cases
where the immediate-apply behavior is needed.
Task-number: QTBUG-30555
Parts-of-patch-by: Albert Astals Cid
Change-Id: I64632601e02f2a53060296ab7739577a749d916f
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
And don't check if the currentItem is empty before calling
applyPendingChanges().
And an autotest. (Patch from Steffen Imhof)
Task-number: QTBUG-30227
Change-Id: Ia16362a6d0dce771f20772929c32e9306ed0e0f9
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
This is needed for proper support of non-GUI instantiators in QtQml.
Only private C++ classes are affected. Aside from name changes, model
classes now operate on QObjects instead of QQuickItems, leading to minor
changes in the implementation of QtQuick classes using them.
The old QML type names will still be registered in the QtQuick import
for the forseeable future, but pointing to the new classes. The new QML
types will be added in a second commit.
Classes Affected:
QQuickVisualDataGroup -> QQmlDataGroup
QQuickVisualDataModel -> QQmlDelegateModel
QQuickVisualItemModel -> QQmlObjectModel
QQuickVisualModel -> QQmlInstanceModel
QQuickChangeSet -> QQmlChangeSet
QQuickListAccessor -> QQmlListAccessor
QQuickListCompositor -> QQmlListCompositor
QQuickPackage -> QQuickPackage (just moved for now)
Change-Id: Ia19e630e53bfa9e5d459e289596cd11df1ea3930
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
They're already in the QtQml module, but were left in the QtQuick import
because they were considered to be of minimal use without QtQuick types.
QtQml types are being developed would could make ListModel useful
without QtQuick, indicating that they should no longer be considered
QtQuick depedent.
Change-Id: I31499f2cc23baf4bc70fb451ba164408bed89ff6
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Add QQmlMessageHandler class that can be used to record messages
into a QStringList. It also makes sure that the old message
handler is reinstalled if the test fails.
Task-number: QTBUG-28611
Change-Id: I0fff7bc11e188cf47178d9573e5f2eead693bc10
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Abbreviated property names are less descriptive so we don't have
many of them. Might as well be consistent. QWindow::pos was already
renamed.
Change-Id: Ib52673e68e7dc902b2f8942dba6b899074b2538b
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Depends on patch Ie4424ec15fbdef6b29b137f90a2ae33f173edd21 in qtbase.
Change-Id: I9614cc2c7ed119c663b3f6f99267483e291e529c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Change copyrights and license headers from Nokia to Digia
Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This allows the view to be positioned on a snap boundary, which is
generally what is wanted when strict highlight mode s set or snapping
is enabled.
Task-number: QTBUG-26605
Change-Id: I6288dc8be4ff16c412b56ab449b6a9fb7b7ea889
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Past test failures are likely to have been caused by mouse events
passing over from previous tests and causing a double click rather
than a press for a flick. This should pass now as
QQuickViewTestUtil::flick() now calls QTest::mouseMove() instead of
sending MouseMove events to the window.
Task-number: QTBUG-24338
Change-Id: I68f7f3f91d189ed3ead01c8646570c39ba86f1d4
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
When the model is changed reset currentIndex back to 0.
Task-number: QTBUG-26604
Change-Id: I1934e083819537d416acd85c75362daff382aa04
Reviewed-by: Bea Lam <bea.lam@nokia.com>
- Replace by qWaitForWindowExposed() or
qWaitForWindowActive() where applicable.
- Use QVERIFY to verify success.
- Stabilize some tests by checking for 'active',
add missing call to show().
Change-Id: I6cae063e44a3839760ed9f61dacb26cd1717118d
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
QQuickCanvas is now called QQuickWindow
QQuickCanvas::rootItem is now QQuickWindow::contentItem
QQuickItem::canvas is now QQuickItem::window
QQuickItem::ItemChangeData::canvas is also renamed window
QQuickCanvas::grabFrameBuffer is now QQuickWindow::grabWindow
The functions related to the color property have dropped the clear from
their names.
The first three changes have interim compatibility measures in place to
ease the transition.
Change-Id: Id34e29546a22a74a7ae2ad90ee3a8def6fc541d2
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Prepare a change in qtbase in which the implementation
of qWaitForWindowShown() will be changed to
qWaitForWindowExposed() instead of qWaitForWindowActive().
Try to stabilize further tests by introduing
wait functions instead of calls to qApp->processEvents().
Change-Id: I9825885430d78be1610a3fe20023fad24aaacba9
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Make section header updates part of the layout process.
Task-number: QTBUG-23298
Change-Id: I4586bc58bc195fcc47f6db79346727eb6e3d3845
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Delete all allocated section items before doing an update when the
section delegate is changed.
Task-number: QTBUG-24899
Change-Id: I09dc7a1c602a49ad7bb37512a7e5116392259457
Reviewed-by: Martin Jones <martin.jones@nokia.com>
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>