implemented enable/disable/delete breakpoints in same source

git-svn-id: trunk@4229 -
This commit is contained in:
mattias 2003-06-03 11:20:12 +00:00
parent 583cd45e6a
commit 3a6822f197
4 changed files with 147 additions and 34 deletions

View File

@ -2,6 +2,7 @@ object BreakpointsDlg: TBreakpointsDlg
CAPTION = 'Breakpoint list'
CLIENTHEIGHT = 205
CLIENTWIDTH = 629
ONCREATE = BreakpointsDlgCREATE
VISIBLE = True
HORZSCROLLBAR.PAGE = 630
VERTSCROLLBAR.PAGE = 206
@ -11,7 +12,6 @@ object BreakpointsDlg: TBreakpointsDlg
WIDTH = 629
HELPTYPE = htkeyword
object lvBreakPoints: TLISTVIEW
ALIGN = alclient
ANCHORS = [aktop, akleft]
COLUMNS = <
item
@ -55,14 +55,16 @@ object BreakpointsDlg: TBreakpointsDlg
ONCLICK = lvBreakPointsClick
ONDBLCLICK = lvBreakPointsDBLCLICK
ONSELECTITEM = lvBreakPointsSelectItem
LEFT = 72
HEIGHT = 205
WIDTH = 629
TOP = 2
WIDTH = 557
HELPTYPE = htkeyword
end
object mnuPopup: TPOPUPMENU
ONPOPUP = mnuPopupPopup
left = 100
top = 96
left = 24
top = 8
object popAdd: TMENUITEM
CAPTION = 'Add...'
object popAddSourceBP: TMENUITEM
@ -102,5 +104,20 @@ object BreakpointsDlg: TBreakpointsDlg
CAPTION = '&Delete All'
ONCLICK = popDeleteAllClick
end
object N3: TMENUITEM
CAPTION = '-'
end
object popDisableAllSameSource: TMENUITEM
CAPTION = 'Disable All in same source'
ONCLICK = popDisableAllSameSourceCLICK
end
object popEnableAllSameSource: TMENUITEM
CAPTION = 'Enable All in same source'
ONCLICK = popEnableAllSameSourceCLICK
end
object popDeleteAllSameSource: TMENUITEM
CAPTION = 'Delete All in same source'
ONCLICK = popDeleteAllSameSourceCLICK
end
end
end

View File

