Debugger: Fix breakpoint disabling using context menu

Change-Id: I3fa5ef2dc123f5f7f8292147626453284c1afd76
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
hjk
2018-09-25 19:21:36 +02:00
parent 922a363fb4
commit 0ebe8402c7
2 changed files with 17 additions and 9 deletions

View File

@@ -1557,8 +1557,11 @@ bool BreakHandler::setData(const QModelIndex &idx, const QVariant &value, int ro
const bool isEnabled = (bps.isEmpty() && sbps.isEmpty()) const bool isEnabled = (bps.isEmpty() && sbps.isEmpty())
|| (!bps.isEmpty() && bps.at(0)->isEnabled()) || (!bps.isEmpty() && bps.at(0)->isEnabled())
|| (!sbps.isEmpty() && sbps.at(0)->params.enabled); || (!sbps.isEmpty() && sbps.at(0)->params.enabled);
for (Breakpoint bp : bps) for (Breakpoint bp : bps) {
requestBreakpointEnabling(bp, !isEnabled); requestBreakpointEnabling(bp, !isEnabled);
if (GlobalBreakpoint gbp = bp->globalBreakpoint())
gbp->setEnabled(!isEnabled, false);
}
for (SubBreakpoint sbp : sbps) for (SubBreakpoint sbp : sbps)
requestSubBreakpointEnabling(sbp, !isEnabled); requestSubBreakpointEnabling(sbp, !isEnabled);
return true; return true;
@@ -1642,8 +1645,11 @@ bool BreakHandler::contextMenuEvent(const ItemViewEvent &ev)
: breakpointsEnabled ? tr("Disable Breakpoint") : tr("Enable Breakpoint"), : breakpointsEnabled ? tr("Disable Breakpoint") : tr("Enable Breakpoint"),
!selectedBreakpoints.isEmpty(), !selectedBreakpoints.isEmpty(),
[this, selectedBreakpoints, breakpointsEnabled] { [this, selectedBreakpoints, breakpointsEnabled] {
for (Breakpoint bp : selectedBreakpoints) for (Breakpoint bp : selectedBreakpoints) {
requestBreakpointEnabling(bp, !breakpointsEnabled); requestBreakpointEnabling(bp, !breakpointsEnabled);
if (GlobalBreakpoint gbp = bp->globalBreakpoint())
gbp->setEnabled(!breakpointsEnabled, false);
}
} }
); );
@@ -2311,18 +2317,20 @@ void GlobalBreakpointItem::updateMarker()
m_marker->setToolTip(toolTip()); m_marker->setToolTip(toolTip());
} }
void GlobalBreakpointItem::setEnabled(bool enabled) void GlobalBreakpointItem::setEnabled(bool enabled, bool descend)
{ {
QTC_CHECK(m_params.enabled != enabled); QTC_CHECK(m_params.enabled != enabled);
m_params.enabled = enabled; m_params.enabled = enabled;
updateMarkerIcon(); updateMarkerIcon();
update(); update();
for (QPointer<DebuggerEngine> engine : EngineManager::engines()) { if (descend) {
BreakHandler *handler = engine->breakHandler(); for (QPointer<DebuggerEngine> engine : EngineManager::engines()) {
for (Breakpoint bp : handler->breakpoints()) { BreakHandler *handler = engine->breakHandler();
if (bp->globalBreakpoint() == this) for (Breakpoint bp : handler->breakpoints()) {
handler->requestBreakpointEnabling(bp, enabled); if (bp->globalBreakpoint() == this)
handler->requestBreakpointEnabling(bp, enabled);
}
} }
} }
} }

View File

@@ -85,7 +85,7 @@ public:
int modelId() const; int modelId() const;
bool isEnabled() const { return m_params.enabled; } 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; } const BreakpointParameters &requestedParameters() const { return m_params; }