diff options
| author | Kai Uwe Broulik <[email protected]> | 2018-07-26 10:17:36 +0200 |
|---|---|---|
| committer | Kai Uwe Broulik <[email protected]> | 2018-07-26 10:17:36 +0200 |
| commit | 6d011e97305cc575b1a5b2d9ca96e8038ea3b27a (patch) | |
| tree | 6490dd429f9551cbdc9c5b4b271fa59b3f44f57a /src/kitemviews | |
| parent | 2cbf3cb11ea668577121fa755c1ddacc6f0acdd8 (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/kitemviews')
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 8 |
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) { |
