mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 14:36:09 +02:00
IDE: Remove unnecessary TLazFileSearcher class in FindInFiles. Issue #40888, patch by n7800.
This commit is contained in:
parent
088167ac57
commit
26080b1f1b
@ -87,7 +87,6 @@ type
|
||||
fSearchProject: boolean;
|
||||
fSearchProjectGroup: boolean;
|
||||
fResultsPageIndex: integer;
|
||||
fAborting: boolean;
|
||||
fLastUpdateProgress: DWORD;
|
||||
fWasActive: boolean;
|
||||
procedure AddMatchHandler(const Filename: string; const StartPos, EndPos: TPoint;
|
||||
@ -104,6 +103,7 @@ type
|
||||
procedure SetFlag(Flag: TSrcEditSearchOption; AValue: boolean);
|
||||
procedure DoSearchAndAddToSearchResults;
|
||||
function DoSearch: integer;
|
||||
procedure SearchEvent(FileIterator: TFileIterator);
|
||||
public
|
||||
procedure DoSearchOpenFiles;
|
||||
procedure DoSearchActiveFile;
|
||||
@ -782,7 +782,6 @@ function TSearchProgressForm.DoSearch: integer;
|
||||
begin
|
||||
Result:= 0;
|
||||
PromptOnReplace:=true;
|
||||
fAborting:=false;
|
||||
Progress.Abort:=false;
|
||||
lblSearchText.Caption:= fSearchFor;
|
||||
fMatches:= 0;
|
||||
@ -812,79 +811,9 @@ begin
|
||||
Close;
|
||||
end;//DoSearch
|
||||
|
||||
type
|
||||
|
||||
{ TLazFileSearcher }
|
||||
|
||||
TLazFileSearcher = class(TFileSearcher)
|
||||
private
|
||||
FParent: TSearchProgressForm;
|
||||
procedure CheckAbort;
|
||||
protected
|
||||
procedure DoDirectoryEnter; override;
|
||||
procedure DoDirectoryFound; override;
|
||||
procedure DoFileFound; override;
|
||||
public
|
||||
constructor Create(AParent: TSearchProgressForm);
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
{ TLazFileSearcher }
|
||||
|
||||
procedure TLazFileSearcher.CheckAbort;
|
||||
begin
|
||||
if FParent.Progress.Abort then
|
||||
begin
|
||||
if not FParent.FAborting then
|
||||
begin
|
||||
FParent.FAborting := True;
|
||||
FParent.FResultsList.Insert(0, FParent.FAbortString);
|
||||
end;
|
||||
|
||||
Stop;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TLazFileSearcher.DoDirectoryEnter;
|
||||
begin
|
||||
CheckAbort;
|
||||
end;
|
||||
|
||||
procedure TLazFileSearcher.DoDirectoryFound;
|
||||
begin
|
||||
CheckAbort;
|
||||
end;
|
||||
|
||||
procedure TLazFileSearcher.DoFileFound;
|
||||
var
|
||||
F: String;
|
||||
begin
|
||||
F := FileName;
|
||||
if FileIsTextCached(F) then
|
||||
begin
|
||||
FParent.UpdateProgress(F);
|
||||
FParent.SearchFile(F);
|
||||
end;
|
||||
CheckAbort;
|
||||
end;
|
||||
|
||||
constructor TLazFileSearcher.Create(AParent: TSearchProgressForm);
|
||||
begin
|
||||
inherited Create;
|
||||
FParent := AParent;
|
||||
end;
|
||||
|
||||
destructor TLazFileSearcher.Destroy;
|
||||
begin
|
||||
FParent:=nil;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
{ TSearchProgressForm }
|
||||
|
||||
procedure TSearchProgressForm.DoFindInFiles(ADirectories: string);
|
||||
var
|
||||
Searcher: TLazFileSearcher;
|
||||
Searcher: TFileSearcher;
|
||||
SearchPath: String;
|
||||
p: Integer;
|
||||
Dir: String;
|
||||
@ -900,7 +829,10 @@ begin
|
||||
until false;
|
||||
if SearchPath='' then
|
||||
exit;
|
||||
Searcher := TLazFileSearcher.Create(Self);
|
||||
Searcher := TFileSearcher.Create;
|
||||
Searcher.OnDirectoryFound := @SearchEvent;
|
||||
Searcher.OnDirectoryEnter := @SearchEvent;
|
||||
Searcher.OnFileFound := @SearchEvent;
|
||||
try
|
||||
Searcher.Search(SearchPath, FMask, FRecursive);
|
||||
finally
|
||||
@ -908,6 +840,24 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSearchProgressForm.SearchEvent(FileIterator: TFileIterator);
|
||||
begin
|
||||
// File found
|
||||
if not FileIterator.IsDirectory then
|
||||
if FileIsTextCached(FileIterator.FileName) then
|
||||
begin
|
||||
UpdateProgress(FileIterator.FileName);
|
||||
SearchFile(FileIterator.FileName);
|
||||
end;
|
||||
|
||||
// Check abort
|
||||
if Progress.Abort then
|
||||
begin
|
||||
FileIterator.Stop;
|
||||
FResultsList.Insert(0, FAbortString);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSearchProgressForm.DoFindInSearchList;
|
||||
var
|
||||
i: integer;
|
||||
|
Loading…
Reference in New Issue
Block a user