From f19cb7b2968db6c4fe075b770d83dc77594a0a76 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 15 Nov 2023 17:13:46 +0100 Subject: [PATCH] CppEditor: Hide ClangdSettingsPage setup in .cpp Change-Id: I3606e503ea512750b06a94901e5391ce6dae86e3 Reviewed-by: David Schulz --- .../cppeditor/cppcodemodelsettingspage.cpp | 19 ++++++++++---- .../cppeditor/cppcodemodelsettingspage.h | 7 +----- src/plugins/cppeditor/cppeditorplugin.cpp | 25 ++++++------------- src/plugins/cppeditor/cppeditorplugin.h | 1 - 4 files changed, 22 insertions(+), 30 deletions(-) diff --git a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp index 8bd2ce1eae2..b2d1e865e08 100644 --- a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp @@ -575,12 +575,21 @@ private: ClangdSettingsWidget m_widget; }; -ClangdSettingsPage::ClangdSettingsPage() +class ClangdSettingsPage final : public Core::IOptionsPage { - setId(Constants::CPP_CLANGD_SETTINGS_ID); - setDisplayName(Tr::tr("Clangd")); - setCategory(Constants::CPP_SETTINGS_CATEGORY); - setWidgetCreator([] { return new ClangdSettingsPageWidget; }); +public: + ClangdSettingsPage() + { + setId(Constants::CPP_CLANGD_SETTINGS_ID); + setDisplayName(Tr::tr("Clangd")); + setCategory(Constants::CPP_SETTINGS_CATEGORY); + setWidgetCreator([] { return new ClangdSettingsPageWidget; }); + } +}; + +void setupClangdSettingsPage() +{ + static ClangdSettingsPage theClangdSettingsPage; } class ClangdProjectSettingsWidget : public ProjectSettingsWidget diff --git a/src/plugins/cppeditor/cppcodemodelsettingspage.h b/src/plugins/cppeditor/cppcodemodelsettingspage.h index 33895275c39..9b4e6523cc9 100644 --- a/src/plugins/cppeditor/cppcodemodelsettingspage.h +++ b/src/plugins/cppeditor/cppcodemodelsettingspage.h @@ -15,12 +15,6 @@ public: explicit CppCodeModelSettingsPage(CppCodeModelSettings *settings); }; -class ClangdSettingsPage final : public Core::IOptionsPage -{ -public: - explicit ClangdSettingsPage(); -}; - class ClangdSettingsWidget : public QWidget { Q_OBJECT @@ -40,5 +34,6 @@ private: }; void setupClangdProjectSettingsPanel(); +void setupClangdSettingsPage(); } // CppEditor::Internal diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp index 335f6863919..fba41a2db81 100644 --- a/src/plugins/cppeditor/cppeditorplugin.cpp +++ b/src/plugins/cppeditor/cppeditorplugin.cpp @@ -160,11 +160,6 @@ public: class CppEditorPluginPrivate : public QObject { public: - ~CppEditorPluginPrivate() - { - delete m_clangdSettingsPage; - } - void onTaskStarted(Utils::Id type); void onAllTasksFinished(Utils::Id type); void inspectCppCodeModel(); @@ -189,7 +184,6 @@ public: CppFileSettings m_fileSettings; CppFileSettingsPage m_cppFileSettingsPage{&m_fileSettings}; CppCodeModelSettingsPage m_cppCodeModelSettingsPage{&m_codeModelSettings}; - ClangdSettingsPage *m_clangdSettingsPage = nullptr; CppCodeStyleSettingsPage m_cppCodeStyleSettingsPage; CppProjectUpdaterFactory m_cppProjectUpdaterFactory; }; @@ -238,7 +232,13 @@ void CppEditorPlugin::initialize() void CppEditorPlugin::extensionsInitialized() { - setupProjectPanels(); + setupCppQuickFixProjectPanel(); + setupCppFileSettingsProjectPanel(); + + if (CppModelManager::isClangCodeModelActive()) { + setupClangdProjectSettingsPanel(); + setupClangdSettingsPage(); + } d->m_fileSettings.fromSettings(ICore::settings()); d->m_fileSettings.addMimeInitializer(); @@ -478,17 +478,6 @@ void CppEditorPlugin::addGlobalActions() &CppModelManager::updateModifiedSourceFiles); } -void CppEditorPlugin::setupProjectPanels() -{ - setupCppQuickFixProjectPanel(); - setupCppFileSettingsProjectPanel(); - - if (CppModelManager::isClangCodeModelActive()) { - d->m_clangdSettingsPage = new ClangdSettingsPage; - setupClangdProjectSettingsPanel(); - } -} - void CppEditorPlugin::registerVariables() { MacroExpander * const expander = globalMacroExpander(); diff --git a/src/plugins/cppeditor/cppeditorplugin.h b/src/plugins/cppeditor/cppeditorplugin.h index bc2f2019470..f09e38c845f 100644 --- a/src/plugins/cppeditor/cppeditorplugin.h +++ b/src/plugins/cppeditor/cppeditorplugin.h @@ -58,7 +58,6 @@ private: void addActionsForSelections(); void addPerFileActions(); void addGlobalActions(); - void setupProjectPanels(); void registerVariables(); void registerTests();