diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index 916c35c77d6..4a43a7935aa 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -1557,8 +1557,11 @@ bool BreakHandler::setData(const QModelIndex &idx, const QVariant &value, int ro const bool isEnabled = (bps.isEmpty() && sbps.isEmpty()) || (!bps.isEmpty() && bps.at(0)->isEnabled()) || (!sbps.isEmpty() && sbps.at(0)->params.enabled); - for (Breakpoint bp : bps) + for (Breakpoint bp : bps) { requestBreakpointEnabling(bp, !isEnabled); + if (GlobalBreakpoint gbp = bp->globalBreakpoint()) + gbp->setEnabled(!isEnabled, false); + } for (SubBreakpoint sbp : sbps) requestSubBreakpointEnabling(sbp, !isEnabled); return true; @@ -1642,8 +1645,11 @@ bool BreakHandler::contextMenuEvent(const ItemViewEvent &ev) : breakpointsEnabled ? tr("Disable Breakpoint") : tr("Enable Breakpoint"), !selectedBreakpoints.isEmpty(), [this, selectedBreakpoints, breakpointsEnabled] { - for (Breakpoint bp : selectedBreakpoints) + for (Breakpoint bp : selectedBreakpoints) { requestBreakpointEnabling(bp, !breakpointsEnabled); + if (GlobalBreakpoint gbp = bp->globalBreakpoint()) + gbp->setEnabled(!breakpointsEnabled, false); + } } ); @@ -2311,18 +2317,20 @@ void GlobalBreakpointItem::updateMarker() m_marker->setToolTip(toolTip()); } -void GlobalBreakpointItem::setEnabled(bool enabled) +void GlobalBreakpointItem::setEnabled(bool enabled, bool descend) { QTC_CHECK(m_params.enabled != enabled); m_params.enabled = enabled; updateMarkerIcon(); update(); - for (QPointer engine : EngineManager::engines()) { - BreakHandler *handler = engine->breakHandler(); - for (Breakpoint bp : handler->breakpoints()) { - if (bp->globalBreakpoint() == this) - handler->requestBreakpointEnabling(bp, enabled); + if (descend) { + for (QPointer engine : EngineManager::engines()) { + BreakHandler *handler = engine->breakHandler(); + for (Breakpoint bp : handler->breakpoints()) { + if (bp->globalBreakpoint() == this) + handler->requestBreakpointEnabling(bp, enabled); + } } } } diff --git a/src/plugins/debugger/breakhandler.h b/src/plugins/debugger/breakhandler.h index 048e2f996ad..6df2080429c 100644 --- a/src/plugins/debugger/breakhandler.h +++ b/src/plugins/debugger/breakhandler.h @@ -85,7 +85,7 @@ public: int modelId() const; bool isEnabled() const { return m_params.enabled; } - void setEnabled(bool enabled); + void setEnabled(bool enabled, bool descend = true); const BreakpointParameters &requestedParameters() const { return m_params; }