From: Shitong Xu Date: Sun, 23 Mar 2025 15:02:24 +0000 (+0000) Subject: KFileItemListWidget: wrong selection when renamed file ends with a dot X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/1e5bc5b3d6ba344da09369802d822f6cd6da7c4c KFileItemListWidget: wrong selection when renamed file ends with a dot When a file name ends with a dot, it should be treated like there is no extension. When triggering a rename, the file name except the extension should be selected, which is equal to the full file name when the file ends with a dot. --- diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp index 3a7b37895..e1da7192a 100644 --- a/src/kitemviews/kfileitemlistwidget.cpp +++ b/src/kitemviews/kfileitemlistwidget.cpp @@ -176,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; }