diff --git a/part/archivemodel.h b/part/archivemodel.h --- a/part/archivemodel.h +++ b/part/archivemodel.h @@ -167,6 +167,7 @@ QScopedPointer m_archive; QScopedPointer m_rootEntry; QHash m_entryIcons; + QMap m_propertiesMap; QString m_dbusPathName; diff --git a/part/archivemodel.cpp b/part/archivemodel.cpp --- a/part/archivemodel.cpp +++ b/part/archivemodel.cpp @@ -60,34 +60,28 @@ Timestamp /**< The timestamp for the current entry */ }; -/** - * Mappings between column indexes and entry properties. - */ -static QMap initializePropertiesList() -{ - QMap propertiesList = QMap(); - propertiesList.insert(FullPath, QStringLiteral("fullPath")); - propertiesList.insert(Size, QStringLiteral("size")); - propertiesList.insert(CompressedSize, QStringLiteral("compressedSize")); - propertiesList.insert(Permissions, QStringLiteral("permissions")); - propertiesList.insert(Owner, QStringLiteral("owner")); - propertiesList.insert(Group, QStringLiteral("group")); - propertiesList.insert(Ratio, QStringLiteral("ratio")); - propertiesList.insert(CRC, QStringLiteral("CRC")); - propertiesList.insert(Method, QStringLiteral("method")); - propertiesList.insert(Version, QStringLiteral("version")); - propertiesList.insert(Timestamp, QStringLiteral("timestamp")); - return propertiesList; -} -static const QMap propertiesList = initializePropertiesList(); - ArchiveModel::ArchiveModel(const QString &dbusPathName, QObject *parent) : QAbstractItemModel(parent) , m_dbusPathName(dbusPathName) , m_numberOfFiles(0) , m_numberOfFolders(0) { initRootEntry(); + + // Mappings between column indexes and entry properties. + m_propertiesMap = { + { FullPath, "fullPath" }, + { Size, "size" }, + { CompressedSize, "compressedSize" }, + { Permissions, "permissions" }, + { Owner, "owner" }, + { Group, "group" }, + { Ratio, "ratio" }, + { CRC, "CRC" }, + { Method, "method" }, + { Version, "version" }, + { Timestamp, "timestamp" }, + }; } ArchiveModel::~ArchiveModel() @@ -147,7 +141,7 @@ } default: - return entry->property(propertiesList[column].toUtf8()); + return entry->property(m_propertiesMap[column]); } } case Qt::DecorationRole: @@ -335,8 +329,8 @@ } else if ((!leftEntry->isDir()) && (rightEntry->isDir())) { isLessThan = false; } else { - const QVariant leftEntryMetaData = leftEntry->property(propertiesList[column].toUtf8()); - const QVariant rightEntryMetaData = rightEntry->property(propertiesList[column].toUtf8()); + const QVariant leftEntryMetaData = leftEntry->property(m_propertiesMap[column]); + const QVariant rightEntryMetaData = rightEntry->property(m_propertiesMap[column]); switch (column) { case FullPath: @@ -589,9 +583,9 @@ if (m_showColumns.isEmpty()) { QList toInsert; - QMap::const_iterator i = propertiesList.begin(); - while (i != propertiesList.end()) { - if (!receivedEntry->property(i.value().toUtf8()).toString().isEmpty()) { + auto i = m_propertiesMap.begin(); + while (i != m_propertiesMap.end()) { + if (!receivedEntry->property(i.value()).toString().isEmpty()) { if (i.key() != CompressedSize || receivedEntry->compressedSizeIsSet) { toInsert << i.key(); }