summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@theqtcompany.com>2016-03-16 13:04:05 +0100
committerDavid Schulz <david.schulz@theqtcompany.com>2016-04-28 12:14:41 +0000
commit898968b101abe4d197f0cfcdcdcebb58dfe0fe3c (patch)
tree87c83c2bba27bcea3d21db164925fc9197b940c2 /src/plugins/cppeditor
parent16aeecea2c88d64d29f1d4f4e02939c790445e87 (diff)
downloadqt-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.cpp7
-rw-r--r--src/plugins/cppeditor/cppeditordocument.h1
-rw-r--r--src/plugins/cppeditor/cppeditorplugin.cpp3
-rw-r--r--src/plugins/cppeditor/cppquickfixassistant.h1
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;