summaryrefslogtreecommitdiff
path: root/UCore.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UCore.pas')
-rw-r--r--UCore.pas18
1 files changed, 11 insertions, 7 deletions
diff --git a/UCore.pas b/UCore.pas
index bf5c012..ed89fd0 100644
--- a/UCore.pas
+++ b/UCore.pas
@@ -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