C++: add code-model settings to choose one by mime-type.

The model-manager now supports multiple code models for semantic
highlighting and code completion, and will choose one based on the
mime-type of the editor.

The settings page is currently disabled. It will get enabled when a
second plug-in lands that has a ModelManagerSupport class.

Change-Id: I10023f52322ed6860397da15dba1c231e80e6517
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
Erik Verbruggen
2013-09-06 13:14:15 +02:00
parent f33d145e64
commit c9f5a14bdd
12 changed files with 524 additions and 12 deletions

View File

@@ -30,6 +30,7 @@
#include "cpptoolsconstants.h"
#include "cpptoolsplugin.h"
#include "cppfilesettingspage.h"
#include "cppcodemodelsettingspage.h"
#include "cppcodestylesettingspage.h"
#include "cppclassesfilter.h"
#include "cppfunctionsfilter.h"
@@ -74,8 +75,9 @@ enum { debug = 0 };
static CppToolsPlugin *m_instance = 0;
static QHash<QString, QString> m_headerSourceMapping;
CppToolsPlugin::CppToolsPlugin() :
m_fileSettings(new CppFileSettings)
CppToolsPlugin::CppToolsPlugin()
: m_fileSettings(new CppFileSettings)
, m_codeModelSettings(new CppCodeModelSettings)
{
m_instance = this;
}
@@ -127,6 +129,7 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error)
addAutoReleasedObject(new CppFunctionsFilter(locatorData));
addAutoReleasedObject(new CppCurrentDocumentFilter(modelManager));
addAutoReleasedObject(new CppFileSettingsPage(m_fileSettings));
// addAutoReleasedObject(new CppCodeModelSettingsPage(m_codeModelSettings));
addAutoReleasedObject(new SymbolsFindFilter(modelManager));
addAutoReleasedObject(new CppCodeStyleSettingsPage);
@@ -165,6 +168,7 @@ void CppToolsPlugin::extensionsInitialized()
m_fileSettings->fromSettings(ICore::settings());
if (!m_fileSettings->applySuffixesToMimeDB())
qWarning("Unable to apply cpp suffixes to mime database (cpp mime types not found).\n");
m_codeModelSettings->fromSettings(ICore::settings());
}
ExtensionSystem::IPlugin::ShutdownFlag CppToolsPlugin::aboutToShutdown()
@@ -172,6 +176,11 @@ ExtensionSystem::IPlugin::ShutdownFlag CppToolsPlugin::aboutToShutdown()
return SynchronousShutdown;
}
QSharedPointer<CppCodeModelSettings> CppToolsPlugin::codeModelSettings() const
{
return m_codeModelSettings;
}
void CppToolsPlugin::switchHeaderSource()
{
QString otherFile = correspondingHeaderOrSource(