@ -2,30 +2,36 @@
LazarusResources.Add('TBreakpointsDlg','FORMDATA',[
'TPF0'#15'TBreakpointsDlg'#14'BreakpointsDlg'#7'CAPTION'#6#15'Breakpoint list'
+#12'CLIENTHEIGHT'#3#205#0#11'CLIENTWIDTH'#3'u'#2#7'VISIBLE'#9#18'HORZSCROLLB'
+'AR.PAGE'#3'v'#2#18'VERTSCROLLBAR.PAGE'#3#206#0#4'LEFT'#3'T'#1#6'HEIGHT'#3
+#205#0#3'TOP'#2'u'#5'WIDTH'#3'u'#2#8'HELPTYPE'#7#9'htkeyword'#0#9'TLISTVIEW'
+#13'lvBreakPoints'#5'ALIGN'#7#8'alclient'#7'ANCHORS'#11#5'aktop'#6'akleft'#0
+#7'COLUMNS'#14#1#7'CAPTION'#6#5'State'#7'VISIBLE'#9#5'WIDTH'#2'2'#0#1#7'CAPT'
+'ION'#6#16'Filename/Address'#7'VISIBLE'#9#5'WIDTH'#3#150#0#0#1#7'CAPTION'#6
+#11'Line/Length'#7'VISIBLE'#9#5'WIDTH'#2'd'#0#1#7'CAPTION'#6#9'Condition'#7
+'VISIBLE'#9#5'WIDTH'#2'K'#0#1#7'CAPTION'#6#6'Action'#7'VISIBLE'#9#5'WIDTH'#2
+'2'#0#1#7'CAPTION'#6#10'Pass Count'#7'VISIBLE'#9#5'WIDTH'#2'd'#0#1#7'CAPTION'
+#6#5'Group'#7'VISIBLE'#9#5'WIDTH'#2'2'#0#0#11'MULTISELECT'#9#9'POPUPMENU'#7#8
+'mnuPopup'#9'VIEWSTYLE'#7#8'vsreport'#7'ONCLICK'#7#18'lvBreakPointsClick'#10
+'ONDBLCLICK'#7#21'lvBreakPointsDBLCLICK'#12'ONSELECTITEM'#7#23'lvBreakPoints'
+'SelectItem'#6'HEIGHT'#3#205#0#5'WIDTH'#3'u'#2#8'HELPTYPE'#7#9'htkeyword'#0#0
+#10'TPOPUPMENU'#8'mnuPopup'#7'ONPOPUP'#7#13'mnuPopupPopup'#4'left'#2'd'#3'to'
+'p'#2'`'#0#9'TMENUITEM'#6'popAdd'#7'CAPTION'#6#6'Add...'#0#9'TMENUITEM'#14'p'
+'opAddSourceBP'#7'CAPTION'#6#18'&Source breakpoint'#7'ENABLED'#8#7'ONCLICK'#7
+#19'popAddSourceBPClick'#0#0#0#9'TMENUITEM'#2'N1'#7'CAPTION'#6#1'-'#0#0#9'TM'
+'ENUITEM'#13'popProperties'#7'CAPTION'#6#11'&Properties'#7'ONCLICK'#7#18'pop'
+'PropertiesClick'#0#0#9'TMENUITEM'#10'popEnabled'#7'CAPTION'#6#8'&Enabled'#19
+'SHOWALWAYSCHECKABLE'#9#7'ONCLICK'#7#15'popEnabledClick'#0#0#9'TMENUITEM'#9
+'popDelete'#7'CAPTION'#6#7'&Delete'#7'ONCLICK'#7#14'popDeleteClick'#0#0#9'TM'
+'ENUITEM'#2'N2'#7'CAPTION'#6#1'-'#0#0#9'TMENUITEM'#13'popDisableAll'#7'CAPTI'
+'ON'#6#12'D&isable All'#7'ONCLICK'#7#18'popDisableAllClick'#0#0#9'TMENUITEM'
+#12'popEnableAll'#7'CAPTION'#6#11'&Enable All'#7'ONCLICK'#7#17'popEnableAllC'
+'lick'#0#0#9'TMENUITEM'#12'popDeleteAll'#7'CAPTION'#6#11'&Delete All'#7'ONCL'
+'ICK'#7#17'popDeleteAllClick'#0#0#0#0
+#12'CLIENTHEIGHT'#3#205#0#11'CLIENTWIDTH'#3'u'#2#8'ONCREATE'#7#20'Breakpoint'
+'sDlgCREATE'#7'VISIBLE'#9#18'HORZSCROLLBAR.PAGE'#3'v'#2#18'VERTSCROLLBAR.PAG'
+'E'#3#206#0#4'LEFT'#3'T'#1#6'HEIGHT'#3#205#0#3'TOP'#2'u'#5'WIDTH'#3'u'#2#8'H'
+'ELPTYPE'#7#9'htkeyword'#0#9'TLISTVIEW'#13'lvBreakPoints'#7'ANCHORS'#11#5'ak'
+'top'#6'akleft'#0#7'COLUMNS'#14#1#7'CAPTION'#6#5'State'#7'VISIBLE'#9#5'WIDTH'
+#2'2'#0#1#7'CAPTION'#6#16'Filename/Address'#7'VISIBLE'#9#5'WIDTH'#3#150#0#0#1
+#7'CAPTION'#6#11'Line/Length'#7'VISIBLE'#9#5'WIDTH'#2'd'#0#1#7'CAPTION'#6#9
+'Condition'#7'VISIBLE'#9#5'WIDTH'#2'K'#0#1#7'CAPTION'#6#6'Action'#7'VISIBLE'
+#9#5'WIDTH'#2'2'#0#1#7'CAPTION'#6#10'Pass Count'#7'VISIBLE'#9#5'WIDTH'#2'd'#0
+#1#7'CAPTION'#6#5'Group'#7'VISIBLE'#9#5'WIDTH'#2'2'#0#0#11'MULTISELECT'#9#9
+'POPUPMENU'#7#8'mnuPopup'#9'VIEWSTYLE'#7#8'vsreport'#7'ONCLICK'#7#18'lvBreak'
+'PointsClick'#10'ONDBLCLICK'#7#21'lvBreakPointsDBLCLICK'#12'ONSELECTITEM'#7
+#23'lvBreakPointsSelectItem'#4'LEFT'#2'H'#6'HEIGHT'#3#205#0#3'TOP'#2#2#5'WID'
+'TH'#3'-'#2#8'HELPTYPE'#7#9'htkeyword'#0#0#10'TPOPUPMENU'#8'mnuPopup'#7'ONPO'
+'PUP'#7#13'mnuPopupPopup'#4'left'#2#24#3'top'#2#8#0#9'TMENUITEM'#6'popAdd'#7
+'CAPTION'#6#6'Add...'#0#9'TMENUITEM'#14'popAddSourceBP'#7'CAPTION'#6#18'&Sou'
+'rce breakpoint'#7'ENABLED'#8#7'ONCLICK'#7#19'popAddSourceBPClick'#0#0#0#9'T'
+'MENUITEM'#2'N1'#7'CAPTION'#6#1'-'#0#0#9'TMENUITEM'#13'popProperties'#7'CAPT'
+'ION'#6#11'&Properties'#7'ONCLICK'#7#18'popPropertiesClick'#0#0#9'TMENUITEM'
+#10'popEnabled'#7'CAPTION'#6#8'&Enabled'#19'SHOWALWAYSCHECKABLE'#9#7'ONCLICK'
+#7#15'popEnabledClick'#0#0#9'TMENUITEM'#9'popDelete'#7'CAPTION'#6#7'&Delete'
+#7'ONCLICK'#7#14'popDeleteClick'#0#0#9'TMENUITEM'#2'N2'#7'CAPTION'#6#1'-'#0#0
+#9'TMENUITEM'#13'popDisableAll'#7'CAPTION'#6#12'D&isable All'#7'ONCLICK'#7#18
+'popDisableAllClick'#0#0#9'TMENUITEM'#12'popEnableAll'#7'CAPTION'#6#11'&Enab'
+'le All'#7'ONCLICK'#7#17'popEnableAllClick'#0#0#9'TMENUITEM'#12'popDeleteAll'
+#7'CAPTION'#6#11'&Delete All'#7'ONCLICK'#7#17'popDeleteAllClick'#0#0#9'TMENU'
+'ITEM'#2'N3'#7'CAPTION'#6#1'-'#0#0#9'TMENUITEM'#23'popDisableAllSameSource'#7
+'CAPTION'#6#26'Disable All in same source'#7'ONCLICK'#7#28'popDisableAllSame'
+'SourceCLICK'#0#0#9'TMENUITEM'#22'popEnableAllSameSource'#7'CAPTION'#6#25'En'
+'able All in same source'#7'ONCLICK'#7#27'popEnableAllSameSourceCLICK'#0#0#9
+'TMENUITEM'#22'popDeleteAllSameSource'#7'CAPTION'#6#25'Delete All in same so'
+'urce'#7'ONCLICK'#7#27'popDeleteAllSameSourceCLICK'#0#0#0#0
]);

