瀏覽代碼

Bug 1689: Configurable file name column width in script progress

https://winscp.net/tracker/1689

Source commit: a0fa156838301ba4feb5205d02d1d3db17a2fbfa
Martin Prikryl 7 年之前
父節點
當前提交
0d1b5aa245
共有 3 個文件被更改,包括 7 次插入4 次删除
  1. 2 0
      source/core/Configuration.cpp
  2. 2 0
      source/core/Configuration.h
  3. 3 4
      source/core/Script.cpp

+ 2 - 0
source/core/Configuration.cpp

@@ -107,6 +107,7 @@ void __fastcall TConfiguration::Default()
   FParallelDurationThreshold = 10;
   FMimeTypes = UnicodeString();
   FDontReloadMoreThanSessions = 1000;
+  FScriptProgressFileNameLimit = 25;
   CollectUsage = FDefaultCollectUsage;
 
   FLogging = false;
@@ -229,6 +230,7 @@ UnicodeString __fastcall TConfiguration::PropertyToKey(const UnicodeString & Pro
     KEY(Integer,  ParallelDurationThreshold); \
     KEY(String,   MimeTypes); \
     KEY(Integer,  DontReloadMoreThanSessions); \
+    KEY(Integer,  ScriptProgressFileNameLimit); \
     KEY(Bool,     CollectUsage); \
   ); \
   BLOCK(L"Logging", CANCREATE, \

+ 2 - 0
source/core/Configuration.h

@@ -75,6 +75,7 @@ private:
   bool FScripting;
   UnicodeString FMimeTypes;
   int FDontReloadMoreThanSessions;
+  int FScriptProgressFileNameLimit;
 
   bool FDisablePasswordStoring;
   bool FForceBanners;
@@ -303,6 +304,7 @@ public:
   __property int ParallelDurationThreshold = { read = FParallelDurationThreshold, write = SetParallelDurationThreshold };
   __property UnicodeString MimeTypes = { read = FMimeTypes, write = SetMimeTypes };
   __property int DontReloadMoreThanSessions = { read = FDontReloadMoreThanSessions, write = FDontReloadMoreThanSessions };
+  __property int ScriptProgressFileNameLimit = { read = FScriptProgressFileNameLimit, write = FScriptProgressFileNameLimit };
 
   __property UnicodeString TimeFormat = { read = GetTimeFormat };
   __property TStorage Storage  = { read=GetStorage };

+ 3 - 4
source/core/Script.cpp

@@ -2300,12 +2300,11 @@ void __fastcall TManagementScript::TerminalOperationProgress(
 
       if (DoPrint)
       {
-        static int WidthFileName = 25;
         UnicodeString FileName;
         if (FLimitedOutput)
         {
-          FileName = MinimizeName(ProgressFileName, WidthFileName,
-            ProgressData.Side == osRemote);
+          bool Unix = (ProgressData.Side == osRemote);
+          FileName = MinimizeName(ProgressFileName, Configuration->ScriptProgressFileNameLimit, Unix);
         }
         else
         {
@@ -2322,7 +2321,7 @@ void __fastcall TManagementScript::TerminalOperationProgress(
         }
 
         UnicodeString ProgressMessage = FORMAT(L"%-*s | %14s | %6.1f KB/s | %-6.6s | %3d%%",
-          (WidthFileName, FileName,
+          (Configuration->ScriptProgressFileNameLimit, FileName,
            TransferredSizeStr,
            static_cast<float>(ProgressData.CPS()) / 1024,
            ProgressData.AsciiTransfer ? L"ascii" : L"binary",