forked from qt-creator/qt-creator
Vcs: Make VcsBaseEditorWidget::test* operate on factories directly
Saves re-discovery by id. Change-Id: I026c1388d02f125147a9b4f5367d7a1a266bff3c Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user