aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-10-22 18:38:23 +0200
committerDavid Schulz <david.schulz@digia.com>2014-10-29 08:18:11 +0100
commit4f52eb373a5c7faa85ad301534a7f28e4e79b3a1 (patch)
treef90bcb4c892b1ac318840654fcddf3d507ffa712
parent4eed4830130265eb9aea12086cb3ee0387738b61 (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.cpp7
-rw-r--r--src/plugins/vcsbase/basevcseditorfactory.h2
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);