diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 9ca78cabe4b..e836fba5905 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -465,14 +465,6 @@ CppModelManager *CppModelManager::instance() return m_instance; } -void CppModelManager::createCppModelManager(Internal::CppToolsPlugin *parent) -{ - QTC_ASSERT(!m_instance, return;); - m_instance = new CppModelManager(); - m_instance->initCppTools(); - m_instance->setParent(parent); -} - void CppModelManager::initCppTools() { // Objects @@ -512,6 +504,8 @@ CppModelManager::CppModelManager() : CppModelManagerBase(nullptr) , d(new CppModelManagerPrivate) { + m_instance = this; + // Used for weak dependency in VcsBaseSubmitEditor setObjectName("CppModelManager"); ExtensionSystem::PluginManager::addObject(this); @@ -562,6 +556,8 @@ CppModelManager::CppModelManager() initializeBuiltinModelManagerSupport(); d->m_internalIndexingSupport = new BuiltinIndexingSupport; + + initCppTools(); } CppModelManager::~CppModelManager() diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h index 8567de9c304..69a8ac6faff 100644 --- a/src/plugins/cpptools/cppmodelmanager.h +++ b/src/plugins/cpptools/cppmodelmanager.h @@ -68,7 +68,7 @@ class WorkingCopy; namespace Internal { class CppSourceProcessor; class CppModelManagerPrivate; -class CppToolsPlugin; +class CppToolsPluginPrivate; } namespace Tests { @@ -88,15 +88,15 @@ class CPPTOOLS_EXPORT CppModelManager final : public CPlusPlus::CppModelManagerB { Q_OBJECT -public: - using Document = CPlusPlus::Document; - -public: +private: + friend class Internal::CppToolsPluginPrivate; CppModelManager(); ~CppModelManager() override; +public: + using Document = CPlusPlus::Document; + static CppModelManager *instance(); - static void createCppModelManager(Internal::CppToolsPlugin *parent); // Documented in source file. enum ProgressNotificationMode { diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index f52358c2d31..46215ea7234 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -82,7 +82,6 @@ class CppToolsPluginPrivate public: CppToolsPluginPrivate() { - CppModelManager::createCppModelManager(m_instance); m_settings = new CppToolsSettings(m_instance); // force registration of cpp tools settings m_codeModelSettings.fromSettings(ICore::settings()); m_cppCodeStyleSettingsPage = new CppCodeStyleSettingsPage; @@ -96,6 +95,7 @@ public: } StringTable stringTable; + CppModelManager modelManager; CppCodeModelSettings m_codeModelSettings; CppToolsSettings *m_settings = nullptr; CppFileSettings m_fileSettings;