diff options
author | Martin Jones <martin.jones@nokia.com> | 2011-08-02 13:58:49 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-08-02 08:50:21 +0200 |
commit | 94b44b19edbb501d4cbe7519fb7202ead81746cc (patch) | |
tree | b9bd8b0f3a998ce1e7557685eaa9feb574c6660e /src/qtquick1/graphicsitems | |
parent | 1b65161042108ee46ca42331dacc2b66b63c6b4e (diff) |
Views with no delegate crash when items are inserted.
Check that we have a valid VisualModel before reacting to model
changes.
Change-Id: I6107e8fb8942a3625e501ab549a337f1affd4fbd
Fixes: QTBUG-20640
Reviewed-on: http://codereview.qt.nokia.com/2481
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'src/qtquick1/graphicsitems')
-rw-r--r-- | src/qtquick1/graphicsitems/qdeclarativegridview.cpp | 6 | ||||
-rw-r--r-- | src/qtquick1/graphicsitems/qdeclarativelistview.cpp | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/qtquick1/graphicsitems/qdeclarativegridview.cpp b/src/qtquick1/graphicsitems/qdeclarativegridview.cpp index 63b907b022..3375afff51 100644 --- a/src/qtquick1/graphicsitems/qdeclarativegridview.cpp +++ b/src/qtquick1/graphicsitems/qdeclarativegridview.cpp @@ -2748,7 +2748,7 @@ void QDeclarative1GridView::trackedPositionChanged() void QDeclarative1GridView::itemsInserted(int modelIndex, int count) { Q_D(QDeclarative1GridView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; int index = d->visibleItems.count() ? d->mapFromModel(modelIndex) : 0; @@ -2879,7 +2879,7 @@ void QDeclarative1GridView::itemsInserted(int modelIndex, int count) void QDeclarative1GridView::itemsRemoved(int modelIndex, int count) { Q_D(QDeclarative1GridView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; d->itemCount -= count; @@ -2979,7 +2979,7 @@ void QDeclarative1GridView::destroyRemoved() void QDeclarative1GridView::itemsMoved(int from, int to, int count) { Q_D(QDeclarative1GridView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->isValid()) return; QHash<int,FxGridItem1*> moved; diff --git a/src/qtquick1/graphicsitems/qdeclarativelistview.cpp b/src/qtquick1/graphicsitems/qdeclarativelistview.cpp index c58543c735..0474591bba 100644 --- a/src/qtquick1/graphicsitems/qdeclarativelistview.cpp +++ b/src/qtquick1/graphicsitems/qdeclarativelistview.cpp @@ -3195,7 +3195,7 @@ void QDeclarative1ListView::trackedPositionChanged() void QDeclarative1ListView::itemsInserted(int modelIndex, int count) { Q_D(QDeclarative1ListView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; d->updateUnrequestedIndexes(); d->moveReason = QDeclarative1ListViewPrivate::Other; @@ -3338,7 +3338,7 @@ void QDeclarative1ListView::itemsInserted(int modelIndex, int count) void QDeclarative1ListView::itemsRemoved(int modelIndex, int count) { Q_D(QDeclarative1ListView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; d->moveReason = QDeclarative1ListViewPrivate::Other; d->updateUnrequestedIndexes(); @@ -3453,7 +3453,7 @@ void QDeclarative1ListView::destroyRemoved() void QDeclarative1ListView::itemsMoved(int from, int to, int count) { Q_D(QDeclarative1ListView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->isValid()) return; d->updateUnrequestedIndexes(); |