diff options
author | BogDan Vatra <bogdan@kdab.com> | 2016-08-04 11:43:44 +0300 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2016-08-04 11:48:51 +0000 |
commit | bc4ce55fff78610c15d6c8a0cb97526889cb5de3 (patch) | |
tree | bec84d8f92767226c2bdf305bbbe25fc1898bd81 /src | |
parent | f200d5e824761d583ecdcf5cf952b14ec5693049 (diff) |
Don't call virtual functions with data from an old model
Change-Id: I4f1ec56ce722110042f72761bbc2976e580b7149
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/itemviews/qabstractitemview.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index cb40eae9a2..d36431c716 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -769,8 +769,10 @@ void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel) QModelIndex oldCurrentIndex; if (d->selectionModel) { - oldSelection = d->selectionModel->selection(); - oldCurrentIndex = d->selectionModel->currentIndex(); + if (d->selectionModel->model() == selectionModel->model()) { + oldSelection = d->selectionModel->selection(); + oldCurrentIndex = d->selectionModel->currentIndex(); + } disconnect(d->selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(selectionChanged(QItemSelection,QItemSelection))); |