diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2018-04-06 15:57:30 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2018-04-09 09:31:40 +0000 |
commit | e806ea40ccaff89857604d53fc8e78a155ce9ad1 (patch) | |
tree | bcace8f44d4d9649a77c70e04b17736eb20a2a1d /src/plugins/diffeditor | |
parent | 18ad5653d5cce51a02109e4955c1f4655d76b886 (diff) |
Pass this context object to the connect()
Otherwise when "this" instance
gets deleted and the sender still exists, the lambda
expression is still invoked for the deleted object.
Task-number: QTCREATORBUG-20223
Change-Id: Ifd5c9e6ce1fe7fde71698c6683cdfcd7566e8d35
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/diffeditor')
-rw-r--r-- | src/plugins/diffeditor/descriptionwidgetwatcher.cpp | 4 | ||||
-rw-r--r-- | src/plugins/diffeditor/diffeditorwidgetcontroller.cpp | 6 | ||||
-rw-r--r-- | src/plugins/diffeditor/sidebysidediffeditorwidget.cpp | 8 |
3 files changed, 9 insertions, 9 deletions
diff --git a/src/plugins/diffeditor/descriptionwidgetwatcher.cpp b/src/plugins/diffeditor/descriptionwidgetwatcher.cpp index 0e310cfbcd..5b266ebe74 100644 --- a/src/plugins/diffeditor/descriptionwidgetwatcher.cpp +++ b/src/plugins/diffeditor/descriptionwidgetwatcher.cpp @@ -44,7 +44,7 @@ DescriptionWidgetWatcher::DescriptionWidgetWatcher(DiffEditorController *control m_widgets.append(widget); } - connect(EditorManager::instance(), &EditorManager::editorOpened, + connect(EditorManager::instance(), &EditorManager::editorOpened, this, [this](IEditor *editor) { if (TextEditor::TextEditorWidget *widget = descriptionWidget(editor)) { m_widgets.append(widget); @@ -52,7 +52,7 @@ DescriptionWidgetWatcher::DescriptionWidgetWatcher(DiffEditorController *control } }); - connect(EditorManager::instance(), &EditorManager::editorAboutToClose, + connect(EditorManager::instance(), &EditorManager::editorAboutToClose, this, [this](IEditor *editor) { if (TextEditor::TextEditorWidget *widget = descriptionWidget(editor)) { emit descriptionWidgetRemoved(widget); diff --git a/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp b/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp index c4a826bfe9..834c320a52 100644 --- a/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp +++ b/src/plugins/diffeditor/diffeditorwidgetcontroller.cpp @@ -227,7 +227,7 @@ void DiffEditorWidgetController::addCodePasterAction(QMenu *menu, int fileIndex, if (ExtensionSystem::PluginManager::getObject<CodePaster::Service>()) { // optional code pasting service QAction *sendChunkToCodePasterAction = menu->addAction(tr("Send Chunk to CodePaster...")); - connect(sendChunkToCodePasterAction, &QAction::triggered, [this, fileIndex, chunkIndex]() { + connect(sendChunkToCodePasterAction, &QAction::triggered, this, [this, fileIndex, chunkIndex]() { sendChunkToCodePaster(fileIndex, chunkIndex); }); } @@ -253,7 +253,7 @@ bool DiffEditorWidgetController::fileNamesAreDifferent(int fileIndex) const void DiffEditorWidgetController::addApplyAction(QMenu *menu, int fileIndex, int chunkIndex) { QAction *applyAction = menu->addAction(tr("Apply Chunk...")); - connect(applyAction, &QAction::triggered, [this, fileIndex, chunkIndex]() { + connect(applyAction, &QAction::triggered, this, [this, fileIndex, chunkIndex]() { patch(false, fileIndex, chunkIndex); }); applyAction->setEnabled(chunkExists(fileIndex, chunkIndex) && fileNamesAreDifferent(fileIndex)); @@ -262,7 +262,7 @@ void DiffEditorWidgetController::addApplyAction(QMenu *menu, int fileIndex, int void DiffEditorWidgetController::addRevertAction(QMenu *menu, int fileIndex, int chunkIndex) { QAction *revertAction = menu->addAction(tr("Revert Chunk...")); - connect(revertAction, &QAction::triggered, [this, fileIndex, chunkIndex]() { + connect(revertAction, &QAction::triggered, this, [this, fileIndex, chunkIndex]() { patch(true, fileIndex, chunkIndex); }); revertAction->setEnabled(chunkExists(fileIndex, chunkIndex)); diff --git a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp index 81942a9a66..0836e9a952 100644 --- a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp +++ b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp @@ -166,7 +166,7 @@ SideDiffEditorWidget::SideDiffEditorWidget(QWidget *parent) settings.m_highlightBlocks = false; SelectableTextEditorWidget::setDisplaySettings(settings); - connect(this, &TextEditorWidget::tooltipRequested, [this](const QPoint &point, int position) { + connect(this, &TextEditorWidget::tooltipRequested, this, [this](const QPoint &point, int position) { const int block = document()->findBlock(position).blockNumber(); const auto it = m_fileInfo.constFind(block); if (it != m_fileInfo.constEnd()) @@ -648,10 +648,10 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent) }; setupHighlightController(); - connect(m_leftEditor, &SideDiffEditorWidget::gotDisplaySettings, setupHighlightController); + connect(m_leftEditor, &SideDiffEditorWidget::gotDisplaySettings, this, setupHighlightController); m_rightEditor->verticalScrollBar()->setFocusProxy(m_leftEditor); - connect(m_leftEditor, &SideDiffEditorWidget::gotFocus, [this]() { + connect(m_leftEditor, &SideDiffEditorWidget::gotFocus, this, [this]() { if (m_rightEditor->verticalScrollBar()->focusProxy() == m_leftEditor) return; // We already did it before. @@ -672,7 +672,7 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent) // too. We bring back the original policy to keep tab focus working. m_leftEditor->setFocusPolicy(Qt::StrongFocus); }); - connect(m_rightEditor, &SideDiffEditorWidget::gotFocus, [this]() { + connect(m_rightEditor, &SideDiffEditorWidget::gotFocus, this, [this]() { // Unhack #1. m_rightEditor->verticalScrollBar()->setFocusProxy(nullptr); // Unhack #2. |