diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/cppeditor/cppeditordocument.cpp | 2 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppeditorplugin.cpp | 7 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppeditorplugin.h | 3 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfixassistant.cpp | 41 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfixassistant.h | 7 |
5 files changed, 23 insertions, 37 deletions
diff --git a/src/plugins/cppeditor/cppeditordocument.cpp b/src/plugins/cppeditor/cppeditordocument.cpp index dfc5af1c88..3d62aadcd6 100644 --- a/src/plugins/cppeditor/cppeditordocument.cpp +++ b/src/plugins/cppeditor/cppeditordocument.cpp @@ -133,7 +133,7 @@ TextEditor::IAssistProvider *CppEditorDocument::quickFixAssistProvider() const { if (const auto baseProvider = TextDocument::quickFixAssistProvider()) return baseProvider; - return CppEditorPlugin::instance()->quickFixProvider(); + return &cppQuickFixAssistProvider(); } void CppEditorDocument::recalculateSemanticInfoDetached() diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp index 37620e92b1..32864757b7 100644 --- a/src/plugins/cppeditor/cppeditorplugin.cpp +++ b/src/plugins/cppeditor/cppeditorplugin.cpp @@ -18,7 +18,6 @@ #include "cppoutline.h" #include "cppprojectfile.h" #include "cppprojectupdater.h" -#include "cppquickfixassistant.h" #include "cppquickfixes.h" #include "cppquickfixprojectsettingswidget.h" #include "cppquickfixsettingspage.h" @@ -175,7 +174,6 @@ public: QAction *m_openTypeHierarchyAction = nullptr; QAction *m_openIncludeHierarchyAction = nullptr; - CppQuickFixAssistProvider m_quickFixProvider; CppQuickFixSettingsPage m_quickFixSettingsPage; QPointer<CppCodeModelInspectorDialog> m_cppCodeModelInspectorDialog; @@ -217,11 +215,6 @@ CppEditorPlugin *CppEditorPlugin::instance() return m_instance; } -CppQuickFixAssistProvider *CppEditorPlugin::quickFixProvider() const -{ - return &d->m_quickFixProvider; -} - void CppEditorPlugin::initialize() { d = new CppEditorPluginPrivate; diff --git a/src/plugins/cppeditor/cppeditorplugin.h b/src/plugins/cppeditor/cppeditorplugin.h index 463455fb65..bc2f201947 100644 --- a/src/plugins/cppeditor/cppeditorplugin.h +++ b/src/plugins/cppeditor/cppeditorplugin.h @@ -15,7 +15,6 @@ namespace Internal { class CppEditorPluginPrivate; class CppFileSettings; -class CppQuickFixAssistProvider; class CppEditorPlugin : public ExtensionSystem::IPlugin { @@ -28,8 +27,6 @@ public: static CppEditorPlugin *instance(); - CppQuickFixAssistProvider *quickFixProvider() const; - static void clearHeaderSourceCache(); static Utils::FilePath licenseTemplatePath(ProjectExplorer::Project *project); static QString licenseTemplate(ProjectExplorer::Project *project); diff --git a/src/plugins/cppeditor/cppquickfixassistant.cpp b/src/plugins/cppeditor/cppquickfixassistant.cpp index 9202e639a2..1456ce5604 100644 --- a/src/plugins/cppeditor/cppquickfixassistant.cpp +++ b/src/plugins/cppeditor/cppquickfixassistant.cpp @@ -3,10 +3,9 @@ #include "cppquickfixassistant.h" -#include "cppeditorconstants.h" #include "cppeditorwidget.h" #include "cppmodelmanager.h" -#include "cppquickfixes.h" +#include "cppquickfix.h" #include "cpprefactoringchanges.h" #include <texteditor/codeassist/genericproposal.h> @@ -21,32 +20,35 @@ using namespace CPlusPlus; using namespace TextEditor; -namespace CppEditor { -namespace Internal { +namespace CppEditor::Internal { -// ------------------------- -// CppQuickFixAssistProcessor -// ------------------------- -class CppQuickFixAssistProcessor : public IAssistProcessor +// CppQuickFixAssistProvider + +class CppQuickFixAssistProvider final : public IAssistProvider { - IAssistProposal *perform() override +public: + class CppQuickFixAssistProcessor final : public IAssistProcessor + { + IAssistProposal *perform() final + { + return GenericProposal::createProposal(interface(), quickFixOperations(interface())); + } + }; + + TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const final { - return GenericProposal::createProposal(interface(), quickFixOperations(interface())); + return new CppQuickFixAssistProcessor; } }; -// ------------------------- -// CppQuickFixAssistProvider -// ------------------------- - -IAssistProcessor *CppQuickFixAssistProvider::createProcessor(const AssistInterface *) const +IAssistProvider &cppQuickFixAssistProvider() { - return new CppQuickFixAssistProcessor; + static CppQuickFixAssistProvider theCppQuickFixAssistProvider; + return theCppQuickFixAssistProvider; } -// -------------------------- // CppQuickFixAssistInterface -// -------------------------- + CppQuickFixInterface::CppQuickFixInterface(CppEditorWidget *editor, AssistReason reason) : AssistInterface(editor->textCursor(), editor->textDocument()->filePath(), reason) , m_editor(editor) @@ -157,5 +159,4 @@ QuickFixOperations quickFixOperations(const TextEditor::AssistInterface *interfa return quickFixes; } -} // namespace Internal -} // namespace CppEditor +} // namespace CppEditor::Internal diff --git a/src/plugins/cppeditor/cppquickfixassistant.h b/src/plugins/cppeditor/cppquickfixassistant.h index 4aafe3dcf6..63a37f715a 100644 --- a/src/plugins/cppeditor/cppquickfixassistant.h +++ b/src/plugins/cppeditor/cppquickfixassistant.h @@ -46,12 +46,7 @@ private: QList<CPlusPlus::AST *> m_path; }; -class CppQuickFixAssistProvider : public TextEditor::IAssistProvider -{ -public: - CppQuickFixAssistProvider() = default; - TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const override; -}; +TextEditor::IAssistProvider &cppQuickFixAssistProvider(); TextEditor::QuickFixOperations quickFixOperations(const TextEditor::AssistInterface *interface); |