diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index 62b2937..2d2e053 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -679,7 +679,10 @@ void QAbstractItemView::setModel(QAbstractItemModel *model) connect(d->model, SIGNAL(modelReset()), this, SLOT(reset())); connect(d->model, SIGNAL(layoutChanged()), this, SLOT(_q_layoutChanged())); } - setSelectionModel(new QItemSelectionModel(d->model, this)); + + QItemSelectionModel *selectionModel = new QItemSelectionModel(d->model, this); + setSelectionModel(selectionModel); + connect(d->model, SIGNAL(destroyed()), selectionModel, SLOT(deleteLater())); reset(); // kill editors, set new root and do layout }