X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/021365dceb590a14bfcdb904ea05ffdd69b7d663..e57f6215659ee36877c7c36c9e3fcba0ba5d03a0:/src/kitemviews/kfileitemlistwidget.cpp diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp index b4e0895f2..37b115cc3 100644 --- a/src/kitemviews/kfileitemlistwidget.cpp +++ b/src/kitemviews/kfileitemlistwidget.cpp @@ -45,7 +45,7 @@ bool KFileItemListWidgetInformant::itemIsLink(int index, const KItemListView *vi return item.isLink(); } -QString KFileItemListWidgetInformant::roleText(const QByteArray &role, const QHash &values) const +QString KFileItemListWidgetInformant::roleText(const QByteArray &role, const QHash &values, ForUsageAs forUsageAs) const { QString text; const QVariant roleValue = values.value(role); @@ -55,11 +55,13 @@ QString KFileItemListWidgetInformant::roleText(const QByteArray &role, const QHa // 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) { + auto formatDate = [formatter, local, forUsageAs](const QDateTime &time) { if (ContentDisplaySettings::useShortRelativeDates()) { - return formatter.formatRelativeDateTime(time, QLocale::ShortFormat); + return formatter.formatRelativeDateTime(time, + forUsageAs == KStandardItemListWidgetInformant::ForUsageAs::DisplayedText ? QLocale::ShortFormat + : QLocale::LongFormat); } else { - return local.toString(time, QLocale::ShortFormat); + return local.toString(time, forUsageAs == KStandardItemListWidgetInformant::ForUsageAs::DisplayedText ? QLocale::ShortFormat : QLocale::LongFormat); } }; @@ -114,7 +116,7 @@ QString KFileItemListWidgetInformant::roleText(const QByteArray &role, const QHa break; } } else { - text = KStandardItemListWidgetInformant::roleText(role, values); + text = KStandardItemListWidgetInformant::roleText(role, values, forUsageAs); } return text; @@ -174,15 +176,14 @@ int KFileItemListWidget::selectionLength(const QString &text) const const QString extension = db.suffixForFileName(text); if (extension.isEmpty()) { // For an unknown extension just exclude the extension after - // the last point. This does not work for multiple extensions like + // the last dot. This does not work for multiple extensions like // *.tar.gz but usually this is anyhow a known extension. indexOfExtension = text.lastIndexOf(QLatin1Char('.')); - // If no point could be found, use whole text length for selection. - if (indexOfExtension < 1) { + // if there either is no dot, or the last dot is the first or last char, treat as no extension. + if (indexOfExtension < 1 || indexOfExtension == text.length() - 1) { indexOfExtension = text.length(); } - } else { indexOfExtension -= extension.length() + 1; } @@ -218,7 +219,7 @@ void KFileItemListWidget::hoverSequenceIndexChanged(int sequenceIndex) { KFileItemListView *view = listView(); - if (!view) { + if (!view || !data().value("supportsSequencing").toBool()) { return; }