summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor/cppquickfixassistant.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2017-12-15 10:36:16 +0100
committerhjk <hjk@qt.io>2017-12-15 11:59:33 +0000
commit6c537b35d5fd9dd38e44550da31943b0c6cb7608 (patch)
treebbf06ef348ebbfcfe80215dd5defa3d5755e0960 /src/plugins/cppeditor/cppquickfixassistant.cpp
parentd47fdb934db48c8f6c6f933509b52ee521235b2c (diff)
downloadqt-creator-6c537b35d5fd9dd38e44550da31943b0c6cb7608.tar.gz
TextEditor: Dissolve QuickFixAssistProcessor
... into QuickFixAssistProcessor and QmlJSQuickFixAssistProcessor, by essentially duplicating the class, but moving the actual work to a new a GenericProposal::createProposal(...QuickFixOperations...) Less indirection, and less code in total. Change-Id: I2f8cba970bf587c9cbf04321269a60ed51bfae2a Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cppeditor/cppquickfixassistant.cpp')
-rw-r--r--src/plugins/cppeditor/cppquickfixassistant.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/plugins/cppeditor/cppquickfixassistant.cpp b/src/plugins/cppeditor/cppquickfixassistant.cpp
index a35b421ce2..7517e4c136 100644
--- a/src/plugins/cppeditor/cppquickfixassistant.cpp
+++ b/src/plugins/cppeditor/cppquickfixassistant.cpp
@@ -30,6 +30,9 @@
#include "cppquickfixes.h"
#include <cpptools/cppmodelmanager.h>
+
+#include <texteditor/codeassist/genericproposal.h>
+#include <texteditor/codeassist/iassistprocessor.h>
#include <texteditor/textdocument.h>
#include <cplusplus/ASTPath.h>
@@ -45,6 +48,25 @@ namespace CppEditor {
namespace Internal {
// -------------------------
+// CppQuickFixAssistProcessor
+// -------------------------
+class CppQuickFixAssistProcessor : public IAssistProcessor
+{
+ IAssistProposal *perform(const AssistInterface *interface) override
+ {
+ QSharedPointer<const AssistInterface> assistInterface(interface);
+
+ QuickFixOperations quickFixes;
+
+ for (QuickFixFactory *factory : QuickFixFactory::allQuickFixFactories())
+ if (qobject_cast<CppQuickFixFactory *>(factory) != nullptr)
+ factory->matchingOperations(assistInterface, quickFixes);
+
+ return GenericProposal::createProposal(interface, quickFixes);
+ }
+};
+
+// -------------------------
// CppQuickFixAssistProvider
// -------------------------
IAssistProvider::RunType CppQuickFixAssistProvider::runType() const
@@ -54,7 +76,7 @@ IAssistProvider::RunType CppQuickFixAssistProvider::runType() const
IAssistProcessor *CppQuickFixAssistProvider::createProcessor() const
{
- return new QuickFixAssistProcessor(CppQuickFixFactory::cppQuickFixFactories());
+ return new CppQuickFixAssistProcessor;
}
// --------------------------