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 <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2025-03-19 15:42:04 +01:00
parent ab81767b46
commit 8800e041d2
2 changed files with 8 additions and 4 deletions

View File

@@ -393,13 +393,16 @@ ToolBarBackend::ToolBarBackend(QObject *parent)
&ToolBarBackend::documentIndexChanged); &ToolBarBackend::documentIndexChanged);
connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, this, [this] { connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, this, [this] {
static QMetaObject::Connection lastConnection; disconnect(m_documentConnection);
disconnect(lastConnection);
if (auto textDocument = qobject_cast<TextEditor::TextDocument *>( if (auto textDocument = qobject_cast<TextEditor::TextDocument *>(
Core::EditorManager::currentDocument())) { Core::EditorManager::currentDocument())) {
lastConnection = connect(textDocument->document(), &QTextDocument::modificationChanged, m_documentConnection = connect(textDocument->document(),
this, &ToolBarBackend::isDocumentDirtyChanged); &QTextDocument::modificationChanged,
this,
&ToolBarBackend::isDocumentDirtyChanged);
emit isDocumentDirtyChanged(); emit isDocumentDirtyChanged();
} }
}); });

View File

@@ -235,6 +235,7 @@ private:
QStringList m_openDocuments; QStringList m_openDocuments;
QMetaObject::Connection m_kitConnection; QMetaObject::Connection m_kitConnection;
QMetaObject::Connection m_documentConnection;
}; };
} // namespace QmlDesigner } // namespace QmlDesigner