TextEditorActionHandler: Use configuration instead of inheritance

Avoids creating subclasses just for implementing a single method.

Change-Id: I813a0a20eaba8fefa004b74f92d48a9a9c4bfcc1
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2017-05-08 13:52:34 +02:00
parent 2684254fad
commit fd7edcb826
3 changed files with 19 additions and 22 deletions

View File

@@ -35,29 +35,17 @@
using namespace Android;
using namespace Android::Internal;
class AndroidTextEditorActionHandler : public TextEditor::TextEditorActionHandler
{
public:
explicit AndroidTextEditorActionHandler(QObject *parent)
: TextEditorActionHandler(parent,
Constants::ANDROID_MANIFEST_EDITOR_ID,
Constants::ANDROID_MANIFEST_EDITOR_CONTEXT)
{}
private:
TextEditor::TextEditorWidget *resolveTextEditorWidget(Core::IEditor *editor) const
{
AndroidManifestEditor *androidManifestEditor = static_cast<AndroidManifestEditor *>(editor);
return androidManifestEditor->textEditor();
}
};
AndroidManifestEditorFactory::AndroidManifestEditorFactory(QObject *parent)
: Core::IEditorFactory(parent)
{
setId(Constants::ANDROID_MANIFEST_EDITOR_ID);
setDisplayName(tr("Android Manifest editor"));
addMimeType(Constants::ANDROID_MANIFEST_MIME_TYPE);
new AndroidTextEditorActionHandler(this);
auto actionHandler = new TextEditor::TextEditorActionHandler(
this, id(), Constants::ANDROID_MANIFEST_EDITOR_CONTEXT);
actionHandler->setTextEditorWidgetResolver([](Core::IEditor *editor) {
return static_cast<AndroidManifestEditor *>(editor)->textEditor();
});
}
Core::IEditor *AndroidManifestEditorFactory::createEditor()