diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index 75c81efb536..5f4ac8ac907 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -34,10 +34,7 @@ namespace TextEditor { class CodeAssistantPrivate : public QObject { public: - CodeAssistantPrivate(CodeAssistant *assistant); - - void configure(TextEditorWidget *editorWidget); - bool isConfigured() const; + CodeAssistantPrivate(CodeAssistant *assistant, TextEditorWidget *editorWidget); void invoke(AssistKind kind, IAssistProvider *provider = nullptr); void process(); @@ -99,8 +96,9 @@ private: // -------------------- const QChar CodeAssistantPrivate::m_null; -CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant) +CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant, TextEditorWidget *editorWidget) : q(assistant) + , m_editorWidget(editorWidget) { m_automaticProposalTimer.setSingleShot(true); connect(&m_automaticProposalTimer, &QTimer::timeout, @@ -112,24 +110,11 @@ CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant) connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, this, &CodeAssistantPrivate::clearAbortedPosition); -} - -void CodeAssistantPrivate::configure(TextEditorWidget *editorWidget) -{ - m_editorWidget = editorWidget; m_editorWidget->installEventFilter(this); } -bool CodeAssistantPrivate::isConfigured() const -{ - return m_editorWidget != nullptr; -} - void CodeAssistantPrivate::invoke(AssistKind kind, IAssistProvider *provider) { - if (!isConfigured()) - return; - stopAutomaticProposalTimer(); if (isDisplayingProposal() && m_assistKind == kind && !m_proposal->isFragile() @@ -159,9 +144,6 @@ bool CodeAssistantPrivate::requestActivationCharProposal() void CodeAssistantPrivate::process() { - if (!isConfigured()) - return; - stopAutomaticProposalTimer(); if (m_assistKind == TextEditor::Completion) { @@ -552,7 +534,8 @@ bool CodeAssistantPrivate::eventFilter(QObject *o, QEvent *e) // ------------- // CodeAssistant // ------------- -CodeAssistant::CodeAssistant() : d(new CodeAssistantPrivate(this)) +CodeAssistant::CodeAssistant(TextEditorWidget *editorWidget) + : d(new CodeAssistantPrivate(this, editorWidget)) { } @@ -562,11 +545,6 @@ CodeAssistant::~CodeAssistant() delete d; } -void CodeAssistant::configure(TextEditorWidget *editorWidget) -{ - d->configure(editorWidget); -} - void CodeAssistant::process() { d->process(); diff --git a/src/plugins/texteditor/codeassist/codeassistant.h b/src/plugins/texteditor/codeassist/codeassistant.h index 0518777557b..2faeb21be7f 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.h +++ b/src/plugins/texteditor/codeassist/codeassistant.h @@ -20,11 +20,9 @@ class CodeAssistant : public QObject Q_OBJECT public: - CodeAssistant(); + CodeAssistant(TextEditorWidget *editorWidget); ~CodeAssistant() override; - void configure(TextEditorWidget *editorWidget); - void process(); void notifyChange(); bool hasContext() const; diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 9a1f6dffa2c..4d6c193caf8 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -904,6 +904,7 @@ TextEditorWidgetPrivate::TextEditorWidgetPrivate(TextEditorWidget *parent) , m_requestMarkEnabled(true) , m_lineSeparatorsAllowed(false) , m_maybeFakeTooltipEvent(false) + , m_codeAssistant(parent) , m_hoverHandlerRunner(parent, m_hoverHandlers) , m_clipboardAssistProvider(new ClipboardAssistProvider) , m_autoCompleter(new AutoCompleter) @@ -8876,7 +8877,6 @@ BaseTextEditor *TextEditorFactoryPrivate::createEditorHelper(const TextDocumentP textEditorWidget->autoCompleter()->setTabSettings(document->tabSettings()); textEditorWidget->d->m_hoverHandlers = m_hoverHandlers; - textEditorWidget->d->m_codeAssistant.configure(textEditorWidget); textEditorWidget->d->m_commentDefinition = m_commentDefinition; QObject::connect(textEditorWidget,