mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: Execute operation for MultiArchiveFileSource
This commit is contained in:
parent
29a29c4db4
commit
cccbd0402c
4 changed files with 88 additions and 12 deletions
|
|
@ -29,7 +29,7 @@ interface
|
|||
|
||||
uses
|
||||
SysUtils, Classes, LResources, Forms, StdCtrls, ExtCtrls, Controls,
|
||||
uWcxArchiveFile, uWcxArchiveFileSource, uFileSourceExecuteOperation;
|
||||
uArchiveFile, uArchiveFileSource, uFileSourceExecuteOperation;
|
||||
|
||||
type
|
||||
|
||||
|
|
@ -64,17 +64,17 @@ type
|
|||
private
|
||||
{ private declarations }
|
||||
public
|
||||
constructor Create(TheOwner: TComponent; aFileSource: IWcxArchiveFileSource; aFile: TWcxArchiveFile); reintroduce;
|
||||
constructor Create(TheOwner: TComponent; aFileSource: IArchiveFileSource; aFile: TArchiveFile); reintroduce;
|
||||
end;
|
||||
|
||||
function ShowPackInfoDlg(aFileSource: IWcxArchiveFileSource; aFile: TWcxArchiveFile): TFileSourceExecuteOperationResult;
|
||||
function ShowPackInfoDlg(aFileSource: IArchiveFileSource; aFile: TArchiveFile): TFileSourceExecuteOperationResult;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
LCLType, uTypes, uFileProperty;
|
||||
|
||||
function ShowPackInfoDlg(aFileSource: IWcxArchiveFileSource; aFile: TWcxArchiveFile): TFileSourceExecuteOperationResult;
|
||||
function ShowPackInfoDlg(aFileSource: IArchiveFileSource; aFile: TArchiveFile): TFileSourceExecuteOperationResult;
|
||||
begin
|
||||
Result:= fseorSuccess;
|
||||
with TfrmPackInfoDlg.Create(Application, aFileSource, aFile) do
|
||||
|
|
@ -94,7 +94,7 @@ end;
|
|||
{ TfrmPackInfoDlg }
|
||||
|
||||
constructor TfrmPackInfoDlg.Create(TheOwner: TComponent;
|
||||
aFileSource: IWcxArchiveFileSource; aFile: TWcxArchiveFile);
|
||||
aFileSource: IArchiveFileSource; aFile: TArchiveFile);
|
||||
var
|
||||
sArcType: String;
|
||||
begin
|
||||
|
|
|
|||
74
src/newdesign/umultiarchiveexecuteoperation.pas
Normal file
74
src/newdesign/umultiarchiveexecuteoperation.pas
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
unit uMultiArchiveExecuteOperation;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
uFile,
|
||||
uFileSource,
|
||||
uFileSourceExecuteOperation,
|
||||
uMultiArchiveFileSource,
|
||||
uMultiArchiveFile;
|
||||
|
||||
type
|
||||
|
||||
{ TMultiArchiveExecuteOperation }
|
||||
|
||||
TMultiArchiveExecuteOperation = class(TFileSourceExecuteOperation)
|
||||
private
|
||||
FMultiArchiveFileSource: IMultiArchiveFileSource;
|
||||
FMultiArchiveFile: TMultiArchiveFile;
|
||||
public
|
||||
{en
|
||||
@param(aTargetFileSource
|
||||
File source where the file should be executed.)
|
||||
@param(aExecutableFile
|
||||
File that should be executed.)
|
||||
@param(aCurrentPath
|
||||
Path of the file source where the execution should take place.)
|
||||
}
|
||||
constructor Create(aTargetFileSource: IFileSource;
|
||||
aExecutableFile: TFile;
|
||||
aCurrentPath,
|
||||
aVerb: UTF8String); override;
|
||||
|
||||
procedure Initialize; override;
|
||||
procedure MainExecute; override;
|
||||
procedure Finalize; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
fPackInfoDlg;
|
||||
|
||||
constructor TMultiArchiveExecuteOperation.Create(
|
||||
aTargetFileSource: IFileSource;
|
||||
aExecutableFile: TFile;
|
||||
aCurrentPath,
|
||||
aVerb: UTF8String);
|
||||
begin
|
||||
FMultiArchiveFileSource := aTargetFileSource as IMultiArchiveFileSource;
|
||||
FMultiArchiveFile:= aExecutableFile as TMultiArchiveFile;
|
||||
inherited Create(aTargetFileSource, aExecutableFile, aCurrentPath, aVerb);
|
||||
end;
|
||||
|
||||
procedure TMultiArchiveExecuteOperation.Initialize;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TMultiArchiveExecuteOperation.MainExecute;
|
||||
begin
|
||||
FExecuteOperationResult:= ShowPackInfoDlg(FMultiArchiveFileSource, FMultiArchiveFile);
|
||||
end;
|
||||
|
||||
procedure TMultiArchiveExecuteOperation.Finalize;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
|
@ -90,9 +90,9 @@ type
|
|||
|
||||
function CreateDeleteOperation(var FilesToDelete: TFiles): TFileSourceOperation; override;
|
||||
|
||||
{
|
||||
function CreateExecuteOperation(const ExecutableFile: TFile;
|
||||
BasePath, Verb: String): TFileSourceOperation; override;
|
||||
{
|
||||
function CreateTestArchiveOperation(var theSourceFiles: TFiles): TFileSourceOperation; override;
|
||||
}
|
||||
|
||||
|
|
@ -111,9 +111,9 @@ uses
|
|||
uMultiArchiveListOperation,
|
||||
uMultiArchiveCopyInOperation,
|
||||
uMultiArchiveCopyOutOperation,
|
||||
uMultiArchiveDeleteOperation
|
||||
uMultiArchiveDeleteOperation,
|
||||
uMultiArchiveExecuteOperation
|
||||
{
|
||||
uMultiArchiveExecuteOperation,
|
||||
uMultiArchiveTestArchiveOperation
|
||||
}
|
||||
;
|
||||
|
|
@ -135,7 +135,7 @@ begin
|
|||
begin
|
||||
aMultiArcItem:= gMultiArcList.Items[I];
|
||||
|
||||
if SameText(sExtension, aMultiArcItem.FExtension) {and (aMultiArcItem.FEnabled)} then
|
||||
if SameText(sExtension, aMultiArcItem.FExtension) and (aMultiArcItem.FEnabled) then
|
||||
begin
|
||||
Result := TMultiArchiveFileSource.Create(anArchiveFileName,
|
||||
aMultiArcItem);
|
||||
|
|
@ -170,7 +170,7 @@ end;
|
|||
|
||||
function TMultiArchiveFileSource.GetOperationsTypes: TFileSourceOperationTypes;
|
||||
begin
|
||||
Result := [];
|
||||
Result := [fsoExecute];
|
||||
if FMultiArcItem.FList <> EmptyStr then
|
||||
Result := Result + [fsoList];
|
||||
if FMultiArcItem.FAdd <> EmptyStr then
|
||||
|
|
@ -285,16 +285,16 @@ begin
|
|||
FilesToDelete);
|
||||
end;
|
||||
|
||||
{
|
||||
function TMultiArchiveFileSource.CreateExecuteOperation(const ExecutableFile: TFile;
|
||||
BasePath, Verb: String): TFileSourceOperation;
|
||||
var
|
||||
TargetFileSource: IFileSource;
|
||||
begin
|
||||
TargetFileSource := Self;
|
||||
Result:= TWcxArchiveExecuteOperation.Create(TargetFileSource, ExecutableFile, BasePath, Verb);
|
||||
Result:= TMultiArchiveExecuteOperation.Create(TargetFileSource, ExecutableFile, BasePath, Verb);
|
||||
end;
|
||||
|
||||
{
|
||||
function TMultiArchiveFileSource.CreateTestArchiveOperation(var theSourceFiles: TFiles): TFileSourceOperation;
|
||||
var
|
||||
SourceFileSource: IFileSource;
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ begin
|
|||
FAdd:= TrimQuotes(IniFile.ReadString(Section, 'Add', EmptyStr));
|
||||
FMove:= TrimQuotes(IniFile.ReadString(Section, 'Move', EmptyStr));
|
||||
// optional
|
||||
FEnabled:= IniFile.ReadBool(Section, 'Enabled', True);
|
||||
FConsoleOutput:= IniFile.ReadBool(Section, 'ConsoleOutput', False);
|
||||
end;
|
||||
FList.AddObject(Section, MultiArcItem);
|
||||
|
|
@ -188,6 +189,7 @@ begin
|
|||
IniFile.WriteString(Section, 'Add', FAdd);
|
||||
IniFile.WriteString(Section, 'Move', FMove);
|
||||
// optional
|
||||
IniFile.WriteBool(Section, 'Enabled', FEnabled);
|
||||
IniFile.WriteBool(Section, 'ConsoleOutput', FConsoleOutput);
|
||||
end;
|
||||
end;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue