TextEditor: Make completion assist provider a data member

In case of the CppEditor a direct member is not possible due
to setup restrictions inside the CppEditor machinery. I'd expect
that to be fixable when the editor base system is in good shape.

Change-Id: I184e219ca2dff6f67c9b58c182212eb12972cc84
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
hjk
2014-07-30 17:02:39 +02:00
parent 80fb772856
commit 9fd2fe5a9a
14 changed files with 32 additions and 45 deletions

View File

@@ -198,6 +198,7 @@ public:
QAction *m_fileEncodingLabelAction;
Utils::LineColumnLabel *m_fileEncodingLabel;
CommentDefinition m_commentDefinition;
std::function<CompletionAssistProvider *()> m_completionAssistProvider;
};
class BaseTextEditorWidgetPrivate
@@ -6447,6 +6448,8 @@ BaseTextEditor::BaseTextEditor(BaseTextEditorWidget *editor)
d->m_cursorPositionLabelAction = d->m_toolBar->addWidget(d->m_cursorPositionLabel);
d->m_fileEncodingLabelAction = d->m_toolBar->addWidget(d->m_fileEncodingLabel);
d->m_completionAssistProvider = [] () -> CompletionAssistProvider * { return 0; };
setFileEncodingLabelVisible(editor->displaySettings().m_displayFileEncoding);
connect(editor, SIGNAL(cursorPositionChanged()), this, SLOT(updateCursorPosition()));
connect(d->m_cursorPositionLabel, SIGNAL(clicked()), this, SLOT(openGotoLocator()));
@@ -6587,7 +6590,17 @@ void BaseTextEditor::setCommentStyle(CommentDefinition::Style style)
CompletionAssistProvider *BaseTextEditor::completionAssistProvider()
{
return 0;
return d->m_completionAssistProvider();
}
void BaseTextEditor::setCompletionAssistProvider(CompletionAssistProvider *provider)
{
d->m_completionAssistProvider = [provider] () -> CompletionAssistProvider * { return provider; };
}
void BaseTextEditor::setCompletionAssistProvider(const std::function<CompletionAssistProvider *()> &provider)
{
d->m_completionAssistProvider = provider;
}
QObject *BaseTextEditor::fileEncodingLabel() const