diff options
| author | Méven Car <[email protected]> | 2020-12-24 00:11:21 +0000 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2020-12-24 00:11:21 +0000 |
| commit | f0d03c7dd7ae8496714483b73cfab1b1708c6ad3 (patch) | |
| tree | 8362e7227b7b7c7b20e2f2a1b749be173d417754 /src/kitemviews/kfileitemlistwidget.cpp | |
| parent | 9abe299c77a7bd194d781bba0e6a3d037c0431d1 (diff) | |
Details View: display dates as relative Short dates
CCBUG: 340982
Diffstat (limited to 'src/kitemviews/kfileitemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kfileitemlistwidget.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp index 66fcafaf6..1b38176cc 100644 --- a/src/kitemviews/kfileitemlistwidget.cpp +++ b/src/kitemviews/kfileitemlistwidget.cpp @@ -47,10 +47,20 @@ QString KFileItemListWidgetInformant::roleText(const QByteArray& role, { QString text; const QVariant roleValue = values.value(role); + QLocale local; + KFormat formatter(local); // Implementation note: In case if more roles require a custom handling // use a hash + switch for a linear runtime. + auto formatDate = [formatter, local](const QDateTime& time) { + if (DetailsModeSettings::useShortRelativeDates()) { + return formatter.formatRelativeDateTime(time, QLocale::ShortFormat); + } else { + return local.toString(time, QLocale::ShortFormat); + } + }; + if (role == "size") { if (values.value("isDir").toBool()) { if (!roleValue.isNull() && roleValue != -1) { @@ -62,22 +72,25 @@ QString KFileItemListWidgetInformant::roleText(const QByteArray& role, } else { // if we have directory size available const KIO::filesize_t size = roleValue.value<KIO::filesize_t>(); - text = KFormat().formatByteSize(size); + text = formatter.formatByteSize(size); } } } else { const KIO::filesize_t size = roleValue.value<KIO::filesize_t>(); - text = KFormat().formatByteSize(size); + text = formatter.formatByteSize(size); } } else if (role == "modificationtime" || role == "creationtime" || role == "accesstime") { bool ok; const long long time = roleValue.toLongLong(&ok); if (ok && time != -1) { - return QLocale().toString(QDateTime::fromSecsSinceEpoch(time), QLocale::ShortFormat); + const QDateTime dateTime = QDateTime::fromSecsSinceEpoch(time); + text = formatDate(dateTime); } } else if (role == "deletiontime" || role == "imageDateTime") { const QDateTime dateTime = roleValue.toDateTime(); - text = QLocale().toString(dateTime, QLocale::ShortFormat); + if (dateTime.isValid()) { + text = formatDate(dateTime); + } } else { text = KStandardItemListWidgetInformant::roleText(role, values); } |
