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 | |
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>
-rw-r--r-- | src/declarative/items/qsggridview.cpp | 6 | ||||
-rw-r--r-- | src/declarative/items/qsglistview.cpp | 6 | ||||
-rw-r--r-- | src/qtquick1/graphicsitems/qdeclarativegridview.cpp | 6 | ||||
-rw-r--r-- | src/qtquick1/graphicsitems/qdeclarativelistview.cpp | 6 |
4 files changed, 12 insertions, 12 deletions
diff --git a/src/declarative/items/qsggridview.cpp b/src/declarative/items/qsggridview.cpp index ec22761406..ac86ebbb7f 100644 --- a/src/declarative/items/qsggridview.cpp +++ b/src/declarative/items/qsggridview.cpp @@ -1280,7 +1280,7 @@ void QSGGridView::moveCurrentIndexRight() void QSGGridView::itemsInserted(int modelIndex, int count) { Q_D(QSGGridView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; int index = d->visibleItems.count() ? d->mapFromModel(modelIndex) : 0; @@ -1411,7 +1411,7 @@ void QSGGridView::itemsInserted(int modelIndex, int count) void QSGGridView::itemsRemoved(int modelIndex, int count) { Q_D(QSGGridView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; d->itemCount -= count; @@ -1493,7 +1493,7 @@ void QSGGridView::itemsRemoved(int modelIndex, int count) void QSGGridView::itemsMoved(int from, int to, int count) { Q_D(QSGGridView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->isValid()) return; d->updateUnrequestedIndexes(); diff --git a/src/declarative/items/qsglistview.cpp b/src/declarative/items/qsglistview.cpp index 15042bea91..d9792d1770 100644 --- a/src/declarative/items/qsglistview.cpp +++ b/src/declarative/items/qsglistview.cpp @@ -1578,7 +1578,7 @@ void QSGListView::updateSections() void QSGListView::itemsInserted(int modelIndex, int count) { Q_D(QSGListView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; d->updateUnrequestedIndexes(); d->moveReason = QSGListViewPrivate::Other; @@ -1718,7 +1718,7 @@ void QSGListView::itemsInserted(int modelIndex, int count) void QSGListView::itemsRemoved(int modelIndex, int count) { Q_D(QSGListView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->model || !d->model->isValid()) return; d->moveReason = QSGListViewPrivate::Other; d->updateUnrequestedIndexes(); @@ -1815,7 +1815,7 @@ void QSGListView::itemsRemoved(int modelIndex, int count) void QSGListView::itemsMoved(int from, int to, int count) { Q_D(QSGListView); - if (!isComponentComplete()) + if (!isComponentComplete() || !d->isValid()) return; d->updateUnrequestedIndexes(); 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(); |