diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-11-28 16:00:34 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-11-28 16:00:34 +0100 |
| commit | 6132c2ef3066e813acb1237afeca266f32c53a21 (patch) | |
| tree | b880a4eeb74e07f0e94c9767f9aba0873194d903 /UMain.pas | |
| parent | 9e4a6521a9ea3310437962d6708cf814fafc70d1 (diff) | |
| download | tuxcmd-6132c2ef3066e813acb1237afeca266f32c53a21.tar.xz | |
Engine and VFS API cleanupv0.6.72
* also split threaded operations into UCoreWorkers.pas
* symlinks should be properly resolved now, even in archives
* no more relative/absolute path confusion
* moved FillDirFiles outside engines, made it more universal
Diffstat (limited to 'UMain.pas')
| -rw-r--r-- | UMain.pas | 40 |
1 files changed, 19 insertions, 21 deletions
@@ -259,7 +259,7 @@ var implementation uses ULibc, - UCore, USelect, UNewDir, UDirDelete, UProgress, UCopyMove, + UCore, UCoreWorkers, USelect, UNewDir, UDirDelete, UProgress, UCopyMove, UCoreUtils, ULocale, UChecksum, UChecksumDruid, USplitFile, UFileTypeSettings, UFileAssoc, UChmod, UChown, USymlink, UPreferences, UViewer, UToolTips, UMounterPrefs, UColumns, @@ -1930,7 +1930,7 @@ begin SetTabLabel(ANotebook, ANotebook.PageIndex, StrToUTF8(s), StrToUTF8(Engine.Path)); end; end; // of Chdir, Listing, ... - Engine.ExplicitChDir('/'); + libc_chdir('/'); Application.ProcessMessages; InternalUnLock; FileListTipsEnable; @@ -3267,7 +3267,6 @@ begin try FChecksumDruid := TFChecksumDruid.Create(Self); - Engine.ExplicitChDir(Engine.Path); FChecksumDruid.Engine := Engine; if Engine.Path = '/' then FChecksumDruid.DirName := 'root' else FChecksumDruid.DirName := ExtractFileName(ExcludeTrailingPathDelimiter(Engine.Path)); @@ -3284,7 +3283,6 @@ begin else ChangingDir(AListView = LeftListView, Engine.Path, FChecksumDruid.FileNameEntry.Text, PDataItem(AListView.Selected.Data)^.FName); DoRefresh(AListView <> LeftListView, True, True); FChecksumDruid.Free; - Engine.ExplicitChDir('/'); end; finally Application.ProcessMessages; @@ -3604,12 +3602,12 @@ end; procedure TFMain.EditViewFileInternal(ParentWindow: TGTKControl; Filename: string; Engine: TPanelEngine; View, NewFile: boolean); var s: string; - Stat: PDataItemSL; + Stat: PDataItem; Error, x: integer; // AViewer: TViewerThread; AViewer: TFViewer; begin - Stat := Engine.GetFileInfoSL(Filename); + Stat := Engine.GetFileInfo(Filename, True, True); if Assigned(Stat) and (Stat^.Size > ConfEditViewFileSizeLimit) and (Application.MessageBox(LANGTheFileYouAreTryingToOpenIsQuiteBig, [mbYes, mbNo], mbWarning, mbNone, mbNo) = mbNo) then begin @@ -3680,7 +3678,7 @@ procedure TFMain.RunFile(Path: string; Engine: TPanelEngine; CustomAction: integ var Command, FileTypeDesc: string; i, ac: integer; b, AutodetectGUI, RunInTerminal: boolean; - Stat: PDataItemSL; + Stat: PDataItem; s: string; Assoc: TFileAssoc; begin @@ -3712,7 +3710,7 @@ begin DebugMsg(['Some strange error occured...']); Exit; end; - Stat := Engine.GetFileInfoSL(Path); + Stat := Engine.GetFileInfo(Path, True, True); if Assigned(Stat) and Stat^.IsExecutable then begin b := True; if Engine is TVFSEngine then b := HandleRunFromArchive(Path, Engine, Command, FileTypeDesc, False); // not a local engine, extract to local first @@ -4043,7 +4041,7 @@ var LeftPanel: boolean; i: longint; SelCount: longint; AFile, NextItem1, NextItem2: string; - Stat: PDataItemSL; + Stat: PDataItem; UsrManager: TUserManager; AWorkingThread: TWorkerThread; AFProgress: TFProgress; @@ -4086,7 +4084,7 @@ begin if AFile <> '' then try FChmod := TFChmod.Create(Self); - Stat := Engine.GetFileInfoSL(IncludeTrailingPathDelimiter(Engine.Path) + AFile); + Stat := Engine.GetFileInfo(IncludeTrailingPathDelimiter(Engine.Path) + AFile, True, True); if not Assigned(Stat) then Exit; UsrManager := TUserManager.Create; try @@ -4142,7 +4140,7 @@ var LeftPanel: boolean; i: integer; SelCount: longint; AFile, NextItem1, NextItem2: string; - Stat: PDataItemSL; + Stat: PDataItem; AWorkingThread: TWorkerThread; AFProgress: TFProgress; begin @@ -4184,7 +4182,7 @@ begin if AFile <> '' then try FChown := TFChown.Create(Self); - Stat := Engine.GetFileInfoSL(IncludeTrailingPathDelimiter(Engine.Path) + AFile); + Stat := Engine.GetFileInfo(IncludeTrailingPathDelimiter(Engine.Path) + AFile, True, True); if not Assigned(Stat) then Exit; FChown.AssignMode(Stat^.Mode, AFile, Stat^.UID, Stat^.GID); if FChown.Run = mbOK then begin @@ -4315,7 +4313,7 @@ procedure TFMain.FilePopupMenuPopup(Sender: TObject); end; var Item: TGTKMenuItem; - DataItem: PDataItemSL; + DataItem: PDataItem; Engine: TPanelEngine; AListView: TGTKListView; FileName, ShortFName: string; @@ -4335,7 +4333,7 @@ begin if Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and (not PDataItem(AListView.Selected.Data)^.UpDir) then FileName := FileName + PDataItem(AListView.Selected.Data)^.FName; ShortFName := ExtractFileName(ExcludeTrailingPathDelimiter(FileName)); - DataItem := Engine.GetFileInfoSL(FileName); + DataItem := Engine.GetFileInfo(FileName, True, True); if not Assigned(DataItem) then begin DebugMsg(['Error: File data not assigned. Bug ???! FileName = ', FileName]); Exit; @@ -4479,7 +4477,7 @@ end; procedure TFMain.FilePopupMenuItemClick(Sender: TObject); var Engine: TPanelEngine; - DataItem: PDataItemSL; + DataItem: PDataItem; AListView: TGTKListView; FileName, ShortFName, s: string; Error: integer; @@ -4503,7 +4501,7 @@ begin if Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and (not PDataItem(AListView.Selected.Data)^.UpDir) then FileName := FileName + PDataItem(AListView.Selected.Data)^.FName; ShortFName := ExtractFileName(ExcludeTrailingPathDelimiter(FileName)); - DataItem := Engine.GetFileInfoSL(FileName); + DataItem := Engine.GetFileInfo(FileName, True, True); if not Assigned(DataItem) then begin DebugMsg(['Error: File data not assigned. Bug ???! FileName = ', FileName]); Exit; @@ -6328,7 +6326,7 @@ var LeftPanel: boolean; i: integer; SelCount: longint; AFile, NextItem1, NextItem2: string; - Stat: PDataItemSL; + Stat: PDataItem; { AWorkingThread: TWorkerThread; AFProgress: TFProgress; } begin @@ -6370,7 +6368,7 @@ begin if AFile <> '' then try FProperties := TFProperties.Create(Self); - Stat := Engine.GetFileInfoSL(IncludeTrailingPathDelimiter(Engine.Path) + AFile); + Stat := Engine.GetFileInfo(IncludeTrailingPathDelimiter(Engine.Path) + AFile, True, True); if not Assigned(Stat) then Exit; // FProperties.AssignMode(Stat^.Mode, AFile, Stat^.UID, Stat^.GID); FProperties.DisplayFileName := AFile; @@ -6488,14 +6486,14 @@ end; (********************************************************************************************************************************) function TFMain.HandleRunFromArchive(var APath: string; Engine: TPanelEngine; Command, FileTypeDesc: string; BypassDialog: boolean): boolean; var Res: TMessageButton; - Stat: PDataItemSl; + Stat: PDataItem; s: string; AListView: TGTKListView; begin Result := False; try if not BypassDialog then begin - Stat := Engine.GetFileInfoSL(APath); + Stat := Engine.GetFileInfo(APath, True, True); FRunFromVFS := TFRunFromVFS.Create(Self); FRunFromVFS.FileNameLabel2.Caption := Format('%s<span weight="ultrabold"> </span>', [StrToUTF8(APath)]); if FileTypeDesc = '' then FileTypeDesc := LANGHandleRunFromArchive_FileTypeDesc_Unknown; @@ -6510,7 +6508,7 @@ begin FRunFromVFS.PackedSizeLabel2.Visible := False; FRunFromVFS.PackedSizeLabel.Visible := False; end; - FRunFromVFS.DateLabel2.Caption := Format('%s<span weight="ultrabold"> </span>', [FormatDate(Stat^.ModifyTime, True, True)]); + FRunFromVFS.DateLabel2.Caption := Format('%s<span weight="ultrabold"> </span>', [FormatDate(Stat^.mtime, True, True)]); if (Command = '') and (not Stat^.IsExecutable) then begin FRunFromVFS.OpensWithLabel2.Caption := Format('%s<span weight="ultrabold"> </span>', [LANGHandleRunFromArchive_NotAssociated]); FRunFromVFS.ExecuteButton.Enabled := False; |
