Include folders when displaying the local metadata about a conflict.
authorCamila Ayres <hello@camilasan.com>
Wed, 11 Dec 2024 18:28:57 +0000 (19:28 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Thu, 12 Dec 2024 10:44:50 +0000 (10:44 +0000)
Signed-off-by: Camila Ayres <hello@camilasan.com>
src/gui/caseclashfilenamedialog.cpp

index 88a152b98e42d55af34f5a526cba112bfeb0819a..92f3c768962b94986a6032885f526ec4ee5a334b 100644 (file)
@@ -175,6 +175,7 @@ QString CaseClashFilenameDialog::caseClashConflictFile(const QString &conflictFi
 {
     const auto filePathFileInfo = QFileInfo(conflictFilePath);
     const auto conflictFileName = filePathFileInfo.fileName();
+    const auto lookingForDirectory = FileSystem::isDir(filePathFileInfo.absoluteFilePath());
 
     QDirIterator it(filePathFileInfo.path(), QDirIterator::Subdirectories);
 
@@ -182,15 +183,16 @@ QString CaseClashFilenameDialog::caseClashConflictFile(const QString &conflictFi
         const auto filePath = it.next();
         qCDebug(lcCaseClashConflictFialog) << filePath;
 
-        if (FileSystem::isDir(filePath)) {
+        if (FileSystem::isDir(filePath) && !lookingForDirectory) {
             continue;
         }
 
-        QFileInfo fileInfo(filePath);
-        const auto currentFileName = fileInfo.fileName();
-        if (currentFileName.compare(conflictFileName, Qt::CaseInsensitive) == 0 &&
-                currentFileName != conflictFileName) {
+        const auto currentFileName = QFileInfo(filePath).fileName();
+        if (currentFileName.compare(conflictFileName, Qt::CaseInsensitive) != 0) {
+            continue;
+        }
 
+        if (currentFileName != conflictFileName) {
             return filePath;
         }
     }