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 | |
parent | bbf3682c2cd53775b2e457e43b6edd198c864657 (diff) | |
download | qt-creator-9c96a1c4de382305ae66407df29bb47845afaac3.tar.gz |
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')
-rw-r--r-- | src/plugins/bazaar/bazaarplugin.cpp | 4 | ||||
-rw-r--r-- | src/plugins/clearcase/clearcaseplugin.cpp | 4 | ||||
-rw-r--r-- | src/plugins/cvs/cvsplugin.cpp | 5 | ||||
-rw-r--r-- | src/plugins/git/gitplugin.cpp | 4 | ||||
-rw-r--r-- | src/plugins/mercurial/mercurialplugin.cpp | 5 | ||||
-rw-r--r-- | src/plugins/perforce/perforceplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/subversion/subversionplugin.cpp | 3 | ||||
-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 |
11 files changed, 34 insertions, 33 deletions
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp index 763a3568e5..0ee222b48c 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 760dcfc02d..91e9082f94 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 67f96e7414..26bbfffd72 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 d282815ead..acb2b584a0 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 <gitster@pobox.com>\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 d25a71f792..533d08f4e9 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 9350c6fdcc..e2c6e97245 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 d4fa35042f..38526b4b7b 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 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 }; |