From ffea8e98f712a8e2158a2bb843a649e96eea991e Mon Sep 17 00:00:00 2001 From: Nils Jeisecke Date: Mon, 7 Jan 2013 16:54:33 +0100 Subject: Update roleNames in QAbstractProxyModel if sourceModel resets. If a sourceModel resets, it's roleNames might have changed. This is most likely the case if sourceModel itself is also a proxy model of which the sourceModel was changed. Task-number: QTBUG-28982 Change-Id: I102788f2c9bf97b4002b350673f9219e32e7a052 Reviewed-by: Nils Jeisecke Reviewed-by: Stephen Kelly --- src/corelib/itemmodels/qabstractproxymodel.cpp | 9 +++++++++ src/corelib/itemmodels/qabstractproxymodel.h | 3 +++ 2 files changed, 12 insertions(+) (limited to 'src/corelib') diff --git a/src/corelib/itemmodels/qabstractproxymodel.cpp b/src/corelib/itemmodels/qabstractproxymodel.cpp index ed5d0e9a85..d5887a52d5 100644 --- a/src/corelib/itemmodels/qabstractproxymodel.cpp +++ b/src/corelib/itemmodels/qabstractproxymodel.cpp @@ -147,6 +147,15 @@ void QAbstractProxyModel::setSourceModel(QAbstractItemModel *sourceModel) } } +/*! + Clears the roleNames of this proxy model. +*/ +void QAbstractProxyModel::resetInternalData() +{ + Q_D(QAbstractProxyModel); + d->roleNames = d->model->roleNames(); +} + /*! Returns the model that contains the data that is available through the proxy model. */ diff --git a/src/corelib/itemmodels/qabstractproxymodel.h b/src/corelib/itemmodels/qabstractproxymodel.h index a7c2b3383d..9b26d6cead 100644 --- a/src/corelib/itemmodels/qabstractproxymodel.h +++ b/src/corelib/itemmodels/qabstractproxymodel.h @@ -101,6 +101,9 @@ Q_SIGNALS: #endif ); +protected Q_SLOTS: + void resetInternalData(); + protected: QAbstractProxyModel(QAbstractProxyModelPrivate &, QObject *parent); -- cgit v1.2.3