forked from qt-creator/qt-creator
CppEditor: Use the project part chosen with CppPreProcessorDialog
...otherwise the CppPreProcessorDialog is only semi-useful. Change-Id: I6b80967b05e7c9a51cd78ae064a3d78170948e32 Reviewed-by: David Schulz <david.schulz@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -689,12 +689,14 @@ private:
|
||||
/// Make sure that m_projectMutex is locked when calling this.
|
||||
void CppModelManager::recalculateFileToProjectParts()
|
||||
{
|
||||
m_projectFileToProjectPart.clear();
|
||||
m_fileToProjectParts.clear();
|
||||
foreach (const ProjectInfo &projectInfo, m_projectToProjectsInfo) {
|
||||
foreach (const ProjectPart::Ptr &projectPart, projectInfo.projectParts()) {
|
||||
foreach (const ProjectFile &cxxFile, projectPart->files) {
|
||||
m_projectFileToProjectPart[projectPart->projectFile] = projectPart;
|
||||
foreach (const ProjectFile &cxxFile, projectPart->files)
|
||||
m_fileToProjectParts[cxxFile.path].append(projectPart);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -774,6 +776,11 @@ QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo &newProjectIn
|
||||
return updateSourceFiles(filesToReindex, ForcedProgressNotification);
|
||||
}
|
||||
|
||||
ProjectPart::Ptr CppModelManager::projectPartForProjectFile(const QString &projectFile) const
|
||||
{
|
||||
return m_projectFileToProjectPart.value(projectFile);
|
||||
}
|
||||
|
||||
QList<ProjectPart::Ptr> CppModelManager::projectPart(const QString &fileName) const
|
||||
{
|
||||
return m_fileToProjectParts.value(fileName);
|
||||
|
||||
@@ -75,6 +75,8 @@ public:
|
||||
virtual ProjectInfo projectInfo(ProjectExplorer::Project *project) const;
|
||||
virtual QFuture<void> updateProjectInfo(const ProjectInfo &newProjectInfo);
|
||||
|
||||
/// \return The project part with the given project file
|
||||
virtual ProjectPart::Ptr projectPartForProjectFile(const QString &projectFile) const;
|
||||
/// \return All project parts that mention the given file name as one of the sources/headers.
|
||||
virtual QList<ProjectPart::Ptr> projectPart(const QString &fileName) const;
|
||||
/// This is a fall-back function: find all files that includes the file directly or indirectly,
|
||||
@@ -199,6 +201,7 @@ private:
|
||||
mutable QMutex m_projectMutex;
|
||||
QMap<ProjectExplorer::Project *, ProjectInfo> m_projectToProjectsInfo;
|
||||
QMap<QString, QList<CppTools::ProjectPart::Ptr> > m_fileToProjectParts;
|
||||
QMap<QString, CppTools::ProjectPart::Ptr> m_projectFileToProjectPart;
|
||||
// The members below are cached/(re)calculated from the projects and/or their project parts
|
||||
bool m_dirty;
|
||||
QStringList m_projectFiles;
|
||||
|
||||
@@ -233,6 +233,7 @@ public:
|
||||
virtual QList<ProjectInfo> projectInfos() const = 0;
|
||||
virtual ProjectInfo projectInfo(ProjectExplorer::Project *project) const = 0;
|
||||
virtual QFuture<void> updateProjectInfo(const ProjectInfo &pinfo) = 0;
|
||||
virtual ProjectPart::Ptr projectPartForProjectFile(const QString &projectFile) const = 0;
|
||||
virtual QList<ProjectPart::Ptr> projectPart(const QString &fileName) const = 0;
|
||||
virtual QList<ProjectPart::Ptr> projectPartFromDependencies(const QString &fileName) const = 0;
|
||||
virtual ProjectPart::Ptr fallbackProjectPart() const = 0;
|
||||
|
||||
Reference in New Issue
Block a user