mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-11 19:56:22 +02:00
DBG: protect dialog actions against re-entrance
git-svn-id: trunk@28736 -
This commit is contained in:
parent
8e4d321718
commit
7e077f0e18
@ -134,7 +134,9 @@ type
|
||||
procedure JumpToCurrentBreakPoint;
|
||||
procedure ShowProperties;
|
||||
protected
|
||||
procedure DoBeginUpdate; override;
|
||||
procedure DoEndUpdate; override;
|
||||
procedure DisableAllActions;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -351,11 +353,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEBreakPoint(Item.Data).Enabled := True;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEBreakPoint(Item.Data).Enabled := True;
|
||||
end;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -364,11 +371,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEBreakPoint(Item.Data).Enabled := False;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEBreakPoint(Item.Data).Enabled := False;
|
||||
end;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -484,19 +496,24 @@ var
|
||||
CurBreakPoint: TIDEBreakPoint;
|
||||
Filename: String;
|
||||
begin
|
||||
CurItem:=lvBreakPoints.Selected;
|
||||
if (CurItem=nil) then exit;
|
||||
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
||||
if MessageDlg(lisDeleteAllBreakpoints,
|
||||
Format(lisDeleteAllBreakpoints2, ['"', 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;
|
||||
try
|
||||
DisableAllActions;
|
||||
CurItem:=lvBreakPoints.Selected;
|
||||
if (CurItem=nil) then exit;
|
||||
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
||||
if MessageDlg(lisDeleteAllBreakpoints,
|
||||
Format(lisDeleteAllBreakpoints2, ['"', 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;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -508,15 +525,20 @@ var
|
||||
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;
|
||||
try
|
||||
DisableAllActions;
|
||||
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;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -528,15 +550,20 @@ var
|
||||
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;
|
||||
try
|
||||
DisableAllActions;
|
||||
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;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -544,16 +571,21 @@ procedure TBreakPointsDlg.popDeleteAllClick(Sender: TObject);
|
||||
var
|
||||
n: Integer;
|
||||
begin
|
||||
if MessageDlg(lisDeleteAllBreakpoints,
|
||||
lisDeleteAllBreakpoints,
|
||||
mtConfirmation,[mbYes,mbCancel],0)<>mrYes
|
||||
then exit;
|
||||
lvBreakPoints.BeginUpdate;
|
||||
try
|
||||
for n := lvBreakPoints.Items.Count - 1 downto 0 do
|
||||
TIDEBreakPoint(lvBreakPoints.Items[n].Data).Free;
|
||||
DisableAllActions;
|
||||
if MessageDlg(lisDeleteAllBreakpoints,
|
||||
lisDeleteAllBreakpoints,
|
||||
mtConfirmation,[mbYes,mbCancel],0)<>mrYes
|
||||
then exit;
|
||||
lvBreakPoints.BeginUpdate;
|
||||
try
|
||||
for n := lvBreakPoints.Items.Count - 1 downto 0 do
|
||||
TIDEBreakPoint(lvBreakPoints.Items[n].Data).Free;
|
||||
finally
|
||||
lvBreakPoints.EndUpdate;
|
||||
end;
|
||||
finally
|
||||
lvBreakPoints.EndUpdate;
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -564,7 +596,12 @@ end;
|
||||
|
||||
procedure TBreakPointsDlg.popDeleteClick(Sender: TObject);
|
||||
begin
|
||||
DeleteSelectedBreakpoints
|
||||
try
|
||||
DisableAllActions;
|
||||
DeleteSelectedBreakpoints
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBreakPointsDlg.popDisableAllClick(Sender: TObject);
|
||||
@ -572,11 +609,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEBreakPoint(Item.Data).Enabled := False;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEBreakPoint(Item.Data).Enabled := False;
|
||||
end;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -585,11 +627,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEBreakPoint(Item.Data).Enabled := True;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEBreakPoint(Item.Data).Enabled := True;
|
||||
end;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -599,34 +646,53 @@ var
|
||||
Item: TListItem;
|
||||
Enable: Boolean;
|
||||
begin
|
||||
Item:=lvBreakPoints.Selected;
|
||||
if (Item=nil) then exit;
|
||||
try
|
||||
DisableAllActions;
|
||||
Item:=lvBreakPoints.Selected;
|
||||
if (Item=nil) then exit;
|
||||
|
||||
Enable := not TIDEBreakPoint(Item.Data).Enabled;
|
||||
Enable := not TIDEBreakPoint(Item.Data).Enabled;
|
||||
|
||||
if lvBreakPoints.SelCount > 1
|
||||
then begin
|
||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEBreakPoint(Item.Data).Enabled := Enable;
|
||||
if lvBreakPoints.SelCount > 1
|
||||
then begin
|
||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||
begin
|
||||
Item := lvBreakPoints.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEBreakPoint(Item.Data).Enabled := Enable;
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
TIDEBreakPoint(Item.Data).Enabled:= Enable;
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
TIDEBreakPoint(Item.Data).Enabled:= Enable;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBreakPointsDlg.popPropertiesClick(Sender: TObject);
|
||||
begin
|
||||
ShowProperties;
|
||||
try
|
||||
DisableAllActions;
|
||||
ShowProperties;
|
||||
finally
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBreakPointsDlg.DoEndUpdate;
|
||||
begin
|
||||
inherited DoEndUpdate;
|
||||
if bpdsItemsNeedUpdate in FStates then UpdateAll;
|
||||
lvBreakPointsSelectItem(nil, nil, False);
|
||||
end;
|
||||
|
||||
procedure TBreakPointsDlg.DisableAllActions;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to ActionList1.ActionCount - 1 do
|
||||
(ActionList1.Actions[i] as TAction).Enabled := False;
|
||||
end;
|
||||
|
||||
procedure TBreakPointsDlg.UpdateItem(const AnItem: TListItem;
|
||||
@ -761,5 +827,11 @@ begin
|
||||
DebugBoss.ShowBreakPointProperties(CurBreakPoint);
|
||||
end;
|
||||
|
||||
procedure TBreakPointsDlg.DoBeginUpdate;
|
||||
begin
|
||||
inherited DoBeginUpdate;
|
||||
DisableAllActions;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -126,6 +126,8 @@ type
|
||||
protected
|
||||
procedure DoBeginUpdate; override;
|
||||
procedure DoEndUpdate; override;
|
||||
procedure DisableAllActions;
|
||||
procedure EnableAllActions;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -307,12 +309,30 @@ end;
|
||||
|
||||
procedure TCallStackDlg.DoBeginUpdate;
|
||||
begin
|
||||
DisableAllActions;
|
||||
lvCallStack.BeginUpdate;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.DoEndUpdate;
|
||||
begin
|
||||
lvCallStack.EndUpdate;
|
||||
EnableAllActions;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.DisableAllActions;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to aclActions.ActionCount - 1 do
|
||||
(aclActions.Actions[i] as TAction).Enabled := False;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.EnableAllActions;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to aclActions.ActionCount - 1 do
|
||||
(aclActions.Actions[i] as TAction).Enabled := True;
|
||||
end;
|
||||
|
||||
function TCallStackDlg.GetCurrentEntry: TCallStackEntry;
|
||||
@ -381,19 +401,24 @@ var
|
||||
BreakPoint: TIDEBreakPoint;
|
||||
FileName: String;
|
||||
begin
|
||||
if (Item <> nil) and (BreakPoints <> nil) then
|
||||
begin
|
||||
idx := FViewStart + Item.Index;
|
||||
if idx >= CallStack.Count then Exit;
|
||||
Entry := CallStack.Entries[idx];
|
||||
FileName := Entry.Source;
|
||||
if (FileName = '') or not DebugBoss.GetFullFilename(FileName, False) then
|
||||
Exit;
|
||||
BreakPoint := BreakPoints.Find(FileName, Entry.Line);
|
||||
if BreakPoint <> nil then
|
||||
DebugBoss.DoDeleteBreakPoint(BreakPoint.Source, BreakPoint.Line)
|
||||
else
|
||||
DebugBoss.DoCreateBreakPoint(FileName, Entry.Line, False);
|
||||
try
|
||||
DisableAllActions;
|
||||
if (Item <> nil) and (BreakPoints <> nil) then
|
||||
begin
|
||||
idx := FViewStart + Item.Index;
|
||||
if idx >= CallStack.Count then Exit;
|
||||
Entry := CallStack.Entries[idx];
|
||||
FileName := Entry.Source;
|
||||
if (FileName = '') or not DebugBoss.GetFullFilename(FileName, False) then
|
||||
Exit;
|
||||
BreakPoint := BreakPoints.Find(FileName, Entry.Line);
|
||||
if BreakPoint <> nil then
|
||||
DebugBoss.DoDeleteBreakPoint(BreakPoint.Source, BreakPoint.Line)
|
||||
else
|
||||
DebugBoss.DoCreateBreakPoint(FileName, Entry.Line, False);
|
||||
end;
|
||||
finally
|
||||
EnableAllActions;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -439,10 +464,15 @@ procedure TCallStackDlg.actSetAsCurrentClick(Sender : TObject);
|
||||
var
|
||||
Entry: TCallStackEntry;
|
||||
begin
|
||||
Entry := GetCurrentEntry;
|
||||
if Entry = nil then Exit;
|
||||
try
|
||||
DisableAllActions;
|
||||
Entry := GetCurrentEntry;
|
||||
if Entry = nil then Exit;
|
||||
|
||||
CallStack.Current := Entry;
|
||||
CallStack.Current := Entry;
|
||||
finally
|
||||
EnableAllActions;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.actShowClick(Sender: TObject);
|
||||
@ -452,9 +482,14 @@ end;
|
||||
|
||||
procedure TCallStackDlg.actViewBottomExecute(Sender: TObject);
|
||||
begin
|
||||
if CallStack <> nil
|
||||
then SetViewStart(CallStack.Count - FViewLimit)
|
||||
else SetViewStart(0);
|
||||
try
|
||||
DisableAllActions;
|
||||
if CallStack <> nil
|
||||
then SetViewStart(CallStack.Count - FViewLimit)
|
||||
else SetViewStart(0);
|
||||
finally
|
||||
EnableAllActions;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.actToggleBreakPointExecute(Sender: TObject);
|
||||
@ -464,21 +499,36 @@ end;
|
||||
|
||||
procedure TCallStackDlg.actViewGotoExecute(Sender: TObject);
|
||||
begin
|
||||
SetViewStart(StrToIntDef(txtGoto.Text, 0));
|
||||
try
|
||||
DisableAllActions;
|
||||
SetViewStart(StrToIntDef(txtGoto.Text, 0));
|
||||
finally
|
||||
EnableAllActions;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.actViewMoreExecute(Sender: TObject);
|
||||
begin
|
||||
ToolButtonPower.Down := True;
|
||||
ToolButtonPowerClick(nil);
|
||||
ViewLimit := ViewLimit + FViewCount;
|
||||
try
|
||||
DisableAllActions;
|
||||
ToolButtonPower.Down := True;
|
||||
ToolButtonPowerClick(nil);
|
||||
ViewLimit := ViewLimit + FViewCount;
|
||||
finally
|
||||
EnableAllActions;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.actViewTopExecute(Sender: TObject);
|
||||
begin
|
||||
ToolButtonPower.Down := True;
|
||||
ToolButtonPowerClick(nil);
|
||||
SetViewStart(0);
|
||||
try
|
||||
DisableAllActions;
|
||||
ToolButtonPower.Down := True;
|
||||
ToolButtonPowerClick(nil);
|
||||
SetViewStart(0);
|
||||
finally
|
||||
EnableAllActions;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.BreakPointChanged(const ASender: TIDEBreakPoints;
|
||||
@ -571,9 +621,14 @@ end;
|
||||
|
||||
procedure TCallStackDlg.actViewLimitExecute(Sender: TObject);
|
||||
begin
|
||||
ToolButtonPower.Down := True;
|
||||
ToolButtonPowerClick(nil);
|
||||
ViewLimit := FViewCount;
|
||||
try
|
||||
DisableAllActions;
|
||||
ToolButtonPower.Down := True;
|
||||
ToolButtonPowerClick(nil);
|
||||
ViewLimit := FViewCount;
|
||||
finally
|
||||
EnableAllActions;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCallStackDlg.SetViewStart(AStart: Integer);
|
||||
|
@ -111,6 +111,7 @@ type
|
||||
|
||||
procedure UpdateItem(const AItem: TListItem; const AWatch: TIDEWatch);
|
||||
procedure UpdateAll;
|
||||
procedure DisableAllActions;
|
||||
protected
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
@ -276,6 +277,8 @@ begin
|
||||
actDeleteAll.Enabled := lvWatches.Items.Count > 0;
|
||||
|
||||
actProperties.Enabled := ItemSelected;
|
||||
|
||||
actPower.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.lvWatchesDblClick(Sender: TObject);
|
||||
@ -320,11 +323,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvWatches.Items.Count -1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEWatch(Item.Data).Enabled := True;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvWatches.Items.Count -1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEWatch(Item.Data).Enabled := True;
|
||||
end;
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -333,11 +341,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvWatches.Items.Count -1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEWatch(Item.Data).Enabled := False;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvWatches.Items.Count -1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Selected then
|
||||
TIDEWatch(Item.Data).Enabled := False;
|
||||
end;
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -357,26 +370,41 @@ end;
|
||||
|
||||
procedure TWatchesDlg.popAddClick(Sender: TObject);
|
||||
begin
|
||||
DebugBoss.ShowWatchProperties(nil);
|
||||
try
|
||||
DisableAllActions;
|
||||
DebugBoss.ShowWatchProperties(nil);
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.popDeleteAllClick(Sender: TObject);
|
||||
var
|
||||
n: Integer;
|
||||
begin
|
||||
for n := lvWatches.Items.Count - 1 downto 0 do
|
||||
TIDEWatch(lvWatches.Items[n].Data).Free;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := lvWatches.Items.Count - 1 downto 0 do
|
||||
TIDEWatch(lvWatches.Items[n].Data).Free;
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.popDeleteClick(Sender: TObject);
|
||||
var
|
||||
Item: TIDEWatch;
|
||||
begin
|
||||
repeat
|
||||
Item := GetSelected;
|
||||
Item.Free;
|
||||
until Item = nil;
|
||||
//GetSelected.Free;
|
||||
try
|
||||
DisableAllActions;
|
||||
repeat
|
||||
Item := GetSelected;
|
||||
Item.Free;
|
||||
until Item = nil;
|
||||
//GetSelected.Free;
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.popDisableAllClick(Sender: TObject);
|
||||
@ -384,11 +412,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvWatches.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEWatch(Item.Data).Enabled := False;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvWatches.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEWatch(Item.Data).Enabled := False;
|
||||
end;
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -397,11 +430,16 @@ var
|
||||
n: Integer;
|
||||
Item: TListItem;
|
||||
begin
|
||||
for n := 0 to lvWatches.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEWatch(Item.Data).Enabled := True;
|
||||
try
|
||||
DisableAllActions;
|
||||
for n := 0 to lvWatches.Items.Count - 1 do
|
||||
begin
|
||||
Item := lvWatches.Items[n];
|
||||
if Item.Data <> nil
|
||||
then TIDEWatch(Item.Data).Enabled := True;
|
||||
end;
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -409,15 +447,25 @@ procedure TWatchesDlg.popEnabledClick(Sender: TObject);
|
||||
var
|
||||
Watch: TIDEWatch;
|
||||
begin
|
||||
Watch := GetSelected;
|
||||
if Watch = nil then Exit;
|
||||
popEnabled.Checked := not popEnabled.Checked;
|
||||
Watch.Enabled := popEnabled.Checked;
|
||||
try
|
||||
DisableAllActions;
|
||||
Watch := GetSelected;
|
||||
if Watch = nil then Exit;
|
||||
popEnabled.Checked := not popEnabled.Checked;
|
||||
Watch.Enabled := popEnabled.Checked;
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.popPropertiesClick(Sender: TObject);
|
||||
begin
|
||||
DebugBoss.ShowWatchProperties(GetSelected);
|
||||
try
|
||||
DisableAllActions;
|
||||
DebugBoss.ShowWatchProperties(GetSelected);
|
||||
finally
|
||||
lvWatchesSelectItem(nil, nil, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.UpdateItem(const AItem: TListItem; const AWatch: TIDEWatch);
|
||||
@ -467,6 +515,14 @@ begin
|
||||
WatchUpdate(FWatches, FWatches.Items[i]);
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.DisableAllActions;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to ActionList1.ActionCount - 1 do
|
||||
(ActionList1.Actions[i] as TAction).Enabled := False;
|
||||
end;
|
||||
|
||||
procedure TWatchesDlg.WatchAdd(const ASender: TIDEWatches; const AWatch: TIDEWatch);
|
||||
var
|
||||
Item: TListItem;
|
||||
|
Loading…
Reference in New Issue
Block a user