mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-20 07:29:29 +02:00
LCL: Add BeginUpdate..EndUpdate for FullCollapse and FullExpand in TreeView. Issue #40304, patch by n7800.
This commit is contained in:
parent
510d99957d
commit
ab21cfa331
@ -743,24 +743,32 @@ procedure TTreeNode.ExpandItem(ExpandIt, Recurse: Boolean);
|
||||
var
|
||||
ANode: TTreeNode;
|
||||
begin
|
||||
if Recurse then begin
|
||||
ExpandItem(ExpandIt, False);
|
||||
ANode := GetFirstChild;
|
||||
while ANode<>nil do begin
|
||||
ANode.ExpandItem(ExpandIt, true);
|
||||
ANode := ANode.FNextBrother;
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
if TreeView<>nil then
|
||||
Include(TreeView.FStates,tvsManualNotify);
|
||||
try
|
||||
if DoCanExpand(ExpandIt) then
|
||||
DoExpand(ExpandIt);
|
||||
finally
|
||||
if TreeView<>nil then
|
||||
Exclude(TreeView.FStates,tvsManualNotify);
|
||||
if TreeView <> nil then
|
||||
TreeView.BeginUpdate;
|
||||
try
|
||||
if Recurse then
|
||||
begin
|
||||
ExpandItem(ExpandIt, False);
|
||||
ANode := GetFirstChild;
|
||||
while ANode <> nil do
|
||||
begin
|
||||
ANode.ExpandItem(ExpandIt, true);
|
||||
ANode := ANode.FNextBrother;
|
||||
end;
|
||||
end else begin
|
||||
if TreeView <> nil then
|
||||
Include(TreeView.FStates, tvsManualNotify);
|
||||
try
|
||||
if DoCanExpand(ExpandIt) then
|
||||
DoExpand(ExpandIt);
|
||||
finally
|
||||
if TreeView <> nil then
|
||||
Exclude(TreeView.FStates, tvsManualNotify);
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
if TreeView <> nil then
|
||||
TreeView.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4364,10 +4372,15 @@ procedure TCustomTreeView.FullExpand;
|
||||
var
|
||||
Node: TTreeNode;
|
||||
begin
|
||||
Node := Items.GetFirstNode;
|
||||
while Node <> nil do begin
|
||||
Node.Expand(True);
|
||||
Node := Node.GetNextSibling;
|
||||
BeginUpdate;
|
||||
try
|
||||
Node := Items.GetFirstNode;
|
||||
while Node <> nil do begin
|
||||
Node.Expand(True);
|
||||
Node := Node.GetNextSibling;
|
||||
end;
|
||||
finally
|
||||
EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4375,10 +4388,15 @@ procedure TCustomTreeView.FullCollapse;
|
||||
var
|
||||
Node: TTreeNode;
|
||||
begin
|
||||
Node := Items.GetFirstNode;
|
||||
while Node <> nil do begin
|
||||
Node.Collapse(True);
|
||||
Node := Node.GetNextSibling;
|
||||
BeginUpdate;
|
||||
try
|
||||
Node := Items.GetFirstNode;
|
||||
while Node <> nil do begin
|
||||
Node.Collapse(True);
|
||||
Node := Node.GetNextSibling;
|
||||
end;
|
||||
finally
|
||||
EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user