From bd345efcca0aa98b5892ca67c69ad49e6a9c57d7 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 24 Oct 2024 14:53:46 +0200 Subject: [PATCH] Debugger: Robustify tooltip widget event filter setup Amends 5354e7e557364. Change-Id: I0b02c6df8d09d04055bd17dde0754c2a5135b0a5 Reviewed-by: Marcus Tillmanns --- .../debugger/debuggertooltipmanager.cpp | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/plugins/debugger/debuggertooltipmanager.cpp b/src/plugins/debugger/debuggertooltipmanager.cpp index 162994008aa..f41528d2e37 100644 --- a/src/plugins/debugger/debuggertooltipmanager.cpp +++ b/src/plugins/debugger/debuggertooltipmanager.cpp @@ -980,17 +980,23 @@ void DebuggerToolTipManagerPrivate::debugModeEntered() this, &DebuggerToolTipManagerPrivate::updateVisibleToolTips); connect(em, &EditorManager::editorOpened, this, &DebuggerToolTipManagerPrivate::slotEditorOpened); - connect(em, &EditorManager::editorAboutToClose, [this](IEditor *editor) { + connect(em, &EditorManager::editorAboutToClose, this, [this](IEditor *editor) { if (auto textEditor = qobject_cast(editor)) m_tooltips.erase(textEditor->editorWidget()); }); - connect(em, &EditorManager::currentEditorAboutToChange, [this](IEditor *editor) { - if (auto textEditor = qobject_cast(editor)) - textEditor->widget()->window()->removeEventFilter(this); + connect(em, &EditorManager::currentEditorAboutToChange, this, [this](IEditor *editor) { + if (auto textEditor = qobject_cast(editor)) { + QWidget *widget = textEditor->widget(); + QTC_ASSERT(widget, return); + widget->removeEventFilter(this); + } }); - connect(em, &EditorManager::currentEditorChanged, [this](IEditor *editor) { - if (auto textEditor = qobject_cast(editor)) - textEditor->widget()->window()->installEventFilter(this); + connect(em, &EditorManager::currentEditorChanged, this, [this](IEditor *editor) { + if (auto textEditor = qobject_cast(editor)) { + QWidget *widget = textEditor->widget(); + QTC_ASSERT(widget, return); + widget->window()->installEventFilter(this); + } }); setupEditors(); }