forked from qt-creator/qt-creator
Debugger: Fix breakpoint disabling using context menu
Change-Id: I3fa5ef2dc123f5f7f8292147626453284c1afd76 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
@@ -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,13 +2317,14 @@ 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();
|
||||||
|
|
||||||
|
if (descend) {
|
||||||
for (QPointer<DebuggerEngine> engine : EngineManager::engines()) {
|
for (QPointer<DebuggerEngine> engine : EngineManager::engines()) {
|
||||||
BreakHandler *handler = engine->breakHandler();
|
BreakHandler *handler = engine->breakHandler();
|
||||||
for (Breakpoint bp : handler->breakpoints()) {
|
for (Breakpoint bp : handler->breakpoints()) {
|
||||||
@@ -2325,6 +2332,7 @@ void GlobalBreakpointItem::setEnabled(bool enabled)
|
|||||||
handler->requestBreakpointEnabling(bp, enabled);
|
handler->requestBreakpointEnabling(bp, enabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlobalBreakpointItem::destroyMarker()
|
void GlobalBreakpointItem::destroyMarker()
|
||||||
|
@@ -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; }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user