diff options
| author | Tomas Bzatek <tbzatek@redhat.com> | 2024-10-11 23:38:44 +0200 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@redhat.com> | 2024-10-23 18:13:05 +0200 |
| commit | 7d757b8452daed2575e3a9cc300459d7e8674345 (patch) | |
| tree | 1b4c0107964cc871dc6e2d732c615af710592c4c /UCore.pas | |
| parent | 81c8cd22e61701c1145dc267b0925add6cc0e78a (diff) | |
| download | tuxcmd-0.6.81.tar.xz | |
Full port to GErrorv0.6.81
Started 15 years ago, picking up on that work.
Introduced the new TUXCMD_ERROR domain to distinguish between operations
or their steps. Plugins may continue reporting the G_IO_ERROR domain.
Diffstat (limited to 'UCore.pas')
| -rw-r--r-- | UCore.pas | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -28,7 +28,7 @@ function FillPanel(List: TList; ListView: TGTKListView; Engine: TPanelEngine; Le procedure FindNextSelected(ListView: TGTKListView; DataList: TList; var Item1, Item2: string); procedure UnselectAll(ListView: TGTKListView; DataList: TList); -procedure FillDirFiles(Engine: TPanelEngine; DestList: TList; InputFiles: TStringList; DoNotRecurse, SortForStream: boolean; InaccessiblePaths: TStringList); +procedure FillDirFiles(Engine: TPanelEngine; DestList: TList; InputFiles: TStringList; DoNotRecurse, SortForStream: boolean; InaccessiblePaths: TStringList; CancelFlag: Pboolean); function GetFileInfoSL(Engine: TPanelEngine; const APath: string): PDataItemSL; procedure DebugWriteListSL(List: TList); @@ -348,7 +348,7 @@ end; (********************************************************************************************************************************) (********************************************************************************************************************************) -procedure FillDirFiles(Engine: TPanelEngine; DestList: TList; InputFiles: TStringList; DoNotRecurse, SortForStream: boolean; InaccessiblePaths: TStringList); +procedure FillDirFiles(Engine: TPanelEngine; DestList: TList; InputFiles: TStringList; DoNotRecurse, SortForStream: boolean; InaccessiblePaths: TStringList; CancelFlag: Pboolean); var DirStage1List, FilesList, DirStage2List: TList; function FillDirFiles_compare_func(Item1, Item2: Pointer): integer; @@ -418,6 +418,7 @@ var DirStage1List, FilesList, DirStage2List: TList; ParentDir: string; Error: PGError; begin + if (CancelFlag <> nil) and CancelFlag^ then Exit; LocalList := TList.Create; Error := nil; if Engine.GetListing(LocalList, LocalPath, True, False, True, @Error) then begin @@ -603,11 +604,14 @@ end; (********************************************************************************************************************************) function MakeDirectory(ListView: TGTKListView; Engine: TPanelEngine; LeftPanel: boolean; NewDir: string): boolean; var Error: PGError; + Dir: string; begin Error := nil; - Result := Engine.MakeDir(IncludeTrailingPathDelimiter(Engine.Path) + NewDir, @Error); + Dir := IncludeTrailingPathDelimiter(Engine.Path) + NewDir; + Result := Engine.MakeDir(Dir, @Error); if not Result then begin - ShowError(FMain, Format('Error creating new directory ''%s'' in %s panel', [StrToUTF8(NewDir), LANGPanelStrings[LeftPanel]]), Error); + PrefixTuxcmdError(@Error, StrToUTF8(Dir)); + ShowError(FMain, 'Error creating new directory', Error); g_error_free(Error); end; end; @@ -632,8 +636,8 @@ var AFSymLink: TFSymlink; FDirDelete.Label3.Caption := Format(LANGCouldNotBeCreatedS, [Error^.message]); FDirDelete.Label3.Visible := True; Response := Integer(FDirDelete.Run); - g_error_free(Error); finally + g_error_free(Error); FDirDelete.Free; end; case Response of @@ -684,8 +688,8 @@ var Data: PDataItem; FDirDelete.Label3.Caption := Format(LANGCouldNotBeDeletedS, [Error^.message]); FDirDelete.Label3.Visible := True; Response := Integer(FDirDelete.Run); - g_error_free(Error); finally + g_error_free(Error); FDirDelete.Free; end; case Response of @@ -706,8 +710,8 @@ var Data: PDataItem; FDirDelete.Label3.Caption := Format(LANGCouldNotBeCreatedS, [Error^.message]); FDirDelete.Label3.Visible := True; Response := Integer(FDirDelete.Run); - g_error_free(Error); finally + g_error_free(Error); FDirDelete.Free; end; case Response of |
