forked from qt-creator/qt-creator
ProjectNodes: add listInProject() to Node
Add a setter/getter for listInProject to Node and make the project list all nodes with this property set in Project::files. Task-number: QTCREATORBUG-18132 Change-Id: I334e627856d1bc0d033e13c5d629f6657d8d7fee Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -548,7 +548,7 @@ Project::RestoreResult Project::restoreSettings(QString *errorMessage)
|
||||
}
|
||||
|
||||
QStringList Project::files(Project::FilesMode fileMode,
|
||||
const std::function<bool (const FileNode *)> &filter) const
|
||||
const std::function<bool(const Node *)> &filter) const
|
||||
{
|
||||
QStringList result;
|
||||
|
||||
@@ -556,17 +556,19 @@ QStringList Project::files(Project::FilesMode fileMode,
|
||||
return result;
|
||||
|
||||
QSet<QString> alreadySeen;
|
||||
rootProjectNode()->forEachNode([&](const FileNode *fn) {
|
||||
const QString path = fn->filePath().toString();
|
||||
rootProjectNode()->forEachGenericNode([&](const Node *n) {
|
||||
const QString path = n->filePath().toString();
|
||||
const int count = alreadySeen.count();
|
||||
alreadySeen.insert(path);
|
||||
if (count == alreadySeen.count())
|
||||
return; // skip duplicates
|
||||
if (filter && !filter(fn))
|
||||
if (!n->listInProject())
|
||||
return;
|
||||
if (filter && !filter(n))
|
||||
return;
|
||||
if ((fileMode == AllFiles)
|
||||
|| (fileMode == SourceFiles && !fn->isGenerated())
|
||||
|| (fileMode == GeneratedFiles && fn->isGenerated()))
|
||||
|| (fileMode == SourceFiles && !n->isGenerated())
|
||||
|| (fileMode == GeneratedFiles && n->isGenerated()))
|
||||
result.append(path);
|
||||
});
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user