summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppprojectpartchooser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppprojectpartchooser.cpp')
-rw-r--r--src/plugins/cpptools/cppprojectpartchooser.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/plugins/cpptools/cppprojectpartchooser.cpp b/src/plugins/cpptools/cppprojectpartchooser.cpp
index 470fcfd4ca..a79b44540a 100644
--- a/src/plugins/cpptools/cppprojectpartchooser.cpp
+++ b/src/plugins/cpptools/cppprojectpartchooser.cpp
@@ -128,12 +128,13 @@ private:
bool m_isAmbiguous = false;
};
-ProjectPartInfo ProjectPartChooser::choose(const QString &filePath,
+ProjectPartInfo ProjectPartChooser::choose(
+ const QString &filePath,
const ProjectPartInfo &currentProjectPartInfo,
const QString &preferredProjectPartId,
const ProjectExplorer::Project *activeProject,
Language languagePreference,
- bool projectHasChanged) const
+ bool projectsUpdated) const
{
QTC_CHECK(m_projectPartsForFile);
QTC_CHECK(m_projectPartsFromDependenciesForFile);
@@ -144,7 +145,8 @@ ProjectPartInfo ProjectPartChooser::choose(const QString &filePath,
QList<ProjectPart::Ptr> projectParts = m_projectPartsForFile(filePath);
if (projectParts.isEmpty()) {
- if (projectPart && currentProjectPartInfo.hint == ProjectPartInfo::IsFallbackMatch)
+ if (!projectsUpdated && projectPart
+ && currentProjectPartInfo.hint == ProjectPartInfo::IsFallbackMatch)
// Avoid re-calculating the expensive dependency table for non-project files.
return {projectPart, ProjectPartInfo::IsFallbackMatch};
@@ -162,16 +164,14 @@ ProjectPartInfo ProjectPartChooser::choose(const QString &filePath,
projectPart = prioritizer.projectPart();
}
} else {
- if (projectHasChanged || !projectParts.contains(projectPart)) {
- ProjectPartPrioritizer prioritizer(projectParts,
- preferredProjectPartId,
- activeProject,
- languagePreference);
- projectPart = prioritizer.projectPart();
- hint = prioritizer.isAmbiguous()
- ? ProjectPartInfo::IsAmbiguousMatch
- : ProjectPartInfo::NoHint;
- }
+ ProjectPartPrioritizer prioritizer(projectParts,
+ preferredProjectPartId,
+ activeProject,
+ languagePreference);
+ projectPart = prioritizer.projectPart();
+ hint = prioritizer.isAmbiguous()
+ ? ProjectPartInfo::IsAmbiguousMatch
+ : ProjectPartInfo::NoHint;
}
return {projectPart, hint};