From aeaf5d87ed0a41dd9f8265f9d88b34e233a89f74 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 13 Jul 2019 20:33:49 +0200 Subject: QAbstractItemModel: don't inherit QHash just to add elements Now that we can depend on C++11, use _WITH_ARGS and std::initializer_list. Saves ~400B in text size on optimized AMD64 GCC 9.1 Linux LTO builds. Change-Id: I37fce1c63a5f74f6dfc059febf0152ac93c8be7f Reviewed-by: David Faure --- src/corelib/itemmodels/qabstractitemmodel.cpp | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'src/corelib/itemmodels/qabstractitemmodel.cpp') diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp index 3e74e5a0c8..c5fb5b9fc5 100644 --- a/src/corelib/itemmodels/qabstractitemmodel.cpp +++ b/src/corelib/itemmodels/qabstractitemmodel.cpp @@ -532,21 +532,16 @@ void QAbstractItemModelPrivate::invalidatePersistentIndex(const QModelIndex &ind } } -namespace { - struct DefaultRoleNames : public QHash +using DefaultRoleNames = QHash; +Q_GLOBAL_STATIC_WITH_ARGS(DefaultRoleNames, qDefaultRoleNames, ( { - DefaultRoleNames() { - (*this)[Qt::DisplayRole] = "display"; - (*this)[Qt::DecorationRole] = "decoration"; - (*this)[Qt::EditRole] = "edit"; - (*this)[Qt::ToolTipRole] = "toolTip"; - (*this)[Qt::StatusTipRole] = "statusTip"; - (*this)[Qt::WhatsThisRole] = "whatsThis"; - } - }; -} - -Q_GLOBAL_STATIC(DefaultRoleNames, qDefaultRoleNames) + { Qt::DisplayRole, "display" }, + { Qt::DecorationRole, "decoration" }, + { Qt::EditRole, "edit" }, + { Qt::ToolTipRole, "toolTip" }, + { Qt::StatusTipRole, "statusTip" }, + { Qt::WhatsThisRole, "whatsThis" }, + })) const QHash &QAbstractItemModelPrivate::defaultRoleNames() { -- cgit v1.2.3