From 8800e041d2e821992625ec6275a633fc41c1e364 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 19 Mar 2025 15:42:04 +0100 Subject: [PATCH] QmlDesigner: Fix deletion of connections Since we have multiple instances of this class we cannot use a static variable. We have to use a member instead. Pick-to: qds/4.7 Task-number: QDS-14451 Change-Id: Ia85c145fb0b8a491132ca270cb62fb75809a03a0 Reviewed-by: Tim Jenssen --- .../qmldesigner/components/toolbar/toolbarbackend.cpp | 11 +++++++---- .../qmldesigner/components/toolbar/toolbarbackend.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp index 3cfac6c57c1..1569e4df949 100644 --- a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp +++ b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp @@ -393,13 +393,16 @@ ToolBarBackend::ToolBarBackend(QObject *parent) &ToolBarBackend::documentIndexChanged); connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, this, [this] { - static QMetaObject::Connection lastConnection; - disconnect(lastConnection); + disconnect(m_documentConnection); if (auto textDocument = qobject_cast( Core::EditorManager::currentDocument())) { - lastConnection = connect(textDocument->document(), &QTextDocument::modificationChanged, - this, &ToolBarBackend::isDocumentDirtyChanged); + m_documentConnection = connect(textDocument->document(), + &QTextDocument::modificationChanged, + this, + + &ToolBarBackend::isDocumentDirtyChanged); + emit isDocumentDirtyChanged(); } }); diff --git a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h index a1b28f88f32..a41d5d23aa9 100644 --- a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h +++ b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h @@ -235,6 +235,7 @@ private: QStringList m_openDocuments; QMetaObject::Connection m_kitConnection; + QMetaObject::Connection m_documentConnection; }; } // namespace QmlDesigner