diff options
| author | Eugene Popov <[email protected]> | 2022-04-20 17:30:46 +0300 |
|---|---|---|
| committer | Eugene Popov <[email protected]> | 2022-04-26 13:42:04 +0300 |
| commit | e6f142e5e7563ebbcdc1bdf84c9ce87f11e01835 (patch) | |
| tree | 466862c5aaee5aab15953f84762f257c9e20ade7 /src/kitemviews/kfileitemmodel.cpp | |
| parent | c88ce580e6ad720342e7efec2c7e24d8362b648c (diff) | |
Add the ability to sort by file extension
Currently, Dolphin doesn't have the ability to sort by file extension (sorting by type means that files will be sorted by mimetype but not by extension). This MR fixes this shortcoming.
BUG: 429579
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index c58c2ee79..16fc54b43 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -1580,6 +1580,7 @@ QList<KFileItemModel::ItemData*> KFileItemModel::createItemDataList(const QUrl& void KFileItemModel::prepareItemsForSorting(QList<ItemData*>& itemDataList) { switch (m_sortRole) { + case ExtensionRole: case PermissionsRole: case OwnerRole: case GroupRole: @@ -1801,6 +1802,10 @@ QHash<QByteArray, QVariant> KFileItemModel::retrieveData(const KFileItem& item, data.insert(sharedValue("text"), item.text()); } + if (m_requestRole[ExtensionRole]) { + data.insert(sharedValue("extension"), QFileInfo(item.name()).suffix()); + } + if (m_requestRole[SizeRole] && !isDir) { data.insert(sharedValue("size"), item.size()); } @@ -2609,6 +2614,7 @@ const KFileItemModel::RoleInfoMap* KFileItemModel::rolesInfoMap(int& count) { "creationtime", CreationTimeRole, kli18nc("@label", "Created"), KLazyLocalizedString(), false, false }, { "accesstime", AccessTimeRole, kli18nc("@label", "Accessed"), KLazyLocalizedString(), false, false }, { "type", TypeRole, kli18nc("@label", "Type"), KLazyLocalizedString(), false, false }, + { "extension", ExtensionRole, kli18nc("@label", "Extension"), KLazyLocalizedString(), false, false }, { "rating", RatingRole, kli18nc("@label", "Rating"), KLazyLocalizedString(), true, false }, { "tags", TagsRole, kli18nc("@label", "Tags"), KLazyLocalizedString(), true, false }, { "comment", CommentRole, kli18nc("@label", "Comment"), KLazyLocalizedString(), true, false }, |
