浏览代码

Factoring out CommaTextToStringList

Source commit: eda1757e64fb790acd85e0399f387b44f420146b
Martin Prikryl 1 年之前
父节点
当前提交
86c89666a7

+ 7 - 0
source/core/Common.cpp

@@ -3412,6 +3412,13 @@ UnicodeString __fastcall StringsToText(TStrings * Strings)
   return Result;
 }
 //---------------------------------------------------------------------------
+TStringList * __fastcall CommaTextToStringList(const UnicodeString & CommaText)
+{
+  std::unique_ptr<TStringList> List(new TStringList());
+  List->CommaText = CommaText;
+  return List.release();
+}
+//---------------------------------------------------------------------------
 TStrings * __fastcall CloneStrings(TStrings * Strings)
 {
   std::unique_ptr<TStringList> List(new TStringList());

+ 1 - 0
source/core/Common.h

@@ -171,6 +171,7 @@ UnicodeString __fastcall FormatSize(__int64 Size);
 UnicodeString __fastcall ExtractFileBaseName(const UnicodeString & Path);
 TStringList * __fastcall TextToStringList(const UnicodeString & Text);
 UnicodeString __fastcall StringsToText(TStrings * Strings);
+TStringList * __fastcall CommaTextToStringList(const UnicodeString & CommaText);
 TStrings * __fastcall CloneStrings(TStrings * Strings);
 UnicodeString __fastcall TrimVersion(UnicodeString Version);
 UnicodeString __fastcall FormatVersion(int MajovVersion, int MinorVersion, int Release);

+ 7 - 3
source/core/Configuration.cpp

@@ -1830,14 +1830,18 @@ TStrings * __fastcall TConfiguration::LoadDirectoryStatisticsCache(
   const UnicodeString & SessionKey, const UnicodeString & Path, const TCopyParamType & CopyParam)
 {
   std::unique_ptr<THierarchicalStorage> Storage(OpenDirectoryStatisticsCache(false));
-  std::unique_ptr<TStringList> Result(new TStringList());
+  TStrings * Result;
   if (Storage.get() != NULL)
   {
     UnicodeString Key = GetDirectoryStatisticsCacheKey(SessionKey, Path, CopyParam);
     UnicodeString Buf = Storage->ReadString(Key, UnicodeString());
-    Result->CommaText = Buf;
+    Result = CommaTextToStringList(Buf);
   }
-  return Result.release();
+  else
+  {
+    Result = new TStringList();
+  }
+  return Result;
 }
 //---------------------------------------------------------------------------
 void __fastcall TConfiguration::SaveDirectoryStatisticsCache(

+ 1 - 2
source/core/Terminal.cpp

@@ -7027,8 +7027,7 @@ TStrings * TTerminal::GetShellChecksumAlgDefs()
       AddToList(ChecksumCommandsDef, Md5ChecksumAlg + L"=md5sums", Delimiter);
     }
 
-    FShellChecksumAlgDefs.reset(new TStringList());
-    FShellChecksumAlgDefs->CommaText = ChecksumCommandsDef;
+    FShellChecksumAlgDefs.reset(CommaTextToStringList(ChecksumCommandsDef));
   }
   return FShellChecksumAlgDefs.get();
 }

+ 1 - 2
source/windows/GUITools.cpp

