Vcs: Pass EditorWidgetCreator as copy to factory

This is an attempt to solve QTCREATORBUG-13218.
This should not be needed.

Change-Id: Icc41d83cb051ace11708645e5de18eae70746122
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
hjk
2014-10-22 18:38:23 +02:00
committed by David Schulz
parent 4eed483013
commit 4f52eb373a
2 changed files with 5 additions and 4 deletions

View File

@@ -54,7 +54,8 @@ using namespace TextEditor;
namespace VcsBase {
VcsEditorFactory::VcsEditorFactory(const VcsBaseEditorParameters *parameters,
const EditorWidgetCreator &editorWidgetCreator,
// Force copy, see QTCREATORBUG-13218
const EditorWidgetCreator editorWidgetCreator,
QObject *describeReceiver, const char *describeSlot)
{
setProperty("VcsEditorFactoryName", QByteArray(parameters->id));
@@ -66,14 +67,14 @@ VcsEditorFactory::VcsEditorFactory(const VcsBaseEditorParameters *parameters,
setEditorActionHandlers(TextEditorActionHandler::None);
setDuplicatedSupported(false);
setDocumentCreator([=]() -> TextDocument* {
setDocumentCreator([this, parameters]() -> TextDocument* {
auto document = new TextDocument(parameters->id);
// if (QLatin1String(parameters->mimeType) != QLatin1String(DiffEditor::Constants::DIFF_EDITOR_MIMETYPE))
document->setMimeType(QLatin1String(parameters->mimeType));
return document;
});
setEditorWidgetCreator([=]() -> TextEditorWidget* {
setEditorWidgetCreator([this, parameters, editorWidgetCreator, describeReceiver, describeSlot]() -> TextEditorWidget* {
auto widget = qobject_cast<VcsBaseEditorWidget *>(editorWidgetCreator());
widget->setDescribeSlot(describeReceiver, describeSlot);
widget->setParameters(parameters);