diff options
Diffstat (limited to 'src/plugins/debugger/watchhandler.cpp')
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index a254036bf1..21656ec4fe 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -1680,21 +1680,25 @@ bool WatchModel::contextMenuEvent(const ItemViewEvent &ev) addAction(menu, tr("Expand All Children"), item, - [this, item] { - m_expandedINames.insert(item->iname); - item->forFirstLevelChildren([this](WatchItem *child) { - m_expandedINames.insert(child->iname); - }); - m_engine->updateLocals(); + [this, name = item->iname] { + m_expandedINames.insert(name); + if (auto item = findItem(name)) { + item->forFirstLevelChildren([this](WatchItem *child) { + m_expandedINames.insert(child->iname); + }); + m_engine->updateLocals(); + } }); addAction(menu, tr("Collapse All Children"), item, - [this, item] { - item->forFirstLevelChildren([this](WatchItem *child) { - m_expandedINames.remove(child->iname); - }); - m_engine->updateLocals(); + [this, name = item->iname] { + if (auto item = findItem(name)) { + item->forFirstLevelChildren([this](WatchItem *child) { + m_expandedINames.remove(child->iname); + }); + m_engine->updateLocals(); + } }); addAction(menu, tr("Close Editor Tooltips"), @@ -1707,7 +1711,10 @@ bool WatchModel::contextMenuEvent(const ItemViewEvent &ev) addAction(menu, tr("Copy Current Value to Clipboard"), item, - [item] { copyToClipboard(item->value); }); + [this, name = item->iname] { + if (auto item = findItem(name)) + copyToClipboard(item->value); + }); // addAction(menu, tr("Copy Selected Rows to Clipboard"), // selectionModel()->hasSelection(), |