summaryrefslogtreecommitdiffstats
path: root/src/declarative/graphicsitems/qmlgraphicslistview.cpp
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2010-02-03 05:52:28 (GMT)
committerMartin Jones <martin.jones@nokia.com>2010-02-03 05:52:28 (GMT)
commit4c288190000ea6c9f7148d44e8e12d882256e217 (patch)
treecd6972dcdb9289adb7d653205e9f94b391395e01 /src/declarative/graphicsitems/qmlgraphicslistview.cpp
parentfb6cf75abfae111ab2a1c968ffd0c9b707109b10 (diff)
downloadQt-4c288190000ea6c9f7148d44e8e12d882256e217.zip
Qt-4c288190000ea6c9f7148d44e8e12d882256e217.tar.gz
Qt-4c288190000ea6c9f7148d44e8e12d882256e217.tar.bz2
Avoid crash on shutdown if model is destroyed before view.
Diffstat (limited to 'src/declarative/graphicsitems/qmlgraphicslistview.cpp')
-rw-r--r--src/declarative/graphicsitems/qmlgraphicslistview.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/declarative/graphicsitems/qmlgraphicslistview.cpp b/src/declarative/graphicsitems/qmlgraphicslistview.cpp
index ad0aa04..8fb7c84 100644
--- a/src/declarative/graphicsitems/qmlgraphicslistview.cpp
+++ b/src/declarative/graphicsitems/qmlgraphicslistview.cpp
@@ -210,7 +210,7 @@ class QmlGraphicsListViewPrivate : public QmlGraphicsFlickablePrivate, private Q
public:
QmlGraphicsListViewPrivate()
- : model(0), currentItem(0), orient(QmlGraphicsListView::Vertical)
+ : currentItem(0), orient(QmlGraphicsListView::Vertical)
, visiblePos(0), visibleIndex(0)
, averageSize(100.0), currentIndex(-1), requestedIndex(-1)
, highlightRangeStart(0), highlightRangeEnd(0)
@@ -495,7 +495,7 @@ public:
virtual void flickX(qreal velocity);
virtual void flickY(qreal velocity);
- QmlGraphicsVisualModel *model;
+ QGuard<QmlGraphicsVisualModel> model;
QVariant modelVariant;
QList<FxListItem*> visibleItems;
QHash<QmlGraphicsItem*,int> unrequestedItems;
@@ -615,7 +615,7 @@ FxListItem *QmlGraphicsListViewPrivate::createItem(int modelIndex)
void QmlGraphicsListViewPrivate::releaseItem(FxListItem *item)
{
Q_Q(QmlGraphicsListView);
- if (!item)
+ if (!item || !model)
return;
if (trackedItem == item) {
const char *notifier1 = orient == QmlGraphicsListView::Vertical ? SIGNAL(yChanged()) : SIGNAL(xChanged());