View File

@ -60,12 +60,20 @@ type
popDisableAll: TMenuItem;
popEnableAll: TMenuItem;
popDeleteAll: TMenuItem;
N3: TMenuItem; //--------------
popDisableAllSameSource: TMenuItem;
popEnableAllSameSource: TMenuItem;
popDeleteAllSameSource: TMenuItem;
procedure BreakpointsDlgCREATE(Sender: TObject);
procedure lvBreakPointsClick(Sender: TObject);
procedure lvBreakPointsDBLCLICK(Sender: TObject);
procedure lvBreakPointsSelectItem(Sender: TObject; AItem: TListItem;
Selected: Boolean);
procedure mnuPopupPopup(Sender: TObject);
procedure popAddSourceBPClick(Sender: TObject);
procedure popDeleteAllSameSourceCLICK(Sender: TObject);
procedure popDisableAllSameSourceCLICK(Sender: TObject);
procedure popEnableAllSameSourceCLICK(Sender: TObject);
procedure popPropertiesClick(Sender: TObject);
procedure popEnabledClick(Sender: TObject);
procedure popDeleteClick(Sender: TObject);
@ -212,6 +220,11 @@ procedure TBreakPointsDlg.lvBreakPointsClick(Sender: TObject);
begin
end;
procedure TBreakPointsDlg.BreakpointsDlgCREATE(Sender: TObject);
begin
lvBreakPoints.Align:=alClient;
end;
procedure TBreakPointsDlg.lvBreakPointsDBLCLICK(Sender: TObject);
begin
DoJumpToCurrentBreakPoint;
@ -240,6 +253,12 @@ begin
popEnabled.Checked := false;
popDelete.Enabled := Enable;
// 'All in same source' menuitems
popDisableAllSameSource.Enabled := Enable;
popDeleteAllSameSource.Enabled := Enable;
popEnableAllSameSource.Enabled := Enable;
// 'All' menuitems
Enable := lvBreakPoints.Items.Count>0;
popDisableAll.Enabled := Enable;
popDeleteAll.Enabled := Enable;
@ -250,10 +269,78 @@ procedure TBreakPointsDlg.popAddSourceBPClick(Sender: TObject);
begin
end;
procedure TBreakPointsDlg.popDeleteAllSameSourceCLICK(Sender: TObject);
var
n: Integer;
Item: TListItem;
CurItem: TListItem;
CurBreakPoint: TIDEBreakPoint;
Filename: String;
begin
CurItem:=lvBreakPoints.Selected;
if (CurItem=nil) then exit;
Filename:=TIDEBreakpoint(CurItem.Data).Source;
if MessageDlg('Delete all breakpoints?',
'Delete all breakpoints in file "'+Filename+'"?',
mtConfirmation,[mbYes,mbCancel],0)<>mrYes
then exit;
for n := lvBreakPoints.Items.Count - 1 downto 0 do
begin
Item := lvBreakPoints.Items[n];
CurBreakPoint:=TIDEBreakPoint(Item.Data);
if CompareFilenames(CurBreakPoint.Source,Filename)=0
then CurBreakPoint.Free;
end;
end;
procedure TBreakPointsDlg.popDisableAllSameSourceCLICK(Sender: TObject);
var
n: Integer;
Item: TListItem;
CurItem: TListItem;
CurBreakPoint: TIDEBreakPoint;
Filename: String;
begin
CurItem:=lvBreakPoints.Selected;
if (CurItem=nil) then exit;
Filename:=TIDEBreakpoint(CurItem.Data).Source;
for n := 0 to lvBreakPoints.Items.Count - 1 do
begin
Item := lvBreakPoints.Items[n];
CurBreakPoint:=TIDEBreakPoint(Item.Data);
if CompareFilenames(CurBreakPoint.Source,Filename)=0
then CurBreakPoint.Enabled := False;
end;
end;
procedure TBreakPointsDlg.popEnableAllSameSourceCLICK(Sender: TObject);
var
n: Integer;
Item: TListItem;
CurItem: TListItem;
CurBreakPoint: TIDEBreakPoint;
Filename: String;
begin
CurItem:=lvBreakPoints.Selected;
if (CurItem=nil) then exit;
Filename:=TIDEBreakpoint(CurItem.Data).Source;
for n := 0 to lvBreakPoints.Items.Count - 1 do
begin
Item := lvBreakPoints.Items[n];
CurBreakPoint:=TIDEBreakPoint(Item.Data);
if CompareFilenames(CurBreakPoint.Source,Filename)=0
then CurBreakPoint.Enabled := True;
end;
end;
procedure TBreakPointsDlg.popDeleteAllClick(Sender: TObject);
var
n: Integer;
begin
if MessageDlg('Delete all breakpoints?',
'Delete all breakpoints?',
mtConfirmation,[mbYes,mbCancel],0)<>mrYes
then exit;
for n := lvBreakPoints.Items.Count - 1 downto 0 do
TIDEBreakPoint(lvBreakPoints.Items[n].Data).Free;
end;
@ -327,9 +414,9 @@ const
// enabled valid
DEBUG_STATE: array[Boolean, TValidState] of String = (
{vsUnknown, vsValid, vsInvalid}
{Disabled} ('?', 'Disabled','Invalid'),
{Endabled} ('?', 'Enabled', 'Invalid'));
{vsUnknown, vsValid, vsInvalid}
{Disabled} ('? (Off)','Disabled','Invalid (Off)'),
{Endabled} ('? (On)', 'Enabled', 'Invalid (On)'));
var
Action: TIDEBreakPointAction;
S: String;
@ -402,6 +489,9 @@ end.
{ =============================================================================
$Log$
Revision 1.19 2003/06/03 11:20:12 mattias
implemented enable/disable/delete breakpoints in same source
Revision 1.18 2003/06/03 08:02:33 mattias
implemented showing source lines in breakpoints dialog

View File

@ -144,7 +144,7 @@ end;
function TOutputFilter.Execute(TheProcess: TProcess): boolean;
const
BufSize = 100;
BufSize = 1000;
var
i, Count, LineStart : longint;
OutputLine, Buf : String;