forked from qt-creator/qt-creator
Project: Remove duplicates from file list
Remove duplicate entries from list of project files. The duplicate entries used to be visible in e.g. the locator. Change-Id: I4a58ff11bd37ff39f4c9186ae89a2d384894bc1e Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -555,13 +555,19 @@ QStringList Project::files(Project::FilesMode fileMode,
|
||||
if (!rootProjectNode())
|
||||
return result;
|
||||
|
||||
QSet<QString> alreadySeen;
|
||||
rootProjectNode()->forEachNode([&](const FileNode *fn) {
|
||||
if (filter && !filter(fn))
|
||||
return;
|
||||
const QString path = fn->filePath().toString();
|
||||
const int count = alreadySeen.count();
|
||||
alreadySeen.insert(path);
|
||||
if (count == alreadySeen.count())
|
||||
return; // skip duplicates
|
||||
if ((fileMode == AllFiles)
|
||||
|| (fileMode == SourceFiles && !fn->isGenerated())
|
||||
|| (fileMode == GeneratedFiles && fn->isGenerated()))
|
||||
result.append(fn->filePath().toString());
|
||||
result.append(path);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user