mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: refactor FileSource - step 3: move fsoMove logic into TSearchResultFileSourceProcessor (from fMain)
This commit is contained in:
parent
7fcceac697
commit
7d664ad53c
1 changed files with 43 additions and 0 deletions
|
|
@ -7,7 +7,9 @@ interface
|
|||
uses
|
||||
Classes, SysUtils,
|
||||
uFile,
|
||||
uFileSource, uFileSourceManager,
|
||||
uMultiListFileSource,
|
||||
uFileSourceOperationTypes,
|
||||
uFileSourceOperation,
|
||||
uFileSourceProperty;
|
||||
|
||||
|
|
@ -25,6 +27,7 @@ type
|
|||
|
||||
TSearchResultFileSource = class(TMultiListFileSource, ISearchResultFileSource)
|
||||
public
|
||||
function GetProcessor: TFileSourceProcessor; override;
|
||||
|
||||
function GetRootDir(sPath : String): String; override;
|
||||
function GetProperties: TFileSourceProperties; override;
|
||||
|
|
@ -42,6 +45,40 @@ implementation
|
|||
uses
|
||||
uFileSystemFileSource, uSearchResultListOperation, uLng;
|
||||
|
||||
type
|
||||
|
||||
{ TSearchResultFileSourceProcessor }
|
||||
|
||||
TSearchResultFileSourceProcessor = class( TDefaultFileSourceProcessor )
|
||||
procedure consultBeforeOperate( var params: TFileSourceConsultParams ); override;
|
||||
end;
|
||||
|
||||
var
|
||||
searchResultFileSourceProcessor: TSearchResultFileSourceProcessor;
|
||||
|
||||
procedure TSearchResultFileSourceProcessor.consultBeforeOperate( var params: TFileSourceConsultParams);
|
||||
procedure process;
|
||||
var
|
||||
searchResultFS: ISearchResultFileSource;
|
||||
begin
|
||||
if params.operationType <> fsoMove then
|
||||
Exit;
|
||||
if params.currentFS <> params.sourceFS then
|
||||
Exit;
|
||||
|
||||
searchResultFS:= params.currentFS as ISearchResultFileSource;
|
||||
params.sourceFS:= searchResultFS.FileSource;
|
||||
end;
|
||||
begin
|
||||
process;
|
||||
Inherited;
|
||||
end;
|
||||
|
||||
function TSearchResultFileSource.GetProcessor: TFileSourceProcessor;
|
||||
begin
|
||||
Result:= searchResultFileSourceProcessor;
|
||||
end;
|
||||
|
||||
function TSearchResultFileSource.GetRootDir(sPath: String): String;
|
||||
begin
|
||||
Result:= PathDelim + PathDelim + PathDelim + rsSearchResult + PathDelim;
|
||||
|
|
@ -77,5 +114,11 @@ begin
|
|||
Result:= True;
|
||||
end;
|
||||
|
||||
initialization
|
||||
searchResultFileSourceProcessor:= TSearchResultFileSourceProcessor.Create;
|
||||
|
||||
finalization
|
||||
FreeAndNil( searchResultFileSourceProcessor );
|
||||
|
||||
end.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue