aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cppeditor/cppeditordocument.cpp2
-rw-r--r--src/plugins/cppeditor/cppeditorplugin.cpp7
-rw-r--r--src/plugins/cppeditor/cppeditorplugin.h3
-rw-r--r--src/plugins/cppeditor/cppquickfixassistant.cpp41
-rw-r--r--src/plugins/cppeditor/cppquickfixassistant.h7
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);