summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2010-04-14 23:35:23 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2010-04-16 01:57:31 (GMT)
commit2f89bb3c6ec37178ab7bed0e172b61d017e33d75 (patch)
tree8a02e090a44189d9fefffd3b8186f42f5210929f
parent1becce93326a78b3d0a5ffb45ce24211b65ec7f9 (diff)
downloadQt-2f89bb3c6ec37178ab7bed0e172b61d017e33d75.zip
Qt-2f89bb3c6ec37178ab7bed0e172b61d017e33d75.tar.gz
Qt-2f89bb3c6ec37178ab7bed0e172b61d017e33d75.tar.bz2
Don't create delegates when destroying view.
Task-number: QTBUG-9840 (cherry picked from commit 114f627d14e7c4f06f82a7286c38c78388fe7623)
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 622da5b..5743d99 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -521,7 +521,6 @@ void QDeclarativeListViewPrivate::clear()
trackedItem = 0;
minExtentDirty = true;
maxExtentDirty = true;
- setPosition(0);
itemCount = 0;
}
@@ -708,6 +707,7 @@ void QDeclarativeListViewPrivate::layout()
layoutScheduled = false;
if (!isValid()) {
clear();
+ setPosition(0);
return;
}
updateSections();
@@ -1416,6 +1416,7 @@ void QDeclarativeListView::setModel(const QVariant &model)
disconnect(d->model, SIGNAL(destroyingItem(QDeclarativeItem*)), this, SLOT(destroyingItem(QDeclarativeItem*)));
}
d->clear();
+ d->setPosition(0);
d->modelVariant = model;
QObject *object = qvariant_cast<QObject*>(model);
QDeclarativeVisualModel *vim = 0;
@@ -1770,6 +1771,7 @@ void QDeclarativeListView::setOrientation(QDeclarativeListView::Orientation orie
setFlickDirection(HorizontalFlick);
}
d->clear();
+ d->setPosition(0);
refill();
emit orientationChanged();
d->updateCurrent(d->currentIndex);
@@ -2791,6 +2793,7 @@ void QDeclarativeListView::modelReset()
{
Q_D(QDeclarativeListView);
d->clear();
+ d->setPosition(0);
refill();
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);