QQuickItemParticle: Only delete owned particles
authorAlan Alpert <aalpert@blackberry.com>
Mon, 26 Jan 2015 19:50:11 +0000 (11:50 -0800)
committerAlan Alpert <aalpert@blackberry.com>
Wed, 4 Feb 2015 17:04:16 +0000 (17:04 +0000)
commit41db7b10e404f912ee7e7577a1fdf32996491162
treea25321b1b8ebe2ff278e6b88a2c7c80981d8b04c
parent7be21bcde5afed368f191df6568dc16fac7b394a
QQuickItemParticle: Only delete owned particles

A common pattern for ItemParticle (as shown in the particleview.qml
example) is to use it to manage movement of a model's delegates. In such
a case item management is handled by the user code (which bridges the
needs of the Model and the View) and deleting the items in ItemParticle
quickly leads to crashes.

This change maintains (and improves, due to handling resets) the
deletion of delegates created by the ItemParticles, as shown in
delegates.qml. This example was expanded with a click to reset feature
so as to more clearly see the impact of resets.

Task-number: QTBUG-37486
Change-Id: I9de935034c11a7dd2abdd60e7b3bd42867dede9c
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
examples/quick/particles/itemparticle/delegates.qml
src/particles/qquickitemparticle.cpp
src/particles/qquickitemparticle_p.h
tests/auto/particles/qquickitemparticle/data/managed.qml [new file with mode: 0644]
tests/auto/particles/qquickitemparticle/data/unmanaged.qml [new file with mode: 0644]
tests/auto/particles/qquickitemparticle/tst_qquickitemparticle.cpp