LazControls: FilterEdit, unsort data in branch, if owner.SortData is or fShowDirHierarchy change. TODO: keep track, and avoid sorting if e.g. only filter changed. Issue: #41282

This commit is contained in:
Martin 2024-12-16 22:03:47 +01:00
parent bc56d9b8cc
commit b1d3af8d21

View File

@ -247,7 +247,8 @@ var
begin begin
fFilteredData.Clear; fFilteredData.Clear;
if fOriginalData.Modified then begin // TODO: keep track of changes to FOwner>SortData / Filter => optimize if they have not changed
//if fOriginalData.Modified then begin
fSortedData.Assign(fOriginalData); fSortedData.Assign(fOriginalData);
if fOwner.SortData then begin if fOwner.SortData then begin
for i := 0 to fSortedData.Count - 1 do for i := 0 to fSortedData.Count - 1 do
@ -261,7 +262,7 @@ begin
MergeSortWithLen(PPointer(fSortedData.FList.List^), fSortedData.Count, @DoCompFN); MergeSortWithLen(PPointer(fSortedData.FList.List^), fSortedData.Count, @DoCompFN);
end; end;
fOriginalData.Modified := False; // fSortedData is up to date fOriginalData.Modified := False; // fSortedData is up to date
end; //end;
fDisplayedData:=fSortedData; fDisplayedData:=fSortedData;
if (fOwner.Filter<>'') then begin if (fOwner.Filter<>'') then begin