Project: Avoid copying the entire files(...) list

Avoid copying the entire list of files known to a project just to
filter out a couple of files from it.

Change-Id: I58b2e323f9678058ba482353eb777a55189fe05d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Tobias Hunger
2019-06-18 16:21:56 +02:00
parent 30df84e177
commit e2d6c0bfea
6 changed files with 29 additions and 22 deletions

View File

@@ -26,14 +26,15 @@
#include "resourcepreviewhoverhandler.h"
#include <coreplugin/icore.h>
#include <utils/tooltip/tooltip.h>
#include <utils/fileutils.h>
#include <utils/qtcassert.h>
#include <utils/mimetypes/mimedatabase.h>
#include <projectexplorer/projecttree.h>
#include <projectexplorer/project.h>
#include <projectexplorer/projectnodes.h>
#include <projectexplorer/projecttree.h>
#include <texteditor/texteditor.h>
#include <utils/executeondestruction.h>
#include <utils/fileutils.h>
#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcassert.h>
#include <utils/tooltip/tooltip.h>
#include <QPoint>
#include <QTextBlock>
@@ -143,10 +144,9 @@ static QString findResourceInProject(const QString &resName)
return QString();
if (auto *project = ProjectExplorer::ProjectTree::currentProject()) {
const Utils::FilePathList files = project->files(ProjectExplorer::Project::AllFiles);
const Utils::FilePathList files = project->files(
[](const ProjectExplorer::Node *n) { return n->filePath().endsWith(".qrc"); });
for (const Utils::FilePath &file : files) {
if (!file.endsWith(".qrc"))
continue;
const QFileInfo fi = file.toFileInfo();
if (!fi.isReadable())
continue;