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.
const QString extension = db.suffixForFileName(text);
if (extension.isEmpty()) {
// For an unknown extension just exclude the extension after
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('.'));
// *.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();
}
indexOfExtension = text.length();
}
} else {
indexOfExtension -= extension.length() + 1;
}
} else {
indexOfExtension -= extension.length() + 1;
}