From 3a67a30dbfa7567037f438e5e417dc12b94c2102 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 15 Aug 2024 10:16:42 +0200 Subject: [PATCH] ProjectExplorer: Add ProjectManager::projectsForFile Change-Id: I4a91e2e3d5b94d27cc7cb0e772ec1dd45531dc0a Reviewed-by: David Schulz --- src/plugins/projectexplorer/projectmanager.cpp | 7 +++++++ src/plugins/projectexplorer/projectmanager.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/plugins/projectexplorer/projectmanager.cpp b/src/plugins/projectexplorer/projectmanager.cpp index 260bfcb786f..3569e517289 100644 --- a/src/plugins/projectexplorer/projectmanager.cpp +++ b/src/plugins/projectexplorer/projectmanager.cpp @@ -521,6 +521,13 @@ Project *ProjectManager::projectForFile(const FilePath &fileName) }); } +QList ProjectManager::projectsForFile(const Utils::FilePath &fileName) +{ + return Utils::filtered(ProjectManager::projects(), [&fileName](Project *p) { + return p->isKnownFile(fileName) || isInProjectSourceDir(fileName, *p); + }); +} + bool ProjectManager::isInProjectSourceDir(const Utils::FilePath &filePath, const Project &project) { for (const Target * const target : project.targets()) { diff --git a/src/plugins/projectexplorer/projectmanager.h b/src/plugins/projectexplorer/projectmanager.h index 78b885f4cbe..bc186955a09 100644 --- a/src/plugins/projectexplorer/projectmanager.h +++ b/src/plugins/projectexplorer/projectmanager.h @@ -80,6 +80,7 @@ public: static QList projectOrder(const Project *project = nullptr); static Project *projectForFile(const Utils::FilePath &fileName); + static QList projectsForFile(const Utils::FilePath &fileName); static bool isInProjectSourceDir(const Utils::FilePath &filePath, const Project &project); static Project *projectWithProjectFilePath(const Utils::FilePath &filePath);