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())
|| (!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,13 +2317,14 @@ 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();
if (descend) {
for (QPointer<DebuggerEngine> engine : EngineManager::engines()) {
BreakHandler *handler = engine->breakHandler();
for (Breakpoint bp : handler->breakpoints()) {
@@ -2325,6 +2332,7 @@ void GlobalBreakpointItem::setEnabled(bool enabled)
handler->requestBreakpointEnabling(bp, enabled);
}
}
}
}
void GlobalBreakpointItem::destroyMarker()

View File

@@ -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; }