TFileSearcher: rename OnQueryDirectoruFound to OnQueryDirectoryEnter and only call it when deciding to enter a directory, not when one is found.

This commit is contained in:
Bart 2024-02-06 20:21:03 +01:00
parent 65e0930568
commit 2bae28ff63
2 changed files with 11 additions and 14 deletions

View File

@ -782,11 +782,11 @@ begin
FOnQueryFileFound(Self, Fn, Accept); FOnQueryFileFound(Self, Fn, Accept);
end; end;
procedure TFileSearcher.DoQueryDirectoryFound(const Dir: String; procedure TFileSearcher.DoQueryDirectoryEnter(const Dir: String;
var Accept: Boolean); var Accept: Boolean);
begin begin
if Assigned(FOnQueryDirectoryFound) then if Assigned(FOnQueryDirectoryEnter) then
FOnQueryDirectoryFound(Self, Dir, Accept); FOnQueryDirectoryEnter(Self, Dir, Accept);
end; end;
constructor TFileSearcher.Create; constructor TFileSearcher.Create;
@ -816,7 +816,7 @@ var
function AcceptDir(const Dir: String): Boolean; function AcceptDir(const Dir: String): Boolean;
begin begin
Result := True; Result := True;
DoQueryDirectoryFound(Dir, Result); DoQueryDirectoryEnter(Dir, Result);
end; end;
var var
@ -842,14 +842,11 @@ var
end; end;
end end
else begin // Directory else begin // Directory
if AcceptDir(AppendPathDelim(ExpandFilenameUtf8(APath + PathInfo.Name))) then
begin
FPath := APath; FPath := APath;
FLevel := ALevel; FLevel := ALevel;
FFileInfo := PathInfo; FFileInfo := PathInfo;
DoDirectoryFound; DoDirectoryFound;
end; end;
end;
until (FindNextUTF8(PathInfo) <> 0) or not FSearching; until (FindNextUTF8(PathInfo) <> 0) or not FSearching;
finally finally

View File

@ -138,7 +138,7 @@ type
FFileAttribute: Word; FFileAttribute: Word;
FDirectoryAttribute: Word; FDirectoryAttribute: Word;
FOnQueryFileFound: TQueryFileFoundEvent; FOnQueryFileFound: TQueryFileFoundEvent;
FOnQueryDirectoryFound: TQueryDirectoryFoundEvent; FOnQueryDirectoryEnter: TQueryDirectoryFoundEvent;
FCircularLinkDetection: Boolean; FCircularLinkDetection: Boolean;
VisitedDirs: TFPStringHashTable; VisitedDirs: TFPStringHashTable;
procedure RaiseSearchingError; procedure RaiseSearchingError;
@ -147,7 +147,7 @@ type
procedure DoDirectoryFound; virtual; procedure DoDirectoryFound; virtual;
procedure DoFileFound; virtual; procedure DoFileFound; virtual;
procedure DoQueryFileFound(const Fn: String; var Accept: Boolean); procedure DoQueryFileFound(const Fn: String; var Accept: Boolean);
procedure DoQueryDirectoryFound(const Dir: String; var Accept: Boolean); procedure DoQueryDirectoryEnter(const Dir: String; var Accept: Boolean);
public public
constructor Create; constructor Create;
procedure Search(const ASearchPath: String; const ASearchMask: String = ''; procedure Search(const ASearchPath: String; const ASearchMask: String = '';
@ -163,7 +163,7 @@ type
property OnFileFound: TFileFoundEvent read FOnFileFound write FOnFileFound; property OnFileFound: TFileFoundEvent read FOnFileFound write FOnFileFound;
property OnDirectoryEnter: TDirectoryEnterEvent read FOnDirectoryEnter write FOnDirectoryEnter; property OnDirectoryEnter: TDirectoryEnterEvent read FOnDirectoryEnter write FOnDirectoryEnter;
property OnQueryFileFound: TQueryFileFoundEvent read FOnQueryFileFound write FOnQueryFileFound; property OnQueryFileFound: TQueryFileFoundEvent read FOnQueryFileFound write FOnQueryFileFound;
property OnQueryDirectoryFound: TQueryDirectoryFoundEvent read FOnQueryDirectoryFound write FOnQueryDirectoryFound; property OnQueryDirectoryEnter: TQueryDirectoryFoundEvent read FOnQueryDirectoryEnter write FOnQueryDirectoryEnter;
end; end;
{ TListFileSearcher } { TListFileSearcher }