@@ -651,8 +651,7 @@ TObjectList * StartCreationDirectoryMonitorsOnEachDrive(unsigned int Filter, TFi
 {
   std::unique_ptr<TStrings> Drives(new TStringList());
 
-  std::unique_ptr<TStrings> DDDrives(new TStringList());
-  DDDrives->CommaText = WinConfiguration->DDDrives;
+  std::unique_ptr<TStrings> DDDrives(CommaTextToStringList(WinConfiguration->DDDrives));
   UnicodeString ExcludedDrives;
   for (int Index = 0; Index < DDDrives->Count; Index++)
   {

+ 6 - 13
source/windows/Setup.cpp

@@ -2070,19 +2070,12 @@ bool IsInstalledMsi()
   return (GIsInstalledMsi > 0);
 }
 //---------------------------------------------------------------------------
-static TStringList * __fastcall TextToTipList(const UnicodeString & Text)
-{
-  std::unique_ptr<TStringList> List(new TStringList());
-  List->CommaText = Text;
-  return List.release();
-}
-//---------------------------------------------------------------------------
 UnicodeString __fastcall FirstUnshownTip()
 {
   TUpdatesConfiguration Updates = WinConfiguration->Updates;
-  std::unique_ptr<TStringList> Tips(TextToTipList(Updates.Results.Tips));
+  std::unique_ptr<TStringList> Tips(CommaTextToStringList(Updates.Results.Tips));
   Tips->CaseSensitive = false;
-  std::unique_ptr<TStringList> TipsSeen(TextToTipList(WinConfiguration->TipsSeen));
+  std::unique_ptr<TStringList> TipsSeen(CommaTextToStringList(WinConfiguration->TipsSeen));
   TipsSeen->CaseSensitive = false;
 
   int LastTipSeen = -1;
@@ -2149,7 +2142,7 @@ static UnicodeString __fastcall TipUrl(TTipsData * TipsData)
 //---------------------------------------------------------------------------
 static void __fastcall TipSeen(const UnicodeString & Tip)
 {
-  std::unique_ptr<TStringList> TipsSeen(TextToTipList(WinConfiguration->TipsSeen));
+  std::unique_ptr<TStringList> TipsSeen(CommaTextToStringList(WinConfiguration->TipsSeen));
   TipsSeen->Values[Tip] = FormatDateTime(L"yyyy-mm-dd", Now());
   WinConfiguration->TipsSeen = TipsSeen->CommaText;
   WinConfiguration->TipsShown = Now();
@@ -2173,7 +2166,7 @@ static void __fastcall ShowTip(bool AutoShow)
 {
   TUpdatesConfiguration Updates = WinConfiguration->Updates;
   UnicodeString Tip = FirstUnshownTip();
-  std::unique_ptr<TStringList> Tips(TextToTipList(Updates.Results.Tips));
+  std::unique_ptr<TStringList> Tips(CommaTextToStringList(Updates.Results.Tips));
   Tips->CaseSensitive = false;
   int Index;
   if (Tip.IsEmpty())
@@ -2264,9 +2257,9 @@ void __fastcall ShowTips()
 void __fastcall TipsUpdateStaticUsage()
 {
   TUpdatesConfiguration Updates = WinConfiguration->Updates;
-  std::unique_ptr<TStringList> Tips(TextToTipList(Updates.Results.Tips));
+  std::unique_ptr<TStringList> Tips(CommaTextToStringList(Updates.Results.Tips));
   Configuration->Usage->Set(L"TipsCount", Tips->Count);
-  std::unique_ptr<TStringList> TipsSeen(TextToTipList(WinConfiguration->TipsSeen));
+  std::unique_ptr<TStringList> TipsSeen(CommaTextToStringList(WinConfiguration->TipsSeen));
   Configuration->Usage->Set(L"TipsSeen", TipsSeen->Count);
 }
 //---------------------------------------------------------------------------

+ 1 - 2
source/windows/UserInterface.cpp

@@ -562,10 +562,9 @@ UnicodeString __fastcall GetToolbarsLayoutStr(TControl * OwnerControl)
 //---------------------------------------------------------------------------
 void __fastcall LoadToolbarsLayoutStr(TControl * OwnerControl, UnicodeString LayoutStr)
 {
-  TStrings * Storage = new TStringList();
+  TStrings * Storage = CommaTextToStringList(LayoutStr);
   try
   {
-    Storage->CommaText = LayoutStr;
     TBCustomLoadPositions(OwnerControl, ToolbarReadInt, ToolbarReadString,
       Storage);
     int PixelsPerInch = GetToolbarLayoutPixelsPerInch(Storage, OwnerControl);

+ 1 - 2
source/windows/WinConfiguration.cpp

@@ -60,8 +60,7 @@ UnicodeString TFileColorData::Save() const
 //---------------------------------------------------------------------------
 void TFileColorData::LoadList(const UnicodeString & S, TList & List)
 {
-  std::unique_ptr<TStringList> Strings(new TStringList());
-  Strings->CommaText = S;
+  std::unique_ptr<TStringList> Strings(CommaTextToStringList(S));
 
   List.clear();
   for (int Index = 0; Index < Strings->Count; Index++)