diff options
author | David Schulz <david.schulz@theqtcompany.com> | 2016-03-16 13:04:05 +0100 |
---|---|---|
committer | David Schulz <david.schulz@theqtcompany.com> | 2016-04-28 12:14:41 +0000 |
commit | 898968b101abe4d197f0cfcdcdcebb58dfe0fe3c (patch) | |
tree | 87c83c2bba27bcea3d21db164925fc9197b940c2 /src/plugins/cppeditor | |
parent | 16aeecea2c88d64d29f1d4f4e02939c790445e87 (diff) | |
download | qt-creator-898968b101abe4d197f0cfcdcdcebb58dfe0fe3c.tar.gz |
CodeAssist: Support only one quickfix assistant per editor class.
Currently we are just using the first that is found. Which could lead
to unexpected behavior. Adjust the API to make clear just one assistant
is supported per editor type.
Change-Id: I711e66b4c5c5f347118357a8bafa0ffc6d650f7e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cppeditor')
-rw-r--r-- | src/plugins/cppeditor/cppeditordocument.cpp | 7 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppeditordocument.h | 1 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppeditorplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfixassistant.h | 1 |
4 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/cppeditor/cppeditordocument.cpp b/src/plugins/cppeditor/cppeditordocument.cpp index b7917a45c1..e34c9242c8 100644 --- a/src/plugins/cppeditor/cppeditordocument.cpp +++ b/src/plugins/cppeditor/cppeditordocument.cpp @@ -26,7 +26,9 @@ #include "cppeditordocument.h" #include "cppeditorconstants.h" +#include "cppeditorplugin.h" #include "cpphighlighter.h" +#include "cppquickfixassistant.h" #include <cpptools/baseeditordocumentparser.h> #include <cpptools/builtineditordocumentprocessor.h> @@ -121,6 +123,11 @@ TextEditor::CompletionAssistProvider *CppEditorDocument::completionAssistProvide return m_completionAssistProvider; } +TextEditor::QuickFixAssistProvider *CppEditorDocument::quickFixAssistProvider() const +{ + return CppEditorPlugin::instance()->quickFixProvider(); +} + void CppEditorDocument::recalculateSemanticInfoDetached() { CppTools::BaseEditorDocumentProcessor *p = processor(); diff --git a/src/plugins/cppeditor/cppeditordocument.h b/src/plugins/cppeditor/cppeditordocument.h index 61185f9738..23313f1353 100644 --- a/src/plugins/cppeditor/cppeditordocument.h +++ b/src/plugins/cppeditor/cppeditordocument.h @@ -50,6 +50,7 @@ public: bool isObjCEnabled() const; TextEditor::CompletionAssistProvider *completionAssistProvider() const override; + TextEditor::QuickFixAssistProvider *quickFixAssistProvider() const override; void recalculateSemanticInfoDetached(); CppTools::SemanticInfo recalculateSemanticInfo(); // TODO: Remove me diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp index 669aa729e1..60b078d66a 100644 --- a/src/plugins/cppeditor/cppeditorplugin.cpp +++ b/src/plugins/cppeditor/cppeditorplugin.cpp @@ -149,8 +149,7 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err addAutoReleasedObject(new CppIncludeHierarchyFactory); addAutoReleasedObject(new CppSnippetProvider); - m_quickFixProvider = new CppQuickFixAssistProvider; - addAutoReleasedObject(m_quickFixProvider); + m_quickFixProvider = new CppQuickFixAssistProvider(this); registerQuickFixes(this); Context context(Constants::CPPEDITOR_ID); diff --git a/src/plugins/cppeditor/cppquickfixassistant.h b/src/plugins/cppeditor/cppquickfixassistant.h index 96c259aab4..20a1b73980 100644 --- a/src/plugins/cppeditor/cppquickfixassistant.h +++ b/src/plugins/cppeditor/cppquickfixassistant.h @@ -71,6 +71,7 @@ private: class CppQuickFixAssistProvider : public TextEditor::QuickFixAssistProvider { public: + CppQuickFixAssistProvider(QObject *parent = 0) : TextEditor::QuickFixAssistProvider(parent) {} IAssistProvider::RunType runType() const override; bool supportsEditor(Core::Id editorId) const override; TextEditor::IAssistProcessor *createProcessor() const override; |