diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp index 68459bc9f2d..16f8c21ad4f 100644 --- a/src/plugins/coreplugin/editortoolbar.cpp +++ b/src/plugins/coreplugin/editortoolbar.cpp @@ -228,7 +228,7 @@ EditorToolBar::~EditorToolBar() void EditorToolBar::removeToolbarForEditor(IEditor *editor) { QTC_ASSERT(editor, return); - disconnect(editor->document(), &IDocument::changed, this, &EditorToolBar::checkDocumentStatus); + disconnect(editor->document(), &IDocument::changed, this, nullptr); QWidget *toolBar = editor->toolBar(); if (toolBar != nullptr) { @@ -262,7 +262,9 @@ void EditorToolBar::closeEditor() void EditorToolBar::addEditor(IEditor *editor) { QTC_ASSERT(editor, return); - connect(editor->document(), &IDocument::changed, this, &EditorToolBar::checkDocumentStatus); + auto document = editor->document(); + connect(document, &IDocument::changed, + this, [this, document] { checkDocumentStatus(document); }); QWidget *toolBar = editor->toolBar(); if (toolBar && !d->m_isStandalone) @@ -372,10 +374,8 @@ void EditorToolBar::updateActionShortcuts() d->m_closeSplitButton->setToolTip(ActionManager::command(Constants::REMOVE_CURRENT_SPLIT)->stringWithAppendedShortcut(tr("Remove Split"))); } -void EditorToolBar::checkDocumentStatus() +void EditorToolBar::checkDocumentStatus(IDocument *document) { - auto document = qobject_cast(sender()); - QTC_ASSERT(document, return); DocumentModel::Entry *entry = DocumentModel::entryAtRow( d->m_editorList->currentIndex()); diff --git a/src/plugins/coreplugin/editortoolbar.h b/src/plugins/coreplugin/editortoolbar.h index 4026ce3c1f0..4d9072209ff 100644 --- a/src/plugins/coreplugin/editortoolbar.h +++ b/src/plugins/coreplugin/editortoolbar.h @@ -100,7 +100,7 @@ private: static void changeActiveEditor(int row); static void makeEditorWritable(); - void checkDocumentStatus(); + void checkDocumentStatus(IDocument *document); void closeEditor(); void updateActionShortcuts();