diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-12-16 00:11:43 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-12-16 00:11:43 +0100 |
| commit | 52d72cf25a6bcff19e4a488102e3b7137bde0000 (patch) | |
| tree | 8fc2e05ddc92429ceca461b8a36b0ef16d8721b5 /UMain.pas | |
| parent | 8f034ebc019b1c9f6133814c439cf38f91f2bb13 (diff) | |
| download | tuxcmd-52d72cf25a6bcff19e4a488102e3b7137bde0000.tar.xz | |
Worker thread arguments cleanupv0.6.75
Diffstat (limited to 'UMain.pas')
| -rw-r--r-- | UMain.pas | 94 |
1 files changed, 38 insertions, 56 deletions
@@ -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 |
