diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 8a8d796b1171bfa38b2cc538d6735014d73a08b2..30b4209dbecbff623ededd961a8fbfd0f40a5b04 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -1259,6 +1259,10 @@ void CppModelManager::updateIncludesInPaths(QFutureInterface<void> &future, const QString path = paths.takeFirst(); + // Skip non-existing paths + if (!QFile::exists(path)) + continue; + // Skip already scanned paths if (entriesInPaths.contains(path)) continue; @@ -1269,32 +1273,33 @@ void CppModelManager::updateIncludesInPaths(QFutureInterface<void> &future, while (i.hasNext()) { const QString fileName = i.next(); const QFileInfo fileInfo = i.fileInfo(); - const QString suffix = fileInfo.suffix(); - if (suffix.isEmpty() || suffixes.contains(suffix)) { - QString text = fileInfo.fileName(); - if (fileInfo.isDir()) { - text += QLatin1Char('/'); - - // Also scan subdirectory, but avoid endless recursion with symbolic links - if (fileInfo.isSymLink()) { - QString target = fileInfo.symLinkTarget(); - - // Don't add broken symlinks - if (!QFileInfo(target).exists()) - continue; - - QMap<QString, QStringList>::const_iterator result = entriesInPaths.find(target); - if (result != entriesInPaths.constEnd()) { - entriesInPaths.insert(fileName, result.value()); - } else { - paths.append(target); - symlinks.append(SymLink(fileName, target)); - } + QString text = fileInfo.fileName(); + if (fileInfo.isDir()) { + text += QLatin1Char('/'); + + // Also scan subdirectory, but avoid endless recursion with symbolic links + if (fileInfo.isSymLink()) { + QString target = fileInfo.symLinkTarget(); + + // Don't add broken symlinks + if (!QFileInfo(target).exists()) + continue; + + QMap<QString, QStringList>::const_iterator result = entriesInPaths.find(target); + if (result != entriesInPaths.constEnd()) { + entriesInPaths.insert(fileName, result.value()); } else { - paths.append(fileName); + paths.append(target); + symlinks.append(SymLink(fileName, target)); } + } else { + paths.append(fileName); } entries.append(text); + } else { + const QString suffix = fileInfo.suffix(); + if (suffix.isEmpty() || suffixes.contains(suffix)) + entries.append(text); } }