diff --git a/src/declarativeimports/core/datamodel.cpp b/src/declarativeimports/core/datamodel.cpp index cbbe3d5e1..8be4abe95 100644 --- a/src/declarativeimports/core/datamodel.cpp +++ b/src/declarativeimports/core/datamodel.cpp @@ -53,6 +53,7 @@ void SortFilterModel::syncRoleNames() m_roleIds.clear(); const QHash rNames = roleNames(); + m_roleIds.reserve(rNames.count()); for (auto i = rNames.constBegin(); i != rNames.constEnd(); ++i) { m_roleIds[i.value()] = i.key(); } @@ -62,12 +63,9 @@ void SortFilterModel::syncRoleNames() setSortRole(m_sortRole); } -int SortFilterModel::roleNameToId(const QString &name) +int SortFilterModel::roleNameToId(const QString &name) const { - if (!m_roleIds.contains(name)) { - return Qt::DisplayRole; - } - return m_roleIds.value(name); + return m_roleIds.value(name, Qt::DisplayRole); } void SortFilterModel::setModel(QAbstractItemModel *model) diff --git a/src/declarativeimports/core/datamodel.h b/src/declarativeimports/core/datamodel.h index f06a51e18..18886193f 100644 --- a/src/declarativeimports/core/datamodel.h +++ b/src/declarativeimports/core/datamodel.h @@ -138,7 +138,7 @@ Q_SIGNALS: Q_REVISION(1) void filterCallbackChanged(const QJSValue &); protected: - int roleNameToId(const QString &name); //FIXME TODO KF6: This should have been const. + int roleNameToId(const QString &name) const; bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const Q_DECL_OVERRIDE; protected Q_SLOTS: