From 0023948f831f0303618fdb94935de9a560de5553 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 26 Nov 2018 09:56:42 +0100 Subject: Remove the model pointer from QPersistentModelIndexData MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It can be just as well received from the QModelIndex member. Change-Id: I72f930206ca2afed730009778ded0e56e4e6f278 Reviewed-by: Jędrzej Nowacki --- src/corelib/itemmodels/qabstractitemmodel.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'src/corelib/itemmodels/qabstractitemmodel.cpp') diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp index e816add91d..af08867dd4 100644 --- a/src/corelib/itemmodels/qabstractitemmodel.cpp +++ b/src/corelib/itemmodels/qabstractitemmodel.cpp @@ -77,7 +77,7 @@ void QPersistentModelIndexData::destroy(QPersistentModelIndexData *data) { Q_ASSERT(data); Q_ASSERT(data->ref.load() == 0); - QAbstractItemModel *model = const_cast(data->model); + QAbstractItemModel *model = const_cast(data->index.model()); // a valid persistent model index with a null model pointer can only happen if the model was destroyed if (model) { QAbstractItemModelPrivate *p = model->d_func(); @@ -512,10 +512,8 @@ QAbstractItemModel *QAbstractItemModelPrivate::staticEmptyModel() void QAbstractItemModelPrivate::invalidatePersistentIndexes() { - for (QPersistentModelIndexData *data : qAsConst(persistent.indexes)) { + for (QPersistentModelIndexData *data : qAsConst(persistent.indexes)) data->index = QModelIndex(); - data->model = 0; - } persistent.indexes.clear(); } @@ -530,7 +528,6 @@ void QAbstractItemModelPrivate::invalidatePersistentIndex(const QModelIndex &ind QPersistentModelIndexData *data = *it; persistent.indexes.erase(it); data->index = QModelIndex(); - data->model = 0; } } @@ -863,7 +860,6 @@ void QAbstractItemModelPrivate::rowsRemoved(const QModelIndex &parent, QPersistentModelIndexData *data = *it; persistent.indexes.erase(persistent.indexes.constFind(data->index)); data->index = QModelIndex(); - data->model = 0; } } @@ -958,7 +954,6 @@ void QAbstractItemModelPrivate::columnsRemoved(const QModelIndex &parent, QPersistentModelIndexData *data = *it; persistent.indexes.erase(persistent.indexes.constFind(data->index)); data->index = QModelIndex(); - data->model = 0; } } @@ -3294,8 +3289,6 @@ void QAbstractItemModel::changePersistentIndex(const QModelIndex &from, const QM data->index = to; if (to.isValid()) d->persistent.insertMultiAtEnd(to, data); - else - data->model = 0; } } @@ -3328,8 +3321,6 @@ void QAbstractItemModel::changePersistentIndexList(const QModelIndexList &from, data->index = to.at(i); if (data->index.isValid()) toBeReinserted << data; - else - data->model = 0; } } -- cgit v1.2.3