Only match file extension not its content for mimetype. Prevents freeze from VFS...
authoralex-z <blackslayer4@gmail.com>
Sat, 17 Feb 2024 20:04:27 +0000 (21:04 +0100)
committerMatthieu Gallien <matthieu_gallien@yahoo.fr>
Thu, 22 Feb 2024 09:18:12 +0000 (10:18 +0100)
Signed-off-by: alex-z <blackslayer4@gmail.com>
src/gui/caseclashfilenamedialog.cpp

index cfba3660f1e7b96374e1371541ad0c53be4118e5..27ca251a69911a252c44d96a0f7d190be92e4383 100644 (file)
@@ -88,7 +88,10 @@ CaseClashFilenameDialog::CaseClashFilenameDialog(AccountPtr account,
 
     _relativeFilePath = filePathFileInfo.path() + QStringLiteral("/");
     _relativeFilePath = _relativeFilePath.replace(folder->path(), QLatin1String());
-    _relativeFilePath = _relativeFilePath.isEmpty() ? QString() : _relativeFilePath + QStringLiteral("/");
+    _relativeFilePath = _relativeFilePath.isEmpty() ? QString() : _relativeFilePath;
+    if (!_relativeFilePath.isEmpty() && !_relativeFilePath.endsWith(QStringLiteral("/"))) {
+        _relativeFilePath += QStringLiteral("/");
+    }
 
     _originalFileName = _relativeFilePath + conflictFileName;
 
@@ -208,7 +211,7 @@ void CaseClashFilenameDialog::updateFileWidgetGroup(const QString &filePath,
     const auto fileSizeString = locale().formattedDataSize(filePathFileInfo.size());
     const auto fileUrl = QUrl::fromLocalFile(filePath).toString();
     const auto linkString = QStringLiteral("<a href='%1'>%2</a>").arg(fileUrl, linkText);
-    const auto mime = QMimeDatabase().mimeTypeForFile(_filePath);
+    const auto mime = QMimeDatabase().mimeTypeForFile(_filePath, QMimeDatabase::MatchExtension);
     QIcon fileTypeIcon;
 
     qCDebug(lcCaseClashConflictFialog) << filePath << filePathFileInfo.exists() << filename << lastModifiedString << fileSizeString << fileUrl << linkString << mime;