┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKai Uwe Broulik <[email protected]>2018-07-26 10:17:36 +0200
committerKai Uwe Broulik <[email protected]>2018-07-26 10:17:36 +0200
commit6d011e97305cc575b1a5b2d9ca96e8038ea3b27a (patch)
tree6490dd429f9551cbdc9c5b4b271fa59b3f44f57a /src
parent2cbf3cb11ea668577121fa755c1ddacc6f0acdd8 (diff)
Compare UDS entry times directly instead of going through KFileItem
This avoids creating a QDateTime object with all the timezone processing that comes with it since we're only interested in the relative order, not absolute precise date time values. CHANGELOG: Sorting files by date is significantly faster now Differential Revision: https://phabricator.kde.org/D14394
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index 56c21f51c..d2c8429ac 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -1778,8 +1778,8 @@ int KFileItemModel::sortRoleCompare(const ItemData* a, const ItemData* b, const
}
case ModificationTimeRole: {
- const QDateTime dateTimeA = itemA.time(KFileItem::ModificationTime);
- const QDateTime dateTimeB = itemB.time(KFileItem::ModificationTime);
+ const long long dateTimeA = itemA.entry().numberValue(KIO::UDSEntry::UDS_MODIFICATION_TIME, -1);
+ const long long dateTimeB = itemB.entry().numberValue(KIO::UDSEntry::UDS_MODIFICATION_TIME, -1);
if (dateTimeA < dateTimeB) {
result = -1;
} else if (dateTimeA > dateTimeB) {
@@ -1789,8 +1789,8 @@ int KFileItemModel::sortRoleCompare(const ItemData* a, const ItemData* b, const
}
case CreationTimeRole: {
- const QDateTime dateTimeA = itemA.time(KFileItem::CreationTime);
- const QDateTime dateTimeB = itemB.time(KFileItem::CreationTime);
+ const long long dateTimeA = itemA.entry().numberValue(KIO::UDSEntry::UDS_CREATION_TIME, -1);
+ const long long dateTimeB = itemB.entry().numberValue(KIO::UDSEntry::UDS_CREATION_TIME, -1);
if (dateTimeA < dateTimeB) {
result = -1;
} else if (dateTimeA > dateTimeB) {