diff options
author | hjk <hjk121@nokiamail.com> | 2014-10-22 18:38:23 +0200 |
---|---|---|
committer | David Schulz <david.schulz@digia.com> | 2014-10-29 08:18:11 +0100 |
commit | 4f52eb373a5c7faa85ad301534a7f28e4e79b3a1 (patch) | |
tree | f90bcb4c892b1ac318840654fcddf3d507ffa712 | |
parent | 4eed4830130265eb9aea12086cb3ee0387738b61 (diff) |
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>
-rw-r--r-- | src/plugins/vcsbase/basevcseditorfactory.cpp | 7 | ||||
-rw-r--r-- | src/plugins/vcsbase/basevcseditorfactory.h | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/plugins/vcsbase/basevcseditorfactory.cpp b/src/plugins/vcsbase/basevcseditorfactory.cpp index 2026d4a535..700f0162d0 100644 --- a/src/plugins/vcsbase/basevcseditorfactory.cpp +++ b/src/plugins/vcsbase/basevcseditorfactory.cpp @@ -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); diff --git a/src/plugins/vcsbase/basevcseditorfactory.h b/src/plugins/vcsbase/basevcseditorfactory.h index 9ca286ce87..ba7fdecf0f 100644 --- a/src/plugins/vcsbase/basevcseditorfactory.h +++ b/src/plugins/vcsbase/basevcseditorfactory.h @@ -44,7 +44,7 @@ class VCSBASE_EXPORT VcsEditorFactory : public TextEditor::TextEditorFactory public: VcsEditorFactory(const VcsBaseEditorParameters *parameters, - const EditorWidgetCreator &editorWidgetCreator, + const EditorWidgetCreator editorWidgetCreator, QObject *describeReceiver, const char *describeSlot); |