From 7b9d8b6b98378cb69b4276f4bc49331556a394c0 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 30 Apr 2010 16:13:07 +1000 Subject: When a model delegate is released, remove it from the scene immediately. Task-number: QTBUG-10289 --- src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index 43cafe3..2addc77 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -55,6 +55,7 @@ #include #include +#include #include #include #include @@ -966,10 +967,8 @@ QDeclarativeVisualDataModel::ReleaseFlags QDeclarativeVisualDataModel::release(Q if (inPackage) { emit destroyingPackage(qobject_cast(obj)); } else { - if (item->hasFocus()) - item->clearFocus(); - item->setOpacity(0.0); - static_cast(item)->setParentItem(0); + if (item->scene()) + item->scene()->removeItem(item); } stat |= Destroyed; obj->deleteLater(); -- cgit v0.12