summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-12-15 18:09:45 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-12-16 12:23:58 +0000
commitf89d3dca8bca4e48f048c629d80c148cd7334926 (patch)
tree62be627729d8dbe15d92f909f7f111011ac13474 /src/plugins/cpptools/cppmodelmanager.cpp
parent6dcdba92f3ab0d293829b96b88f2e2276587f892 (diff)
downloadqt-creator-f89d3dca8bca4e48f048c629d80c148cd7334926.tar.gz
Clang: Activate code model automatically if plugin is loaded
This removes also the need to close editor documents. Change-Id: I96c68105bceb37841053f3dbd8a264e059a02cb8 Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp56
1 files changed, 5 insertions, 51 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 3b9c186910..c6c92719de 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -34,7 +34,6 @@
#include "baseeditordocumentprocessor.h"
#include "builtinindexingsupport.h"
#include "cppcodemodelinspectordumper.h"
-#include "cppcodemodelsettings.h"
#include "cppfindreferences.h"
#include "cppindexingsupport.h"
#include "cppmodelmanagersupportinternal.h"
@@ -152,7 +151,6 @@ public:
QSet<AbstractEditorSupport *> m_extraEditorSupports;
// Model Manager Supports for e.g. completion and highlighting
- ModelManagerSupportProvider *m_clangModelManagerSupportProvider;
ModelManagerSupport::Ptr m_builtinModelManagerSupport;
ModelManagerSupport::Ptr m_activeModelManagerSupport;
@@ -298,9 +296,8 @@ CppModelManager *CppModelManager::instance()
return m_instance;
}
-void CppModelManager::initializeModelManagerSupports()
+void CppModelManager::initializeBuiltinModelManagerSupport()
{
- d->m_clangModelManagerSupportProvider = nullptr;
d->m_builtinModelManagerSupport
= ModelManagerSupportProviderInternal().createModelManagerSupport();
d->m_activeModelManagerSupport = d->m_builtinModelManagerSupport;
@@ -348,12 +345,7 @@ CppModelManager::CppModelManager(QObject *parent)
qRegisterMetaType<QList<Document::DiagnosticMessage>>(
"QList<CPlusPlus::Document::DiagnosticMessage>");
- QSharedPointer<CppCodeModelSettings> codeModelSettings
- = CppToolsPlugin::instance()->codeModelSettings();
- connect(codeModelSettings.data(), &CppCodeModelSettings::changed,
- this, &CppModelManager::onCodeModelSettingsChanged);
-
- initializeModelManagerSupports();
+ initializeBuiltinModelManagerSupport();
d->m_internalIndexingSupport = new BuiltinIndexingSupport;
}
@@ -673,14 +665,6 @@ void CppModelManager::removeProjectInfoFilesAndIncludesFromSnapshot(const Projec
}
}
-void CppModelManager::closeCppEditorDocuments()
-{
- QList<Core::IDocument *> cppDocumentsToClose;
- foreach (CppEditorDocumentHandle *cppDocument, cppEditorDocuments())
- cppDocumentsToClose << cppDocument->processor()->baseTextDocument();
- QTC_CHECK(Core::EditorManager::closeDocuments(cppDocumentsToClose));
-}
-
QList<CppEditorDocumentHandle *> CppModelManager::cppEditorDocuments() const
{
QMutexLocker locker(&d->m_cppEditorDocumentsMutex);
@@ -947,15 +931,9 @@ bool CppModelManager::isCppEditor(Core::IEditor *editor)
return editor->context().contains(ProjectExplorer::Constants::LANG_CXX);
}
-bool CppModelManager::isClangCodeModelAvailable() const
-{
- return d->m_clangModelManagerSupportProvider != nullptr;
-}
-
bool CppModelManager::isClangCodeModelActive() const
{
- return isClangCodeModelAvailable()
- && d->m_activeModelManagerSupport != d->m_builtinModelManagerSupport;
+ return d->m_activeModelManagerSupport != d->m_builtinModelManagerSupport;
}
void CppModelManager::emitDocumentUpdated(Document::Ptr doc)
@@ -1039,27 +1017,6 @@ void CppModelManager::onCurrentEditorChanged(Core::IEditor *editor)
}
}
-void CppModelManager::onCodeModelSettingsChanged()
-{
- const bool isClangActive = isClangCodeModelActive();
- const QSharedPointer<CppCodeModelSettings> settings
- = CppToolsPlugin::instance()->codeModelSettings();
-
- ModelManagerSupport::Ptr newCodeModelSupport;
-
- if (isClangCodeModelAvailable()) {
- if (!isClangActive && settings->useClangCodeModel())
- newCodeModelSupport = d->m_clangModelManagerSupportProvider->createModelManagerSupport();
- else if (isClangActive && !settings->useClangCodeModel())
- newCodeModelSupport = d->m_builtinModelManagerSupport;
- }
-
- if (newCodeModelSupport) {
- closeCppEditorDocuments();
- d->m_activeModelManagerSupport = newCodeModelSupport;
- }
-}
-
void CppModelManager::onAboutToLoadSession()
{
if (d->m_delayedGcTimer.isActive())
@@ -1169,15 +1126,12 @@ void CppModelManager::finishedRefreshingSourceFiles(const QSet<QString> &files)
emit sourceFilesRefreshed(files);
}
-void CppModelManager::setClangModelManagerSupportProvider(
+void CppModelManager::activateClangCodeModel(
ModelManagerSupportProvider *modelManagerSupportProvider)
{
QTC_ASSERT(modelManagerSupportProvider, return);
- QTC_CHECK(d->m_clangModelManagerSupportProvider == nullptr);
-
- d->m_clangModelManagerSupportProvider = modelManagerSupportProvider;
- onCodeModelSettingsChanged();
+ d->m_activeModelManagerSupport = modelManagerSupportProvider->createModelManagerSupport();
}
CppCompletionAssistProvider *CppModelManager::completionAssistProvider() const