mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 04:29:11 +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 JumpToCurrentBreakPoint;
|
||||||
procedure ShowProperties;
|
procedure ShowProperties;
|
||||||
protected
|
protected
|
||||||
|
procedure DoBeginUpdate; override;
|
||||||
procedure DoEndUpdate; override;
|
procedure DoEndUpdate; override;
|
||||||
|
procedure DisableAllActions;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -351,12 +353,17 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||||
begin
|
begin
|
||||||
Item := lvBreakPoints.Items[n];
|
Item := lvBreakPoints.Items[n];
|
||||||
if Item.Selected then
|
if Item.Selected then
|
||||||
TIDEBreakPoint(Item.Data).Enabled := True;
|
TIDEBreakPoint(Item.Data).Enabled := True;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.actDisableSelectedExecute(Sender: TObject);
|
procedure TBreakPointsDlg.actDisableSelectedExecute(Sender: TObject);
|
||||||
@ -364,12 +371,17 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvBreakPoints.Items.Count -1 do
|
for n := 0 to lvBreakPoints.Items.Count -1 do
|
||||||
begin
|
begin
|
||||||
Item := lvBreakPoints.Items[n];
|
Item := lvBreakPoints.Items[n];
|
||||||
if Item.Selected then
|
if Item.Selected then
|
||||||
TIDEBreakPoint(Item.Data).Enabled := False;
|
TIDEBreakPoint(Item.Data).Enabled := False;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.lvBreakPointsClick(Sender: TObject);
|
procedure TBreakPointsDlg.lvBreakPointsClick(Sender: TObject);
|
||||||
@ -484,6 +496,8 @@ var
|
|||||||
CurBreakPoint: TIDEBreakPoint;
|
CurBreakPoint: TIDEBreakPoint;
|
||||||
Filename: String;
|
Filename: String;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
CurItem:=lvBreakPoints.Selected;
|
CurItem:=lvBreakPoints.Selected;
|
||||||
if (CurItem=nil) then exit;
|
if (CurItem=nil) then exit;
|
||||||
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
||||||
@ -498,6 +512,9 @@ begin
|
|||||||
if CompareFilenames(CurBreakPoint.Source,Filename)=0
|
if CompareFilenames(CurBreakPoint.Source,Filename)=0
|
||||||
then CurBreakPoint.Free;
|
then CurBreakPoint.Free;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popDisableAllSameSourceCLICK(Sender: TObject);
|
procedure TBreakPointsDlg.popDisableAllSameSourceCLICK(Sender: TObject);
|
||||||
@ -508,6 +525,8 @@ var
|
|||||||
CurBreakPoint: TIDEBreakPoint;
|
CurBreakPoint: TIDEBreakPoint;
|
||||||
Filename: String;
|
Filename: String;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
CurItem:=lvBreakPoints.Selected;
|
CurItem:=lvBreakPoints.Selected;
|
||||||
if (CurItem=nil) then exit;
|
if (CurItem=nil) then exit;
|
||||||
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
||||||
@ -518,6 +537,9 @@ begin
|
|||||||
if CompareFilenames(CurBreakPoint.Source,Filename)=0
|
if CompareFilenames(CurBreakPoint.Source,Filename)=0
|
||||||
then CurBreakPoint.Enabled := False;
|
then CurBreakPoint.Enabled := False;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popEnableAllSameSourceCLICK(Sender: TObject);
|
procedure TBreakPointsDlg.popEnableAllSameSourceCLICK(Sender: TObject);
|
||||||
@ -528,6 +550,8 @@ var
|
|||||||
CurBreakPoint: TIDEBreakPoint;
|
CurBreakPoint: TIDEBreakPoint;
|
||||||
Filename: String;
|
Filename: String;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
CurItem:=lvBreakPoints.Selected;
|
CurItem:=lvBreakPoints.Selected;
|
||||||
if (CurItem=nil) then exit;
|
if (CurItem=nil) then exit;
|
||||||
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
Filename:=TIDEBreakpoint(CurItem.Data).Source;
|
||||||
@ -538,12 +562,17 @@ begin
|
|||||||
if CompareFilenames(CurBreakPoint.Source,Filename)=0
|
if CompareFilenames(CurBreakPoint.Source,Filename)=0
|
||||||
then CurBreakPoint.Enabled := True;
|
then CurBreakPoint.Enabled := True;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popDeleteAllClick(Sender: TObject);
|
procedure TBreakPointsDlg.popDeleteAllClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
n: Integer;
|
n: Integer;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
if MessageDlg(lisDeleteAllBreakpoints,
|
if MessageDlg(lisDeleteAllBreakpoints,
|
||||||
lisDeleteAllBreakpoints,
|
lisDeleteAllBreakpoints,
|
||||||
mtConfirmation,[mbYes,mbCancel],0)<>mrYes
|
mtConfirmation,[mbYes,mbCancel],0)<>mrYes
|
||||||
@ -555,6 +584,9 @@ begin
|
|||||||
finally
|
finally
|
||||||
lvBreakPoints.EndUpdate;
|
lvBreakPoints.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popShowClick(Sender: TObject);
|
procedure TBreakPointsDlg.popShowClick(Sender: TObject);
|
||||||
@ -564,7 +596,12 @@ end;
|
|||||||
|
|
||||||
procedure TBreakPointsDlg.popDeleteClick(Sender: TObject);
|
procedure TBreakPointsDlg.popDeleteClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
DeleteSelectedBreakpoints
|
DeleteSelectedBreakpoints
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popDisableAllClick(Sender: TObject);
|
procedure TBreakPointsDlg.popDisableAllClick(Sender: TObject);
|
||||||
@ -572,12 +609,17 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
||||||
begin
|
begin
|
||||||
Item := lvBreakPoints.Items[n];
|
Item := lvBreakPoints.Items[n];
|
||||||
if Item.Data <> nil
|
if Item.Data <> nil
|
||||||
then TIDEBreakPoint(Item.Data).Enabled := False;
|
then TIDEBreakPoint(Item.Data).Enabled := False;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popEnableAllClick(Sender: TObject);
|
procedure TBreakPointsDlg.popEnableAllClick(Sender: TObject);
|
||||||
@ -585,12 +627,17 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
for n := 0 to lvBreakPoints.Items.Count - 1 do
|
||||||
begin
|
begin
|
||||||
Item := lvBreakPoints.Items[n];
|
Item := lvBreakPoints.Items[n];
|
||||||
if Item.Data <> nil
|
if Item.Data <> nil
|
||||||
then TIDEBreakPoint(Item.Data).Enabled := True;
|
then TIDEBreakPoint(Item.Data).Enabled := True;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popEnabledClick(Sender: TObject);
|
procedure TBreakPointsDlg.popEnabledClick(Sender: TObject);
|
||||||
@ -599,6 +646,8 @@ var
|
|||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
Enable: Boolean;
|
Enable: Boolean;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
Item:=lvBreakPoints.Selected;
|
Item:=lvBreakPoints.Selected;
|
||||||
if (Item=nil) then exit;
|
if (Item=nil) then exit;
|
||||||
|
|
||||||
@ -616,17 +665,34 @@ begin
|
|||||||
else begin
|
else begin
|
||||||
TIDEBreakPoint(Item.Data).Enabled:= Enable;
|
TIDEBreakPoint(Item.Data).Enabled:= Enable;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.popPropertiesClick(Sender: TObject);
|
procedure TBreakPointsDlg.popPropertiesClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
ShowProperties;
|
ShowProperties;
|
||||||
|
finally
|
||||||
|
lvBreakPointsSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.DoEndUpdate;
|
procedure TBreakPointsDlg.DoEndUpdate;
|
||||||
begin
|
begin
|
||||||
inherited DoEndUpdate;
|
inherited DoEndUpdate;
|
||||||
if bpdsItemsNeedUpdate in FStates then UpdateAll;
|
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;
|
end;
|
||||||
|
|
||||||
procedure TBreakPointsDlg.UpdateItem(const AnItem: TListItem;
|
procedure TBreakPointsDlg.UpdateItem(const AnItem: TListItem;
|
||||||
@ -761,5 +827,11 @@ begin
|
|||||||
DebugBoss.ShowBreakPointProperties(CurBreakPoint);
|
DebugBoss.ShowBreakPointProperties(CurBreakPoint);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBreakPointsDlg.DoBeginUpdate;
|
||||||
|
begin
|
||||||
|
inherited DoBeginUpdate;
|
||||||
|
DisableAllActions;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -126,6 +126,8 @@ type
|
|||||||
protected
|
protected
|
||||||
procedure DoBeginUpdate; override;
|
procedure DoBeginUpdate; override;
|
||||||
procedure DoEndUpdate; override;
|
procedure DoEndUpdate; override;
|
||||||
|
procedure DisableAllActions;
|
||||||
|
procedure EnableAllActions;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -307,12 +309,30 @@ end;
|
|||||||
|
|
||||||
procedure TCallStackDlg.DoBeginUpdate;
|
procedure TCallStackDlg.DoBeginUpdate;
|
||||||
begin
|
begin
|
||||||
|
DisableAllActions;
|
||||||
lvCallStack.BeginUpdate;
|
lvCallStack.BeginUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.DoEndUpdate;
|
procedure TCallStackDlg.DoEndUpdate;
|
||||||
begin
|
begin
|
||||||
lvCallStack.EndUpdate;
|
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;
|
end;
|
||||||
|
|
||||||
function TCallStackDlg.GetCurrentEntry: TCallStackEntry;
|
function TCallStackDlg.GetCurrentEntry: TCallStackEntry;
|
||||||
@ -381,6 +401,8 @@ var
|
|||||||
BreakPoint: TIDEBreakPoint;
|
BreakPoint: TIDEBreakPoint;
|
||||||
FileName: String;
|
FileName: String;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
if (Item <> nil) and (BreakPoints <> nil) then
|
if (Item <> nil) and (BreakPoints <> nil) then
|
||||||
begin
|
begin
|
||||||
idx := FViewStart + Item.Index;
|
idx := FViewStart + Item.Index;
|
||||||
@ -395,6 +417,9 @@ begin
|
|||||||
else
|
else
|
||||||
DebugBoss.DoCreateBreakPoint(FileName, Entry.Line, False);
|
DebugBoss.DoCreateBreakPoint(FileName, Entry.Line, False);
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
EnableAllActions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.lvCallStackDBLCLICK(Sender: TObject);
|
procedure TCallStackDlg.lvCallStackDBLCLICK(Sender: TObject);
|
||||||
@ -439,10 +464,15 @@ procedure TCallStackDlg.actSetAsCurrentClick(Sender : TObject);
|
|||||||
var
|
var
|
||||||
Entry: TCallStackEntry;
|
Entry: TCallStackEntry;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
Entry := GetCurrentEntry;
|
Entry := GetCurrentEntry;
|
||||||
if Entry = nil then Exit;
|
if Entry = nil then Exit;
|
||||||
|
|
||||||
CallStack.Current := Entry;
|
CallStack.Current := Entry;
|
||||||
|
finally
|
||||||
|
EnableAllActions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.actShowClick(Sender: TObject);
|
procedure TCallStackDlg.actShowClick(Sender: TObject);
|
||||||
@ -452,9 +482,14 @@ end;
|
|||||||
|
|
||||||
procedure TCallStackDlg.actViewBottomExecute(Sender: TObject);
|
procedure TCallStackDlg.actViewBottomExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
if CallStack <> nil
|
if CallStack <> nil
|
||||||
then SetViewStart(CallStack.Count - FViewLimit)
|
then SetViewStart(CallStack.Count - FViewLimit)
|
||||||
else SetViewStart(0);
|
else SetViewStart(0);
|
||||||
|
finally
|
||||||
|
EnableAllActions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.actToggleBreakPointExecute(Sender: TObject);
|
procedure TCallStackDlg.actToggleBreakPointExecute(Sender: TObject);
|
||||||
@ -464,21 +499,36 @@ end;
|
|||||||
|
|
||||||
procedure TCallStackDlg.actViewGotoExecute(Sender: TObject);
|
procedure TCallStackDlg.actViewGotoExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
SetViewStart(StrToIntDef(txtGoto.Text, 0));
|
SetViewStart(StrToIntDef(txtGoto.Text, 0));
|
||||||
|
finally
|
||||||
|
EnableAllActions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.actViewMoreExecute(Sender: TObject);
|
procedure TCallStackDlg.actViewMoreExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
ToolButtonPower.Down := True;
|
ToolButtonPower.Down := True;
|
||||||
ToolButtonPowerClick(nil);
|
ToolButtonPowerClick(nil);
|
||||||
ViewLimit := ViewLimit + FViewCount;
|
ViewLimit := ViewLimit + FViewCount;
|
||||||
|
finally
|
||||||
|
EnableAllActions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.actViewTopExecute(Sender: TObject);
|
procedure TCallStackDlg.actViewTopExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
ToolButtonPower.Down := True;
|
ToolButtonPower.Down := True;
|
||||||
ToolButtonPowerClick(nil);
|
ToolButtonPowerClick(nil);
|
||||||
SetViewStart(0);
|
SetViewStart(0);
|
||||||
|
finally
|
||||||
|
EnableAllActions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.BreakPointChanged(const ASender: TIDEBreakPoints;
|
procedure TCallStackDlg.BreakPointChanged(const ASender: TIDEBreakPoints;
|
||||||
@ -571,9 +621,14 @@ end;
|
|||||||
|
|
||||||
procedure TCallStackDlg.actViewLimitExecute(Sender: TObject);
|
procedure TCallStackDlg.actViewLimitExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
ToolButtonPower.Down := True;
|
ToolButtonPower.Down := True;
|
||||||
ToolButtonPowerClick(nil);
|
ToolButtonPowerClick(nil);
|
||||||
ViewLimit := FViewCount;
|
ViewLimit := FViewCount;
|
||||||
|
finally
|
||||||
|
EnableAllActions;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCallStackDlg.SetViewStart(AStart: Integer);
|
procedure TCallStackDlg.SetViewStart(AStart: Integer);
|
||||||
|
@ -111,6 +111,7 @@ type
|
|||||||
|
|
||||||
procedure UpdateItem(const AItem: TListItem; const AWatch: TIDEWatch);
|
procedure UpdateItem(const AItem: TListItem; const AWatch: TIDEWatch);
|
||||||
procedure UpdateAll;
|
procedure UpdateAll;
|
||||||
|
procedure DisableAllActions;
|
||||||
protected
|
protected
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
@ -276,6 +277,8 @@ begin
|
|||||||
actDeleteAll.Enabled := lvWatches.Items.Count > 0;
|
actDeleteAll.Enabled := lvWatches.Items.Count > 0;
|
||||||
|
|
||||||
actProperties.Enabled := ItemSelected;
|
actProperties.Enabled := ItemSelected;
|
||||||
|
|
||||||
|
actPower.Enabled := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.lvWatchesDblClick(Sender: TObject);
|
procedure TWatchesDlg.lvWatchesDblClick(Sender: TObject);
|
||||||
@ -320,12 +323,17 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvWatches.Items.Count -1 do
|
for n := 0 to lvWatches.Items.Count -1 do
|
||||||
begin
|
begin
|
||||||
Item := lvWatches.Items[n];
|
Item := lvWatches.Items[n];
|
||||||
if Item.Selected then
|
if Item.Selected then
|
||||||
TIDEWatch(Item.Data).Enabled := True;
|
TIDEWatch(Item.Data).Enabled := True;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.actDisableSelectedExecute(Sender: TObject);
|
procedure TWatchesDlg.actDisableSelectedExecute(Sender: TObject);
|
||||||
@ -333,12 +341,17 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvWatches.Items.Count -1 do
|
for n := 0 to lvWatches.Items.Count -1 do
|
||||||
begin
|
begin
|
||||||
Item := lvWatches.Items[n];
|
Item := lvWatches.Items[n];
|
||||||
if Item.Selected then
|
if Item.Selected then
|
||||||
TIDEWatch(Item.Data).Enabled := False;
|
TIDEWatch(Item.Data).Enabled := False;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.lvWatchesKeyDown(Sender: TObject; var Key: Word;
|
procedure TWatchesDlg.lvWatchesKeyDown(Sender: TObject; var Key: Word;
|
||||||
@ -357,26 +370,41 @@ end;
|
|||||||
|
|
||||||
procedure TWatchesDlg.popAddClick(Sender: TObject);
|
procedure TWatchesDlg.popAddClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
DebugBoss.ShowWatchProperties(nil);
|
DebugBoss.ShowWatchProperties(nil);
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.popDeleteAllClick(Sender: TObject);
|
procedure TWatchesDlg.popDeleteAllClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
n: Integer;
|
n: Integer;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := lvWatches.Items.Count - 1 downto 0 do
|
for n := lvWatches.Items.Count - 1 downto 0 do
|
||||||
TIDEWatch(lvWatches.Items[n].Data).Free;
|
TIDEWatch(lvWatches.Items[n].Data).Free;
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.popDeleteClick(Sender: TObject);
|
procedure TWatchesDlg.popDeleteClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
Item: TIDEWatch;
|
Item: TIDEWatch;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
repeat
|
repeat
|
||||||
Item := GetSelected;
|
Item := GetSelected;
|
||||||
Item.Free;
|
Item.Free;
|
||||||
until Item = nil;
|
until Item = nil;
|
||||||
//GetSelected.Free;
|
//GetSelected.Free;
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.popDisableAllClick(Sender: TObject);
|
procedure TWatchesDlg.popDisableAllClick(Sender: TObject);
|
||||||
@ -384,12 +412,17 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvWatches.Items.Count - 1 do
|
for n := 0 to lvWatches.Items.Count - 1 do
|
||||||
begin
|
begin
|
||||||
Item := lvWatches.Items[n];
|
Item := lvWatches.Items[n];
|
||||||
if Item.Data <> nil
|
if Item.Data <> nil
|
||||||
then TIDEWatch(Item.Data).Enabled := False;
|
then TIDEWatch(Item.Data).Enabled := False;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.popEnableAllClick(Sender: TObject);
|
procedure TWatchesDlg.popEnableAllClick(Sender: TObject);
|
||||||
@ -397,27 +430,42 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
for n := 0 to lvWatches.Items.Count - 1 do
|
for n := 0 to lvWatches.Items.Count - 1 do
|
||||||
begin
|
begin
|
||||||
Item := lvWatches.Items[n];
|
Item := lvWatches.Items[n];
|
||||||
if Item.Data <> nil
|
if Item.Data <> nil
|
||||||
then TIDEWatch(Item.Data).Enabled := True;
|
then TIDEWatch(Item.Data).Enabled := True;
|
||||||
end;
|
end;
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.popEnabledClick(Sender: TObject);
|
procedure TWatchesDlg.popEnabledClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
Watch: TIDEWatch;
|
Watch: TIDEWatch;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
Watch := GetSelected;
|
Watch := GetSelected;
|
||||||
if Watch = nil then Exit;
|
if Watch = nil then Exit;
|
||||||
popEnabled.Checked := not popEnabled.Checked;
|
popEnabled.Checked := not popEnabled.Checked;
|
||||||
Watch.Enabled := popEnabled.Checked;
|
Watch.Enabled := popEnabled.Checked;
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.popPropertiesClick(Sender: TObject);
|
procedure TWatchesDlg.popPropertiesClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
DisableAllActions;
|
||||||
DebugBoss.ShowWatchProperties(GetSelected);
|
DebugBoss.ShowWatchProperties(GetSelected);
|
||||||
|
finally
|
||||||
|
lvWatchesSelectItem(nil, nil, False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWatchesDlg.UpdateItem(const AItem: TListItem; const AWatch: TIDEWatch);
|
procedure TWatchesDlg.UpdateItem(const AItem: TListItem; const AWatch: TIDEWatch);
|
||||||
@ -467,6 +515,14 @@ begin
|
|||||||
WatchUpdate(FWatches, FWatches.Items[i]);
|
WatchUpdate(FWatches, FWatches.Items[i]);
|
||||||
end;
|
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);
|
procedure TWatchesDlg.WatchAdd(const ASender: TIDEWatches; const AWatch: TIDEWatch);
|
||||||
var
|
var
|
||||||
Item: TListItem;
|
Item: TListItem;
|
||||||
|
Loading…
Reference in New Issue
Block a user