diff options
author | hjk <hjk@qt.io> | 2017-12-15 10:36:16 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2017-12-15 11:59:33 +0000 |
commit | 6c537b35d5fd9dd38e44550da31943b0c6cb7608 (patch) | |
tree | bbf06ef348ebbfcfe80215dd5defa3d5755e0960 /src/plugins/cppeditor/cppquickfixassistant.cpp | |
parent | d47fdb934db48c8f6c6f933509b52ee521235b2c (diff) | |
download | qt-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.cpp | 24 |
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; } // -------------------------- |