diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -719,24 +719,25 @@ QList newSelection; for (const auto &item : itemList) { const QUrl originalURL = item.url(); + const QString originalDirectoryPath = originalURL.adjusted(QUrl::RemoveFilename).path(); const QString originalFileName = item.name(); + QString extension = db.suffixForFileName(originalFileName); QUrl duplicateURL = originalURL; // No extension; new filename is " copy" if (extension.isEmpty()) { - duplicateURL.setPath(i18nc(" copy", "%1 copy", originalURL.path())); + duplicateURL.setPath(originalDirectoryPath + i18nc(" copy", "%1 copy", originalFileName)); // There's an extension; new filename is " copy." } else { // Need to add a dot since QMimeDatabase::suffixForFileName() doesn't include it extension = QLatin1String(".") + extension; - const QString directoryPath = originalURL.adjusted(QUrl::RemoveFilename).path(); const QString originalFilenameWithoutExtension = originalFileName.chopped(extension.size()); // Preserve file's original filename extension in case the casing differs // from what QMimeDatabase::suffixForFileName() returned const QString originalExtension = originalFileName.right(extension.size()); - duplicateURL.setPath(i18nc(" copy.", "%1%2 copy%3", directoryPath, originalFilenameWithoutExtension, originalExtension)); + duplicateURL.setPath(originalDirectoryPath + i18nc(" copy", "%1 copy", originalFilenameWithoutExtension) + originalExtension); } KIO::CopyJob* job = KIO::copyAs(originalURL, duplicateURL, KIO::HideProgressInfo);