mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 17:49:28 +02:00
lazcontrols: filteredit: fixed default filter functions for non-lowercase strings.
git-svn-id: trunk@50331 -
This commit is contained in:
parent
ba864434f1
commit
89d2d8a738
components/lazcontrols
@ -166,11 +166,12 @@ procedure TListFilterEdit.SortAndFilter;
|
||||
// Copy data from fOriginalData to fSortedData in sorted order
|
||||
var
|
||||
Origi, i: Integer;
|
||||
s: string;
|
||||
s, FilterLC: string;
|
||||
Pass, Done: Boolean;
|
||||
begin
|
||||
Done:=False;
|
||||
fSortedData.Clear;
|
||||
FilterLC := UTF8LowerCase(Filter);
|
||||
for Origi:=0 to fOriginalData.Count-1 do begin
|
||||
s:=fOriginalData[Origi];
|
||||
// Filter with event handler if there is one.
|
||||
@ -180,7 +181,7 @@ begin
|
||||
Pass:=False;
|
||||
// Filter by item's title text if needed.
|
||||
if not (Pass or Done) then
|
||||
Pass:=(Filter='') or (Pos(Filter,UTF8LowerCase(s))>0);
|
||||
Pass:=(FilterLC='') or (Pos(FilterLC,UTF8LowerCase(s))>0);
|
||||
if Pass then begin
|
||||
i:=fSortedData.Count-1; // Always sort the data.
|
||||
while i>=0 do begin
|
||||
|
@ -144,15 +144,17 @@ end;
|
||||
function TListViewFilterEdit.MatchesFilter(aData: TStringArray): Boolean;
|
||||
var
|
||||
i, EndInd: Integer;
|
||||
FilterLC: string;
|
||||
begin
|
||||
if Filter='' then
|
||||
Exit(True);
|
||||
FilterLC := UTF8LowerCase(Filter);
|
||||
if fByAllFields then
|
||||
EndInd := Pred(Length(aData))
|
||||
else
|
||||
EndInd := 0;
|
||||
for i := 0 to EndInd do begin
|
||||
Result := Pos(Filter,UTF8LowerCase(aData[i]))>0;
|
||||
Result := Pos(FilterLC,UTF8LowerCase(aData[i]))>0;
|
||||
if Result then
|
||||
Exit;
|
||||
end;
|
||||
|
@ -465,9 +465,11 @@ function TTreeFilterEdit.FilterTree(Node: TTreeNode): Boolean;
|
||||
// Returns True if Node or its siblings or child nodes have visible items.
|
||||
var
|
||||
Pass, Done: Boolean;
|
||||
FilterLC: string;
|
||||
begin
|
||||
Result:=False;
|
||||
Done:=False;
|
||||
FilterLC := UTF8LowerCase(Filter);
|
||||
while Node<>nil do
|
||||
begin
|
||||
// Call OnFilterItem handler.
|
||||
@ -477,7 +479,7 @@ begin
|
||||
Pass:=False;
|
||||
// Filter by item's title text if needed.
|
||||
if not (Pass or Done) then
|
||||
Pass:=(Filter='') or (Pos(Filter,UTF8LowerCase(Node.Text))>0);
|
||||
Pass:=(FilterLC='') or (Pos(FilterLC,UTF8LowerCase(Node.Text))>0);
|
||||
// Recursive call for child nodes.
|
||||
Node.Visible:=FilterTree(Node.GetFirstChild) or Pass;
|
||||
if Node.Visible then
|
||||
|
Loading…
Reference in New Issue
Block a user