X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/59f00343c92c60e0d413f6c3ee319acf696764f4..56888a56:/src/kitemviews/kfileitemlistwidget.cpp 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(); - text = KFormat().formatByteSize(size); + text = formatter.formatByteSize(size); } } } else { const KIO::filesize_t size = roleValue.value(); - 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); }