summaryrefslogtreecommitdiff
path: root/UMain.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UMain.pas')
-rw-r--r--UMain.pas94
1 files changed, 38 insertions, 56 deletions
diff --git a/UMain.pas b/UMain.pas
index 2549b32..868f3a5 100644
--- a/UMain.pas
+++ b/UMain.pas
@@ -240,7 +240,7 @@ type
procedure NewTabInternal(LeftPanel: boolean; _Engine: TPanelEngine; _Path: string; NewTabPosition: integer; SwitchToNewTab: boolean);
procedure CopyFilenamesToClipboard(FullPaths, LeftPanel: boolean);
function HandleRunFromArchive(var APath: string; Engine: TPanelEngine; Command, FileTypeDesc: string; BypassDialog: boolean): boolean;
- function ExtractFromArchive(var NewPath: string; Engine: TPanelEngine; const FilePath: string; ExtractAll: boolean): boolean;
+ function ExtractFromArchive(var NewPath: string; Engine: TPanelEngine; const FileToExtract: string; ExtractAll: boolean): boolean;
function HandleKey(Key: Word; Shift: TShiftState; LeftPanel: boolean): boolean;
function IsEditing(AListView: TGTKListView): boolean;
function PanelFindEditableWidget(AListView: TGTKListView): PGtkWidget;
@@ -2448,8 +2448,7 @@ begin
try
AWorkingThread.DialogsParentWindow := Self;
if Assigned(ListView.Selected) then AWorkingThread.SelectedItem := ListView.Selected.Data;
- AWorkingThread.Engine := Engine;
- AWorkingThread.LeftPanel := LeftPanel;
+ AWorkingThread.AEngine := Engine;
AWorkingThread.DataList := DataList;
AWorkingThread.JobType := WORKER_JOB_DELETE;
AWorkingThread.Resume;
@@ -2540,7 +2539,7 @@ end;
procedure TFMain.DoCopyMove(LeftPanel, CopyMode, ShiftPressed: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList);
var i: integer;
SelCount: longint;
- NewPath, NewPathx, SelSingle, NextItem1, NextItem2: string;
+ NewPath, SelSingle, NextItem1, NextItem2: string;
AWorkingThread: TWorkerThread;
OppositeEngine: TPanelEngine;
p: PChar;
@@ -2600,7 +2599,6 @@ begin
else FCopyMove.Entry.Text := Format(ConstFullPathFormatStr, [OppositeEngine.GetPrefix, OppositeEngine.Path]); }
if not BypassSelAll then FCopyMove.Entry.SelectAll;
if FCopyMove.Run <> mbOK then Exit;
- NewPathx := FCopyMove.Entry.Text;
NewPath := UTF8ToStr(FCopyMove.Entry.Text);
finally
FCopyMove.Free;
@@ -2610,7 +2608,7 @@ begin
NextItem1 := ''; NextItem2 := '';
FindNextSelected(ListView, DataList, NextItem1, NextItem2);
DebugMsg(['TFMain.DoCopyMove: FindNextSelected, NextItem1 = "', NextItem1, '", NextItem2 = "', NextItem2, '"']);
- if ShiftPressed then NextItem1 := NewPathx;
+ if ShiftPressed then NextItem1 := NewPath;
AWorkingThread := TWorkerThread.Create;
DebugMsg(['TFMain.DoCopyMove: Creating thread...']);
@@ -2644,15 +2642,11 @@ begin
// Strip the engine prefix
// if Pos(ConstPathDelim, NewPath) > 0 then Delete(NewPath, 1, Pos(ConstPathDelim, NewPath));
- AWorkingThread.LeftPanel := LeftPanel;
AWorkingThread.DataList := DataList;
if CopyMode then AWorkingThread.JobType := WORKER_JOB_COPY
else AWorkingThread.JobType := WORKER_JOB_MOVE;
-// AWorkingThread.WorkerProcedure := DummyThreadWorker;
- AWorkingThread.ParamBool3 := CopyMode;
- AWorkingThread.ParamBool4 := False;
- AWorkingThread.ParamString1 := NewPath;
- AWorkingThread.ParamDataItem1 := nil;
+ AWorkingThread.CopyTargetPath := NewPath;
+
DebugMsg(['*** Copy: AWorkingThread.Resume']);
AWorkingThread.Resume;
@@ -2885,13 +2879,10 @@ begin
if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data;
AWorkingThread.SrcEngine := Engine;
AWorkingThread.DestEngine := Engine;
- AWorkingThread.LeftPanel := AListView = LeftListView;
AWorkingThread.DataList := DataList;
AWorkingThread.JobType := WORKER_JOB_MOVE;
- AWorkingThread.ParamBool3 := False;
- AWorkingThread.ParamBool4 := True;
- AWorkingThread.ParamString1 := UTF8ToStr(NewText);
- AWorkingThread.ParamDataItem1 := InplaceEditItem.Data;
+ AWorkingThread.CopyTargetPath := UTF8ToStr(NewText);
+ AWorkingThread.QuickRenameDataItem := InplaceEditItem.Data;
AWorkingThread.Resume;
ProcessThreadEvents(AWorkingThread);
finally
@@ -3243,19 +3234,18 @@ begin
DebugMsg(['TFMain.miMergeFilesClick: Creating thread...']);
try
AWorkingThread.DialogsParentWindow := Self;
- AWorkingThread.ParamString1 := FilePath;
- AWorkingThread.ParamString2 := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName;
- HasInitialCRC := CRCGetInfo(AWorkingThread.ParamString2, Engine, TargetName, TargetCRC, TargetSize);
- AWorkingThread.ParamString3 := TargetName;
- AWorkingThread.ParamBool1 := HasInitialCRC;
- AWorkingThread.ParamLongWord1 := TargetCRC;
- AWorkingThread.ParamInt64 := TargetSize;
- AWorkingThread.Engine := Engine;
- AWorkingThread.LeftPanel := LeftPanel;
+ AWorkingThread.MergeTargetPath := FilePath;
+ AWorkingThread.MergeSourceFile := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName;
+ HasInitialCRC := CRCGetInfo(AWorkingThread.MergeSourceFile, Engine, TargetName, TargetCRC, TargetSize);
+ AWorkingThread.MergeTargetFinalName:= TargetName;
+ AWorkingThread.MergeHasInitialCRC := HasInitialCRC;
+ AWorkingThread.MergeTargetCRC := TargetCRC;
+ AWorkingThread.MergeTargetSize := TargetSize;
+ AWorkingThread.AEngine := Engine;
AWorkingThread.JobType := WORKER_JOB_MERGE;
AWorkingThread.Resume;
ProcessThreadEvents(AWorkingThread);
- s := AWorkingThread.ParamString3;
+ s := AWorkingThread.MergeTargetFinalName;
finally
DebugMsg(['TFMain.miMergeFilesClick: Freeing thread...']);
AWorkingThread.Free;
@@ -3329,12 +3319,11 @@ begin
DebugMsg(['TFMain.miSplitFileClick: Creating thread...']);
try
AWorkingThread.DialogsParentWindow := Self;
- AWorkingThread.ParamString1 := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName;
- AWorkingThread.ParamString2 := FilePath;
- AWorkingThread.ParamBool1 := DeleteTarget;
- AWorkingThread.ParamInt64 := MaxSize;
- AWorkingThread.Engine := Engine;
- AWorkingThread.LeftPanel := LeftPanel;
+ AWorkingThread.SplitSourceFile := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName;
+ AWorkingThread.SplitTargetPath := FilePath;
+ AWorkingThread.SplitDeleteTarget := DeleteTarget;
+ AWorkingThread.SplitMaxSize := MaxSize;
+ AWorkingThread.AEngine := Engine;
AWorkingThread.JobType := WORKER_JOB_SPLIT;
AWorkingThread.Resume;
ProcessThreadEvents(AWorkingThread);
@@ -3981,11 +3970,11 @@ begin
try
AWorkingThread.DialogsParentWindow := Self;
if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data;
- AWorkingThread.ParamBool1 := FChmod.RecursiveCheckButton.Checked;
- AWorkingThread.ParamInt1 := FChmod.RecursiveOptionMenu.ItemIndex;
- AWorkingThread.ParamCardinal1 := FChmod.LastMode;
- AWorkingThread.Engine := Engine;
- AWorkingThread.LeftPanel := LeftPanel;
+ if not FChmod.RecursiveCheckButton.Checked
+ then AWorkingThread.ChmodRecurseType := -1
+ else AWorkingThread.ChmodRecurseType := FChmod.RecursiveOptionMenu.ItemIndex;
+ AWorkingThread.ChmodMode := FChmod.LastMode;
+ AWorkingThread.AEngine := Engine;
AWorkingThread.DataList := DataList;
AWorkingThread.JobType := WORKER_JOB_CHMOD;
AWorkingThread.Resume;
@@ -4065,11 +4054,10 @@ begin
try
AWorkingThread.DialogsParentWindow := Self;
if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data;
- AWorkingThread.ParamBool1 := FChown.RecursiveCheckButton.Checked;
- AWorkingThread.ParamCardinal1 := FChown.LastUID;
- AWorkingThread.ParamCardinal2 := FChown.LastGID;
- AWorkingThread.Engine := Engine;
- AWorkingThread.LeftPanel := LeftPanel;
+ AWorkingThread.ChownRecursive := FChown.RecursiveCheckButton.Checked;
+ AWorkingThread.ChownUID := FChown.LastUID;
+ AWorkingThread.ChownGID := FChown.LastGID;
+ AWorkingThread.AEngine := Engine;
AWorkingThread.DataList := DataList;
AWorkingThread.JobType := WORKER_JOB_CHOWN;
AWorkingThread.Resume;
@@ -6427,7 +6415,7 @@ begin
end;
end;
-function TFMain.ExtractFromArchive(var NewPath: string; Engine: TPanelEngine; const FilePath: string; ExtractAll: boolean): boolean;
+function TFMain.ExtractFromArchive(var NewPath: string; Engine: TPanelEngine; const FileToExtract: string; ExtractAll: boolean): boolean;
var s: string;
AWorkingThread: TWorkerThread;
tmp: PChar;
@@ -6457,19 +6445,13 @@ begin
DebugMsg(['TFMain.ExtractFromArchive: Creating thread...']);
LocalEngine.SetPath(tmp);
AWorkingThread.DialogsParentWindow := Self;
- AWorkingThread.ExtractFromVFSMode := True;
AWorkingThread.DestEngine := LocalEngine;
AWorkingThread.SrcEngine := Engine;
AWorkingThread.ExtractFromVFSAll := ExtractAll;
- AWorkingThread.LeftPanel := LeftLastFocused;
AWorkingThread.DataList := DataList;
- AWorkingThread.JobType := WORKER_JOB_COPY;
- AWorkingThread.ParamBool3 := True;
- AWorkingThread.ParamBool4 := False;
- AWorkingThread.ParamBool5 := True;
- AWorkingThread.ParamString1 := string(tmp);
- AWorkingThread.ParamString2 := FilePath;
- AWorkingThread.ParamDataItem1 := nil;
+ AWorkingThread.JobType := WORKER_JOB_EXTRACT_TO_TEMP;
+ AWorkingThread.CopyTargetPath := string(tmp);
+ AWorkingThread.ExtractFile := FileToExtract;
DebugMsg(['*** Copy: AWorkingThread.Resume']);
AWorkingThread.Resume;
DebugMsg(['*** Copy: AWorkingThread.Resumed.']);
@@ -6481,10 +6463,10 @@ begin
AWorkingThread.Free;
end;
- DebugMsg(['(II) ExtractFromArchive: Old path = ', FilePath]);
+ DebugMsg(['(II) ExtractFromArchive: Old path = ', FileToExtract]);
if Result then begin
- if not ExtractAll then NewPath := IncludeTrailingPathDelimiter(string(tmp)) + ExtractFileName(FilePath)
- else NewPath := ExcludeTrailingPathDelimiter(string(tmp)) + FilePath;
+ if not ExtractAll then NewPath := IncludeTrailingPathDelimiter(string(tmp)) + ExtractFileName(FileToExtract)
+ else NewPath := ExcludeTrailingPathDelimiter(string(tmp)) + FileToExtract;
DebugMsg(['(II) ExtractFromArchive: New path = ', NewPath]);
// Test for read access to the new file