diff --git a/src/Gui/EditorView.cpp b/src/Gui/EditorView.cpp index f0ac94567a..0ad911d0b8 100644 --- a/src/Gui/EditorView.cpp +++ b/src/Gui/EditorView.cpp @@ -139,14 +139,15 @@ EditorView::EditorView(TextEdit* editor, QWidget* parent) d->activityTimer = new QTimer(this); // clang-format off + connectionList << connect(d->activityTimer, &QTimer::timeout, - this, &EditorView::checkTimestamp); + this, &EditorView::checkTimestamp) << connect(d->textEdit->document(), &QTextDocument::modificationChanged, - this, &EditorView::setWindowModified); + this, &EditorView::setWindowModified) << connect(d->textEdit->document(), &QTextDocument::undoAvailable, - this, &EditorView::undoAvailable); + this, &EditorView::undoAvailable) << connect(d->textEdit->document(), &QTextDocument::redoAvailable, - this, &EditorView::redoAvailable); + this, &EditorView::redoAvailable) << connect(d->textEdit->document(), &QTextDocument::contentsChange, this, &EditorView::contentsChange); // clang-format on @@ -156,6 +157,10 @@ EditorView::EditorView(TextEdit* editor, QWidget* parent) EditorView::~EditorView() { d->activityTimer->stop(); + // to avoid the assert introduced a debug version of Qt >6.3. See QTBUG-105473 + for (auto conn : connectionList) { // NOLINT(performance-for-range-copy) + disconnect(conn); + } delete d->activityTimer; delete d; getWindowParameter()->Detach(this); diff --git a/src/Gui/EditorView.h b/src/Gui/EditorView.h index 8546a94397..44d7395ede 100644 --- a/src/Gui/EditorView.h +++ b/src/Gui/EditorView.h @@ -116,6 +116,7 @@ private: private: EditorViewP* d; + QList connectionList; }; class PythonEditor;