Преглед изворни кода

Removing trailing numbers from command names when preserving toolbar buttons setup for forward compatibility, when commands are renamed (typically only to tweak a command hint)

Source commit: eadb403aeee62e6a338188e5e1faa25054e667bf
Martin Prikryl пре 5 година
родитељ
комит
d8984405bc
3 измењених фајлова са 15 додато и 7 уклоњено
  1. 11 3
      source/core/Common.cpp
  2. 1 1
      source/core/Common.h
  3. 3 3
      source/forms/CustomScpExplorer.cpp

+ 11 - 3
source/core/Common.cpp

@@ -269,12 +269,20 @@ UnicodeString CopyToChar(const UnicodeString & Str, wchar_t Ch, bool Trim)
   return CopyToChars(Str, From, UnicodeString(Ch), Trim);
   return CopyToChars(Str, From, UnicodeString(Ch), Trim);
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
-UnicodeString RemoveSuffix(const UnicodeString & Str, const UnicodeString & Suffix)
+UnicodeString RemoveSuffix(const UnicodeString & Str, const UnicodeString & Suffix, bool RemoveNumbersAfterSuffix)
 {
 {
   UnicodeString Result = Str;
   UnicodeString Result = Str;
-  if (EndsStr(Suffix, Result))
+  UnicodeString Buf = Str;
+  if (RemoveNumbersAfterSuffix)
   {
   {
-    Result.SetLength(Result.Length() - Suffix.Length());
+    while (!Buf.IsEmpty() && IsDigit(Buf[Buf.Length()]))
+    {
+      Buf.SetLength(Buf.Length() - 1);
+    }
+  }
+  if (EndsStr(Suffix, Buf))
+  {
+    Result.SetLength(Buf.Length() - Suffix.Length());
   }
   }
   return Result;
   return Result;
 }
 }

+ 1 - 1
source/core/Common.h

@@ -54,7 +54,7 @@ UnicodeString CutToChar(UnicodeString &Str, wchar_t Ch, bool Trim);
 UnicodeString CopyToChars(const UnicodeString & Str, int & From, UnicodeString Chs, bool Trim,
 UnicodeString CopyToChars(const UnicodeString & Str, int & From, UnicodeString Chs, bool Trim,
   wchar_t * Delimiter = NULL, bool DoubleDelimiterEscapes = false);
   wchar_t * Delimiter = NULL, bool DoubleDelimiterEscapes = false);
 UnicodeString CopyToChar(const UnicodeString & Str, wchar_t Ch, bool Trim);
 UnicodeString CopyToChar(const UnicodeString & Str, wchar_t Ch, bool Trim);
-UnicodeString RemoveSuffix(const UnicodeString & Str, const UnicodeString & Suffix);
+UnicodeString RemoveSuffix(const UnicodeString & Str, const UnicodeString & Suffix, bool RemoveNumbersAfterSuffix = false);
 UnicodeString DelimitStr(UnicodeString Str, UnicodeString Chars);
 UnicodeString DelimitStr(UnicodeString Str, UnicodeString Chars);
 UnicodeString ShellDelimitStr(UnicodeString Str, wchar_t Quote);
 UnicodeString ShellDelimitStr(UnicodeString Str, wchar_t Quote);
 UnicodeString ExceptionLogString(Exception *E);
 UnicodeString ExceptionLogString(Exception *E);

+ 3 - 3
source/forms/CustomScpExplorer.cpp

@@ -1383,13 +1383,13 @@ UnicodeString __fastcall TCustomScpExplorerForm::GetToolbarItemName(TTBCustomIte
   if (Item->Action != NULL)
   if (Item->Action != NULL)
   {
   {
     Result = Item->Action->Name;
     Result = Item->Action->Name;
-    Result = RemoveSuffix(Result, L"Action");
+    Result = RemoveSuffix(Result, L"Action", true);
   }
   }
   else
   else
   {
   {
     Result = Item->Name;
     Result = Item->Name;
-    Result = RemoveSuffix(Result, L"SubmenuItem");
-    Result = RemoveSuffix(Result, L"Item");
+    Result = RemoveSuffix(Result, L"SubmenuItem", true);
+    Result = RemoveSuffix(Result, L"Item", true);
   }
   }
   return Result;
   return Result;
 }
 }