diff options
author | hjk <hjk@qt.io> | 2020-02-12 11:51:45 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-02-13 07:10:21 +0000 |
commit | 9c96a1c4de382305ae66407df29bb47845afaac3 (patch) | |
tree | 2b55730b56935ccc767c2b1f5300d129cceaba43 /src/plugins/vcsbase | |
parent | bbf3682c2cd53775b2e457e43b6edd198c864657 (diff) |
Vcs: Make VcsBaseEditorWidget::test* operate on factories directly
Saves re-discovery by id.
Change-Id: I026c1388d02f125147a9b4f5367d7a1a266bff3c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/vcsbase')
-rw-r--r-- | src/plugins/vcsbase/basevcseditorfactory.cpp | 11 | ||||
-rw-r--r-- | src/plugins/vcsbase/basevcseditorfactory.h | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseeditor.cpp | 19 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseeditor.h | 8 |
4 files changed, 19 insertions, 21 deletions
diff --git a/src/plugins/vcsbase/basevcseditorfactory.cpp b/src/plugins/vcsbase/basevcseditorfactory.cpp index 7502e53637..13346949cf 100644 --- a/src/plugins/vcsbase/basevcseditorfactory.cpp +++ b/src/plugins/vcsbase/basevcseditorfactory.cpp @@ -82,15 +82,4 @@ VcsEditorFactory::VcsEditorFactory(const VcsBaseEditorParameters *parameters, setMarksVisible(false); } -VcsBaseEditor *VcsEditorFactory::createEditorById(const char *id) -{ - for (IEditorFactory *factory : allEditorFactories()) { - if (auto vcsFactory = qobject_cast<VcsEditorFactory *>(factory)) { - if (vcsFactory->property("VcsEditorFactoryName").toByteArray() == id) - return qobject_cast<VcsBaseEditor *>(factory->createEditor()); - } - } - return nullptr; -} - } // namespace VcsBase diff --git a/src/plugins/vcsbase/basevcseditorfactory.h b/src/plugins/vcsbase/basevcseditorfactory.h index 8c2b8cbdf6..b1b828716e 100644 --- a/src/plugins/vcsbase/basevcseditorfactory.h +++ b/src/plugins/vcsbase/basevcseditorfactory.h @@ -43,8 +43,6 @@ public: VcsEditorFactory(const VcsBaseEditorParameters *parameters, const EditorWidgetCreator editorWidgetCreator, std::function<void(const QString &, const QString &)> describeFunc); - - static VcsBaseEditor *createEditorById(const char *id); }; } // namespace VcsBase diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index 9af6a3d8c4..0471968dcf 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -35,6 +35,7 @@ #include <coreplugin/vcsmanager.h> #include <coreplugin/patchtool.h> #include <coreplugin/editormanager/editormanager.h> +#include <coreplugin/editormanager/ieditorfactory.h> #include <cpaster/codepasterservice.h> #include <extensionsystem/pluginmanager.h> #include <projectexplorer/editorconfiguration.h> @@ -1626,9 +1627,11 @@ Core::IEditor *VcsBaseEditor::locateEditorByTag(const QString &tag) #ifdef WITH_TESTS #include <QTest> -void VcsBase::VcsBaseEditorWidget::testDiffFileResolving(const char *id) +namespace VcsBase { + +void VcsBaseEditorWidget::testDiffFileResolving(const VcsEditorFactory &factory) { - VcsBaseEditor *editor = VcsBase::VcsEditorFactory::createEditorById(id); + VcsBaseEditor *editor = qobject_cast<VcsBaseEditor *>(factory.createEditor()); auto widget = qobject_cast<VcsBaseEditorWidget *>(editor->editorWidget()); QFETCH(QByteArray, header); @@ -1642,11 +1645,12 @@ void VcsBase::VcsBaseEditorWidget::testDiffFileResolving(const char *id) delete editor; } -void VcsBase::VcsBaseEditorWidget::testLogResolving(const char *id, QByteArray &data, - const QByteArray &entry1, - const QByteArray &entry2) +void VcsBaseEditorWidget::testLogResolving(const VcsEditorFactory &factory, + const QByteArray &data, + const QByteArray &entry1, + const QByteArray &entry2) { - VcsBaseEditor *editor = VcsBase::VcsEditorFactory::createEditorById(id); + VcsBaseEditor *editor = qobject_cast<VcsBaseEditor *>(factory.createEditor()); auto widget = qobject_cast<VcsBaseEditorWidget *>(editor->editorWidget()); widget->textDocument()->setPlainText(QLatin1String(data)); @@ -1655,6 +1659,9 @@ void VcsBase::VcsBaseEditorWidget::testLogResolving(const char *id, QByteArray & delete editor; } + +} // VcsBase + #endif #include "vcsbaseeditor.moc" diff --git a/src/plugins/vcsbase/vcsbaseeditor.h b/src/plugins/vcsbase/vcsbaseeditor.h index 5a0f371eeb..863d300d62 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.h +++ b/src/plugins/vcsbase/vcsbaseeditor.h @@ -48,6 +48,7 @@ class BaseAnnotationHighlighter; class VcsBaseEditorWidget; class VcsBaseEditorConfig; class VcsCommand; +class VcsEditorFactory; // Documentation inside enum EditorContentType @@ -295,8 +296,11 @@ private: #ifdef WITH_TESTS public: - static void testDiffFileResolving(const char *id); - static void testLogResolving(const char *id, QByteArray &data, const QByteArray &entry1, const QByteArray &entry2); + static void testDiffFileResolving(const VcsEditorFactory &factory); + static void testLogResolving(const VcsEditorFactory &factory, + const QByteArray &data, + const QByteArray &entry1, + const QByteArray &entry2); #endif }; |