浏览代码

Logging totals of finished transfer

Source commit: d0f18aae99d624269a36dd7e988101ab6b0b8f2d
Martin Prikryl 8 年之前
父节点
当前提交
4366234480
共有 4 个文件被更改,包括 21 次插入6 次删除
  1. 10 5
      source/core/FileOperationProgress.cpp
  2. 1 1
      source/core/FileOperationProgress.h
  3. 9 0
      source/core/Terminal.cpp
  4. 1 0
      source/core/Terminal.h

+ 10 - 5
source/core/FileOperationProgress.cpp

@@ -852,18 +852,23 @@ void __fastcall TFileOperationProgressType::UnlockUserSelections()
   }
 }
 //---------------------------------------------------------------------------
-UnicodeString __fastcall TFileOperationProgressType::GetLogStr()
+UnicodeString __fastcall TFileOperationProgressType::GetLogStr(bool Done)
 {
   UnicodeString Transferred = FormatSize(TotalTransferred);
   UnicodeString Left;
-  if (TotalSizeSet)
+  TDateTime Time;
+  UnicodeString TimeLabel;
+  if (!Done && TotalSizeSet)
   {
-    Left = FormatDateTimeSpan(Configuration->TimeFormat, TotalTimeLeft());
+    Time = TotalTimeLeft();
+    TimeLabel = L"Left";
   }
   else
   {
-    Left = L"n/a";
+    Time = TimeElapsed();
+    TimeLabel = L"Elapsed";
   }
+  UnicodeString TimeStr = FormatDateTimeSpan(Configuration->TimeFormat, Time);
   UnicodeString CPSStr = FormatSize(CPS());
-  return FORMAT(L"Transfer progress: Transferred: %s, Left: %s, CPS: %s/s", (Transferred, Left, CPSStr));
+  return FORMAT(L"Transferred: %s, %s: %s, CPS: %s/s", (Transferred, TimeLabel, TimeStr, CPSStr));
 }

+ 1 - 1
source/core/FileOperationProgress.h

@@ -185,7 +185,7 @@ public:
   void __fastcall SetCPSLimit(unsigned long ACPSLimit);
   void __fastcall SetBatchOverwrite(TBatchOverwrite ABatchOverwrite);
   void __fastcall SetSkipToAll();
-  UnicodeString __fastcall GetLogStr();
+  UnicodeString __fastcall GetLogStr(bool Done);
 };
 //---------------------------------------------------------------------------
 class TSuspendFileOperationProgress

+ 9 - 0
source/core/Terminal.cpp

@@ -6385,6 +6385,11 @@ void __fastcall TTerminal::LogTotalTransferDetails(
   }
 }
 //---------------------------------------------------------------------------
+void __fastcall TTerminal::LogTotalTransferDone(TFileOperationProgressType * OperationProgress)
+{
+  LogEvent(L"Copying finished: " + OperationProgress->GetLogStr(true));
+}
+//---------------------------------------------------------------------------
 bool __fastcall TTerminal::CopyToRemote(TStrings * FilesToCopy,
   const UnicodeString TargetDir, const TCopyParamType * CopyParam, int Params, TParallelOperation * ParallelOperation)
 {
@@ -6452,6 +6457,8 @@ bool __fastcall TTerminal::CopyToRemote(TStrings * FilesToCopy,
           FFileSystem->CopyToRemote(FilesToCopy, UnlockedTargetDir,
             CopyParam, Params, &OperationProgress, OnceDoneOperation);
         }
+
+        LogTotalTransferDone(&OperationProgress);
       }
       __finally
       {
@@ -6577,6 +6584,8 @@ bool __fastcall TTerminal::CopyToLocal(TStrings * FilesToCopy,
             FFileSystem->CopyToLocal(FilesToCopy, TargetDir, CopyParam, Params,
               &OperationProgress, OnceDoneOperation);
           }
+
+          LogTotalTransferDone(&OperationProgress);
         }
         __finally
         {

+ 1 - 0
source/core/Terminal.h

@@ -389,6 +389,7 @@ protected:
   void __fastcall LogTotalTransferDetails(
     const UnicodeString TargetDir, const TCopyParamType * CopyParam,
     TFileOperationProgressType * OperationProgress, bool Parallel, TStrings * Files);
+  void __fastcall LogTotalTransferDone(TFileOperationProgressType * OperationProgress);
   virtual TTerminal * __fastcall GetPasswordSource();
   void __fastcall DoEndTransaction(bool Inform);
   bool  __fastcall VerifyCertificate(