┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemlistwidget.cpp
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2020-12-24 00:11:21 +0000
committerMéven Car <[email protected]>2020-12-24 00:11:21 +0000
commitf0d03c7dd7ae8496714483b73cfab1b1708c6ad3 (patch)
tree8362e7227b7b7c7b20e2f2a1b749be173d417754 /src/kitemviews/kfileitemlistwidget.cpp
parent9abe299c77a7bd194d781bba0e6a3d037c0431d1 (diff)
Details View: display dates as relative Short dates
CCBUG: 340982
Diffstat (limited to 'src/kitemviews/kfileitemlistwidget.cpp')
-rw-r--r--src/kitemviews/kfileitemlistwidget.cpp21
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);
}