From 77b1063d8c58547e8e908d31f47a9eecaa88d890 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 1 Mar 2016 16:03:58 +0100 Subject: [PATCH] QbsProject: Implement filesGeneratedFrom() Unfortunately we cannot use it for updating the code model after all, as the same file might be used in different products to generate different files. However, with the new "recursive" parameter to qbs::Project::generatedFiles() we can use that function directly there. Change-Id: Iec8e1a1366c6f4d94198b38bcb464d05106dbbff Reviewed-by: Tobias Hunger Reviewed-by: Christian Kandeler --- src/plugins/qbsprojectmanager/qbsproject.cpp | 11 ++++++++++- src/plugins/qbsprojectmanager/qbsproject.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index db6efaa2e16..85bef4df1d4 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -183,6 +183,14 @@ QStringList QbsProject::files(Project::FilesMode fileMode) const return result.toList(); } +QStringList QbsProject::filesGeneratedFrom(const QString &sourceFile) const +{ + QStringList generated; + foreach (const qbs::ProductData &data, m_projectData.allProducts()) + generated << m_qbsProject.generatedFiles(data, sourceFile, false); + return generated; +} + bool QbsProject::isProjectEditable() const { return m_qbsProject.isValid() && !isParsing() && !BuildManager::isBuilding(); @@ -788,7 +796,8 @@ void QbsProject::updateCppCodeModel() for (auto i = factoriesBegin; i != factoriesEnd; ++i) { if ((*i)->sourceTag() != tag) continue; - QStringList generated = filesGeneratedFrom(source.filePath()); + QStringList generated = m_qbsProject.generatedFiles(prd, source.filePath(), + false); if (generated.isEmpty()) continue; diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h index 51a7bca4552..72c3e7502e3 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.h +++ b/src/plugins/qbsprojectmanager/qbsproject.h @@ -67,6 +67,7 @@ public: QbsRootProjectNode *rootProjectNode() const override; QStringList files(FilesMode fileMode) const override; + QStringList filesGeneratedFrom(const QString &sourceFile) const override; bool isProjectEditable() const; bool addFilesToProduct(QbsBaseProjectNode *node, const QStringList &filePaths,