diff --git a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp index 73e55fbc51d..a25213c1fcd 100644 --- a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp +++ b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp @@ -309,16 +309,14 @@ ToolBarBackend::ToolBarBackend(QObject *parent) this, &ToolBarBackend::documentIndexChanged); - connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, this, [this]() { - static QMetaObject::Connection *lastConnection = nullptr; - delete lastConnection; + connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, this, [this] { + static QMetaObject::Connection lastConnection; + disconnect(lastConnection); if (auto textDocument = qobject_cast( Core::EditorManager::currentDocument())) { - connect(textDocument->document(), - &QTextDocument::modificationChanged, - this, - &ToolBarBackend::isDocumentDirtyChanged); + lastConnection = connect(textDocument->document(), &QTextDocument::modificationChanged, + this, &ToolBarBackend::isDocumentDirtyChanged); emit isDocumentDirtyChanged(); } });