diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp index 763a3568e59..0ee222b48c8 100644 --- a/src/plugins/bazaar/bazaarplugin.cpp +++ b/src/plugins/bazaar/bazaarplugin.cpp @@ -716,7 +716,7 @@ void BazaarPlugin::testDiffFileResolving_data() void BazaarPlugin::testDiffFileResolving() { - VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id); + VcsBaseEditorWidget::testDiffFileResolving(d->diffEditorFactory); } void BazaarPlugin::testLogResolving() @@ -739,7 +739,7 @@ void BazaarPlugin::testLogResolving() " (gz) Set approved revision and vote \"Approve\" when using lp-propose\n" " --approve (Jonathan Lange)\n" ); - VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "6572", "6571"); + VcsBaseEditorWidget::testLogResolving(d->logEditorFactory, data, "6572", "6571"); } #endif diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 760dcfc02d3..91e9082f943 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -2578,7 +2578,7 @@ void ClearCasePlugin::testDiffFileResolving_data() void ClearCasePlugin::testDiffFileResolving() { - VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id); + VcsBaseEditorWidget::testDiffFileResolving(dd->diffEditorFactory); } void ClearCasePlugin::testLogResolving() @@ -2587,7 +2587,7 @@ void ClearCasePlugin::testLogResolving() "13-Sep.17:41 user1 create version \"src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/9\" (baseline1, baseline2, ...)\n" "22-Aug.14:13 user2 create version \"src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/8\" (baseline3, baseline4, ...)\n" ); - VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, + VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/9", "src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/8"); } diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index 67f96e7414f..26bbfffd72c 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -369,6 +369,7 @@ private: CvsSettingsPage m_settingsPage{[this] { configurationChanged(); }, &m_settings}; +public: VcsSubmitEditorFactory submitEditorFactory { submitParameters, [] { return new CvsSubmitEditor; }, @@ -1575,7 +1576,7 @@ void CvsPlugin::testDiffFileResolving_data() void CvsPlugin::testDiffFileResolving() { - VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id); + VcsBaseEditorWidget::testDiffFileResolving(dd->diffEditorFactory); } void CvsPlugin::testLogResolving() @@ -1601,7 +1602,7 @@ void CvsPlugin::testLogResolving() "added latest commentary\n" "----------------------------\n" ); - VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "1.3", "1.2"); + VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "1.3", "1.2"); } #endif diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index d282815ead0..acb2b584a0c 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -1973,7 +1973,7 @@ void GitPlugin::testDiffFileResolving_data() void GitPlugin::testDiffFileResolving() { - VcsBaseEditorWidget::testDiffFileResolving(commitTextEditorParameters.id); + VcsBaseEditorWidget::testDiffFileResolving(dd->commitTextEditorFactory); } void GitPlugin::testLogResolving() @@ -1999,7 +1999,7 @@ void GitPlugin::testLogResolving() " Signed-off-by: Junio C Hamano \n" ); - VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, + VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "50a6b54c - Merge branch 'for-junio' of git://bogomips.org/git-svn", "3587b513 - Update draft release notes to 1.8.2"); } diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp index d25a71f7927..533d08f4e9e 100644 --- a/src/plugins/mercurial/mercurialplugin.cpp +++ b/src/plugins/mercurial/mercurialplugin.cpp @@ -222,6 +222,7 @@ private: bool m_submitActionTriggered = false; +public: VcsSubmitEditorFactory submitEditorFactory { submitEditorParameters, [] { return new CommitEditor; }, @@ -901,7 +902,7 @@ void MercurialPlugin::testDiffFileResolving_data() void MercurialPlugin::testDiffFileResolving() { - VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id); + VcsBaseEditorWidget::testDiffFileResolving(dd->diffEditorFactory); } void MercurialPlugin::testLogResolving() @@ -921,7 +922,7 @@ void MercurialPlugin::testLogResolving() "date: Sat Jan 19 04:08:16 2013 +0100\n" "summary: test-rebase: add another test for rebase with multiple roots\n" ); - VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "18473:692cbda1eb50", "18472:37100f30590f"); + VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "18473:692cbda1eb50", "18472:37100f30590f"); } #endif diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index 9350c6fdcc3..e2c6e97245f 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -1783,7 +1783,7 @@ void PerforcePlugin::testLogResolving() "\n" " Comment\n" ); - VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "12345", "12344"); + VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "12345", "12344"); } #endif diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index d4fa35042f5..38526b4b7b4 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -324,6 +324,7 @@ private: SubversionSettingsPage m_settingsPage{[this] { configurationChanged(); }, &m_settings}; +public: VcsSubmitEditorFactory submitEditorFactory { submitParameters, [] { return new SubversionSubmitEditor; }, @@ -1328,7 +1329,7 @@ void SubversionPlugin::testLogResolving() " expectations, remove XFail.\n" "\n" ); - VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "r1439551", "r1439540"); + VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "r1439551", "r1439540"); } #endif diff --git a/src/plugins/vcsbase/basevcseditorfactory.cpp b/src/plugins/vcsbase/basevcseditorfactory.cpp index 7502e536372..13346949cfe 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(factory)) { - if (vcsFactory->property("VcsEditorFactoryName").toByteArray() == id) - return qobject_cast(factory->createEditor()); - } - } - return nullptr; -} - } // namespace VcsBase diff --git a/src/plugins/vcsbase/basevcseditorfactory.h b/src/plugins/vcsbase/basevcseditorfactory.h index 8c2b8cbdf67..b1b828716e5 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 describeFunc); - - static VcsBaseEditor *createEditorById(const char *id); }; } // namespace VcsBase diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index 9af6a3d8c4c..0471968dcfd 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -1626,9 +1627,11 @@ Core::IEditor *VcsBaseEditor::locateEditorByTag(const QString &tag) #ifdef WITH_TESTS #include -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(factory.createEditor()); auto widget = qobject_cast(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(factory.createEditor()); auto widget = qobject_cast(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 5a0f371eeb4..863d300d62f 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 };