From e3e6cece891d2ac2d4eebe36f47accf8ff74779c Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 4 Feb 2020 17:23:27 +0100 Subject: [PATCH] CppTools: Use a normal plugin pimpl member for CppModelManager Change-Id: Id2c4b098084808070ef91de13c8338184e52141d Reviewed-by: Christian Kandeler --- src/plugins/cpptools/cppmodelmanager.cpp | 12 ++++-------- src/plugins/cpptools/cppmodelmanager.h | 12 ++++++------ src/plugins/cpptools/cpptoolsplugin.cpp | 2 +- 3 files changed, 11 insertions(+), 15 deletions(-) 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;