mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
UPD: Create separate archives - request password and volume size only once
This commit is contained in:
parent
8f581caf47
commit
9cdebe8103
1 changed files with 37 additions and 21 deletions
|
|
@ -3,7 +3,7 @@
|
|||
-------------------------------------------------------------------------
|
||||
File packing window
|
||||
|
||||
Copyright (C) 2007-2020 Alexander Koblov (alexx2000@mail.ru)
|
||||
Copyright (C) 2007-2022 Alexander Koblov (alexx2000@mail.ru)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -70,6 +70,9 @@ type
|
|||
FExistsArchive : Boolean;
|
||||
FSourceFileSource: IFileSource;
|
||||
FTargetFileSource: IArchiveFileSource;
|
||||
FPlugin: Boolean;
|
||||
FPassword: String;
|
||||
FVolumeSize: String;
|
||||
FCustomParams: String;
|
||||
FTargetPathInArchive: String;
|
||||
procedure SwitchOptions(ArcTypeChange: Boolean);
|
||||
|
|
@ -366,9 +369,11 @@ begin
|
|||
EnableControl(cbPutInTarFirst, not ((sCmd = 'tar') or StrBegins(sCmd, 'tar.')));
|
||||
cbCreateSeparateArchives.Checked:= False;
|
||||
end;
|
||||
FPlugin:= True;
|
||||
// Options that supported by plugins
|
||||
EnableControl(cbStoreDir, True);
|
||||
// Options that don't supported by plugins
|
||||
cbMultivolume.Checked:= False;
|
||||
EnableControl(cbMultivolume, False);
|
||||
Exit;
|
||||
end;
|
||||
|
|
@ -415,7 +420,7 @@ begin
|
|||
EnableControl(cbPutInTarFirst, not ((sCmd = 'tar') or StrBegins(sCmd, 'tar.')));
|
||||
cbCreateSeparateArchives.Checked:= False;
|
||||
end;
|
||||
|
||||
FPlugin:= False;
|
||||
// Options that don't supported by addons
|
||||
cbStoreDir.Checked:= True;
|
||||
EnableControl(cbStoreDir, False);
|
||||
|
|
@ -514,9 +519,6 @@ var
|
|||
NewTargetFileSource: IArchiveFileSource = nil;
|
||||
|
||||
procedure Pack(var FilesToPack: TFiles; QueueId: TOperationsManagerQueueIdentifier);
|
||||
var
|
||||
sPassword,
|
||||
sPasswordTmp: String;
|
||||
begin
|
||||
if Assigned(NewTargetFileSource) then
|
||||
begin
|
||||
|
|
@ -547,23 +549,9 @@ var
|
|||
with Operation as TMultiArchiveCopyInOperation do
|
||||
begin
|
||||
if cbEncrypt.Checked then
|
||||
repeat
|
||||
if not InputQuery(Caption, rsMsgPasswordEnter, True, sPassword) then
|
||||
Exit;
|
||||
if gRepeatPassword then
|
||||
begin
|
||||
if not InputQuery(Caption, rsMsgPasswordVerify, True, sPasswordTmp) then
|
||||
Exit;
|
||||
end
|
||||
else
|
||||
sPasswordTmp:= sPassword;
|
||||
if sPassword <> sPasswordTmp then
|
||||
ShowMessage(rsMsgPasswordDiff)
|
||||
else
|
||||
Password:= sPassword;
|
||||
until sPassword = sPasswordTmp;
|
||||
Password:= FPassword;
|
||||
if cbMultivolume.Checked then
|
||||
VolumeSize:= InputBox(Caption, rsMsgVolumeSizeEnter, EmptyStr);
|
||||
VolumeSize:= FVolumeSize;
|
||||
PackingFlags := aFlags;
|
||||
CreateNew:= FNewArchive;
|
||||
CustomParams:= FCustomParams;
|
||||
|
|
@ -578,6 +566,7 @@ var
|
|||
end;
|
||||
|
||||
var
|
||||
sPassword, sPasswordTmp: String;
|
||||
QueueId: TOperationsManagerQueueIdentifier;
|
||||
begin
|
||||
if Assigned(FTargetFileSource) then
|
||||
|
|
@ -591,6 +580,33 @@ begin
|
|||
end
|
||||
else // Create a new target file source.
|
||||
begin
|
||||
if not FPlugin then
|
||||
begin
|
||||
if cbEncrypt.Checked then
|
||||
begin
|
||||
sPassword:= EmptyStr;
|
||||
sPasswordTmp:= EmptyStr;
|
||||
repeat
|
||||
if not InputQuery(Caption, rsMsgPasswordEnter, True, sPassword) then
|
||||
Exit;
|
||||
if gRepeatPassword then
|
||||
begin
|
||||
if not InputQuery(Caption, rsMsgPasswordVerify, True, sPasswordTmp) then
|
||||
Exit;
|
||||
end
|
||||
else
|
||||
sPasswordTmp:= sPassword;
|
||||
if sPassword <> sPasswordTmp then
|
||||
ShowMessage(rsMsgPasswordDiff)
|
||||
else
|
||||
FPassword:= sPassword;
|
||||
until sPassword = sPasswordTmp;
|
||||
end;
|
||||
|
||||
if cbMultivolume.Checked then
|
||||
FVolumeSize:= InputBox(Caption, rsMsgVolumeSizeEnter, EmptyStr);
|
||||
end;
|
||||
|
||||
// If create separate archives, one per selected file/dir
|
||||
if cbCreateSeparateArchives.Checked then
|
||||
begin
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue