From 46731b05ee91bee9503f5b4e6455935551eea8e7 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 25 Jul 2023 13:50:41 +0200 Subject: [PATCH] IdeDebugger: Breakpoint dialog, fix BreakGroups --- ide/packages/idedebugger/breakpointsdlg.pp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ide/packages/idedebugger/breakpointsdlg.pp b/ide/packages/idedebugger/breakpointsdlg.pp index bc19972be7..f1ae775be6 100644 --- a/ide/packages/idedebugger/breakpointsdlg.pp +++ b/ide/packages/idedebugger/breakpointsdlg.pp @@ -171,7 +171,7 @@ type procedure ClearTree; procedure DoItemRemoved(Sender: TDbgTreeView; AnItem: TObject; ANode: PVirtualNode); - function GetNodeForBrkGroup(const ABrkGroup: TIDEBreakPointGroup): PVirtualNode; + function GetNodeForBrkGroup(const ABrkGroup: TIDEBreakPointGroup; AOnlyExisting: Boolean = False): PVirtualNode; procedure SetBaseDirectory(const AValue: string); procedure popSetGroupItemClick(Sender: TObject); procedure SetGroup(const NewGroup: TIDEBreakPointGroup); @@ -411,7 +411,7 @@ begin GetNodeForBrkGroup(TIDEBreakPointGroup(Data)); end; ooDeleteItem: begin - VNode :=tvBreakPoints.FindNodeForItem(TObject(Data)); + VNode := GetNodeForBrkGroup(TIDEBreakPointGroup(Data), True); if VNode <> nil then begin tvBreakPoints.DeleteNode(VNode); end; @@ -451,19 +451,22 @@ begin tvBreakPointsChange(nil, nil); end; -function TBreakPointsDlg.GetNodeForBrkGroup(const ABrkGroup: TIDEBreakPointGroup - ): PVirtualNode; +function TBreakPointsDlg.GetNodeForBrkGroup( + const ABrkGroup: TIDEBreakPointGroup; AOnlyExisting: Boolean): PVirtualNode; var PVNode: PVirtualNode; GrpHeader: TBreakpointGroupFrame; begin if ABrkGroup = nil then - exit(tvBreakPoints.FindNodeForControl(FUngroupedHeader)); + exit(FUngroupedHeader.Node); for PVNode in tvBreakPoints.ControlNodes do if GetGroupFrame(PVNode).BrkGroup = ABrkGroup then exit(PVNode); + if AOnlyExisting then + exit(nil); + tvBreakPoints.BeginUpdate; try Result := tvBreakPoints.AddChild(nil, nil);