diff options
author | Eike Ziller <eike.ziller@qt.io> | 2020-02-11 14:00:09 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2020-02-12 10:28:31 +0000 |
commit | d43f1662d0b44b3b930989f11604661c377bd67e (patch) | |
tree | a0fa3da727994ee53dba9c8eae17b741004515fe /src/plugins/texteditor/texteditoractionhandler.cpp | |
parent | 42f02fae035b2eda431c0b8c05a3bd5d85f0a280 (diff) |
Make TextEditor setup more flexible
So far it was only possible to combine TextEditorFactory, BaseTextEditor
and TextEditorWidget directly.
That TextEditorWidget is also directly a QPlainTextEdit made it
impossible to "decorate" the text editor widget with something else
without a lot of effort.
Make it possible to create a text editor factory that returns an
arbitrary widget, as long as it can be "cast" to a TextEditorWidget with
either qobject_cast or Aggregation::query. That way the TextEditorWidget
instance can be attached to the editor widget via Aggregation.
Adapt other code that accesses TextEditorWidget from editors
accordingly. Introduce a common method how to do that.
Change-Id: I72b8721f3a8a8d8281c39af75253e9c80cbe1250
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/texteditoractionhandler.cpp')
-rw-r--r-- | src/plugins/texteditor/texteditoractionhandler.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/texteditor/texteditoractionhandler.cpp b/src/plugins/texteditor/texteditoractionhandler.cpp index 4cae664cb4..67d5898509 100644 --- a/src/plugins/texteditor/texteditoractionhandler.cpp +++ b/src/plugins/texteditor/texteditoractionhandler.cpp @@ -31,6 +31,8 @@ #include "texteditorconstants.h" #include "texteditorplugin.h" +#include <aggregation/aggregate.h> + #include <coreplugin/locator/locatormanager.h> #include <coreplugin/icore.h> #include <coreplugin/editormanager/editormanager.h> @@ -592,7 +594,7 @@ TextEditorActionHandler::TextEditorActionHandler(Core::Id editorId, if (resolver) d->m_findTextWidget = resolver; else - d->m_findTextWidget = [](Core::IEditor *editor) { return qobject_cast<TextEditorWidget *>(editor->widget()); }; + d->m_findTextWidget = TextEditorWidget::fromEditor; } TextEditorActionHandler::~TextEditorActionHandler() |