forked from qt-creator/qt-creator
Core: Make IEditorFactory::createEditor use a function object
Also, replace or remove unneeded Q_OBJECTs, and make base setters and adders protected. Change-Id: I212257ef53984d8852dc8c478537199fc9483486 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -8506,8 +8506,7 @@ class TextEditorFactoryPrivate
|
||||
public:
|
||||
TextEditorFactoryPrivate(TextEditorFactory *parent) :
|
||||
q(parent),
|
||||
m_widgetCreator([]() { return new TextEditorWidget; }),
|
||||
m_editorCreator([]() { return new BaseTextEditor; })
|
||||
m_widgetCreator([]() { return new TextEditorWidget; })
|
||||
{}
|
||||
|
||||
BaseTextEditor *duplicateTextEditor(BaseTextEditor *other)
|
||||
@@ -8540,7 +8539,9 @@ public:
|
||||
|
||||
TextEditorFactory::TextEditorFactory(QObject *parent)
|
||||
: IEditorFactory(parent), d(new TextEditorFactoryPrivate(this))
|
||||
{}
|
||||
{
|
||||
setEditorCreator([]() { return new BaseTextEditor; });
|
||||
}
|
||||
|
||||
TextEditorFactory::~TextEditorFactory()
|
||||
{
|
||||
@@ -8562,6 +8563,21 @@ void TextEditorFactory::setEditorWidgetCreator(const EditorWidgetCreator &creato
|
||||
void TextEditorFactory::setEditorCreator(const EditorCreator &creator)
|
||||
{
|
||||
d->m_editorCreator = creator;
|
||||
IEditorFactory::setEditorCreator([this] {
|
||||
static DocumentContentCompletionProvider basicSnippetProvider;
|
||||
TextDocumentPtr doc(d->m_documentCreator());
|
||||
|
||||
if (d->m_indenterCreator)
|
||||
doc->setIndenter(d->m_indenterCreator(doc->document()));
|
||||
|
||||
if (d->m_syntaxHighlighterCreator)
|
||||
doc->setSyntaxHighlighter(d->m_syntaxHighlighterCreator());
|
||||
|
||||
doc->setCompletionAssistProvider(d->m_completionAssistProvider ? d->m_completionAssistProvider
|
||||
: &basicSnippetProvider);
|
||||
|
||||
return d->createEditorHelper(doc);
|
||||
});
|
||||
}
|
||||
|
||||
void TextEditorFactory::setIndenterCreator(const IndenterCreator &creator)
|
||||
@@ -8629,23 +8645,6 @@ void TextEditorFactory::setParenthesesMatchingEnabled(bool on)
|
||||
d->m_paranthesesMatchinEnabled = on;
|
||||
}
|
||||
|
||||
IEditor *TextEditorFactory::createEditor()
|
||||
{
|
||||
static DocumentContentCompletionProvider basicSnippetProvider;
|
||||
TextDocumentPtr doc(d->m_documentCreator());
|
||||
|
||||
if (d->m_indenterCreator)
|
||||
doc->setIndenter(d->m_indenterCreator(doc->document()));
|
||||
|
||||
if (d->m_syntaxHighlighterCreator)
|
||||
doc->setSyntaxHighlighter(d->m_syntaxHighlighterCreator());
|
||||
|
||||
doc->setCompletionAssistProvider(d->m_completionAssistProvider ? d->m_completionAssistProvider
|
||||
: &basicSnippetProvider);
|
||||
|
||||
return d->createEditorHelper(doc);
|
||||
}
|
||||
|
||||
BaseTextEditor *TextEditorFactoryPrivate::createEditorHelper(const TextDocumentPtr &document)
|
||||
{
|
||||
TextEditorWidget *widget = m_widgetCreator();
|
||||
|
||||
Reference in New Issue
Block a user