diff options
author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-07-07 15:17:58 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-07-10 14:04:01 +0000 |
commit | 91c497b1aebaf4b24ac1e5b884940820c6a0a88c (patch) | |
tree | 93b31416fcb560450e64a9295443c701f93ae50d /src | |
parent | a32a9b3d2a82d38edde1b4b55cbdececd7f5333d (diff) | |
download | qt-creator-91c497b1aebaf4b24ac1e5b884940820c6a0a88c.tar.gz |
CppTools: Make updateProjectPart() const
...and rename to "determineProjectPart".
This is in preparation for a follow-up change. determineProjectPart()
should not set any state.
Change-Id: Iad7be8638fd97a79a4227a944896ac9af0a36862
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Diffstat (limited to 'src')
4 files changed, 18 insertions, 16 deletions
diff --git a/src/plugins/clangcodemodel/clangeditordocumentparser.cpp b/src/plugins/clangcodemodel/clangeditordocumentparser.cpp index e12833ca9a..9b342bd7d1 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentparser.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentparser.cpp @@ -94,7 +94,7 @@ void ClangEditorDocumentParser::update(CppTools::WorkingCopy workingCopy) QMutexLocker lock(m_marker->mutex()); QMutexLocker lock2(&m_mutex); - updateProjectPart(); + m_projectPart = determineProjectPart(); const QStringList options = createOptions(filePath(), projectPart(), true); qCDebug(log, "Reparse options (cmd line equivalent): %s", diff --git a/src/plugins/cpptools/baseeditordocumentparser.cpp b/src/plugins/cpptools/baseeditordocumentparser.cpp index 7f1e74785b..d24e341b1f 100644 --- a/src/plugins/cpptools/baseeditordocumentparser.cpp +++ b/src/plugins/cpptools/baseeditordocumentparser.cpp @@ -45,7 +45,7 @@ namespace CppTools { the "best" project part for a file. Derived classes are expected to implement update() by using the protected - mutex, updateProjectPart() and by respecting the options set by the client. + mutex, determineProjectPart() and by respecting the options set by the client. */ BaseEditorDocumentParser::BaseEditorDocumentParser(const QString &filePath) @@ -115,33 +115,35 @@ BaseEditorDocumentParser *BaseEditorDocumentParser::get(const QString &filePath) return 0; } -void BaseEditorDocumentParser::updateProjectPart() +ProjectPart::Ptr BaseEditorDocumentParser::determineProjectPart() const { - if (m_manuallySetProjectPart) { - m_projectPart = m_manuallySetProjectPart; - return; - } + if (m_manuallySetProjectPart) + return m_manuallySetProjectPart; + + ProjectPart::Ptr projectPart = m_projectPart; CppModelManager *cmm = CppModelManager::instance(); QList<ProjectPart::Ptr> projectParts = cmm->projectPart(m_filePath); if (projectParts.isEmpty()) { - if (m_projectPart) + if (projectPart) // File is not directly part of any project, but we got one before. We will re-use it, // because re-calculating this can be expensive when the dependency table is big. - return; + return projectPart; // Fall-back step 1: Get some parts through the dependency table: projectParts = cmm->projectPartFromDependencies(Utils::FileName::fromString(m_filePath)); if (projectParts.isEmpty()) // Fall-back step 2: Use fall-back part from the model manager: - m_projectPart = cmm->fallbackProjectPart(); + projectPart = cmm->fallbackProjectPart(); else - m_projectPart = projectParts.first(); + projectPart = projectParts.first(); } else { - if (!projectParts.contains(m_projectPart)) + if (!projectParts.contains(projectPart)) // Apparently the project file changed, so update our project part. - m_projectPart = projectParts.first(); + projectPart = projectParts.first(); } + + return projectPart; } bool BaseEditorDocumentParser::editorDefinesChanged() const diff --git a/src/plugins/cpptools/baseeditordocumentparser.h b/src/plugins/cpptools/baseeditordocumentparser.h index ddd12fbb0a..c8f5704a9d 100644 --- a/src/plugins/cpptools/baseeditordocumentparser.h +++ b/src/plugins/cpptools/baseeditordocumentparser.h @@ -63,18 +63,18 @@ public: static BaseEditorDocumentParser *get(const QString &filePath); protected: - void updateProjectPart(); + ProjectPart::Ptr determineProjectPart() const; bool editorDefinesChanged() const; void resetEditorDefinesChanged(); protected: mutable QMutex m_mutex; + ProjectPart::Ptr m_projectPart; private: const QString m_filePath; - ProjectPart::Ptr m_projectPart; ProjectPart::Ptr m_manuallySetProjectPart; bool m_usePrecompiledHeaders; diff --git a/src/plugins/cpptools/builtineditordocumentparser.cpp b/src/plugins/cpptools/builtineditordocumentparser.cpp index 24ae027bfc..8c2232f142 100644 --- a/src/plugins/cpptools/builtineditordocumentparser.cpp +++ b/src/plugins/cpptools/builtineditordocumentparser.cpp @@ -62,7 +62,7 @@ void BuiltinEditorDocumentParser::update(WorkingCopy workingCopy) QString projectConfigFile; LanguageFeatures features = LanguageFeatures::defaultFeatures(); - updateProjectPart(); + m_projectPart = determineProjectPart(); if (m_forceSnapshotInvalidation) { invalidateSnapshot = true; |