浏览代码

Bug 1838: Showing session name in Synchronization checklist and Keep remote directory up to date windows, when the operation was executed in a new window/from a command line

https://winscp.net/tracker/1838

Source commit: da39c9459f8eef6e4a5544c15353bfeff5384643
Martin Prikryl 5 年之前
父节点
当前提交
173dc56999

+ 4 - 1
source/forms/Synchronize.cpp

@@ -16,6 +16,7 @@
 #include <TextsWin.h>
 #include <TextsWin.h>
 #include <HelpWin.h>
 #include <HelpWin.h>
 #include <WinConfiguration.h>
 #include <WinConfiguration.h>
+#include <TerminalManager.h>
 #include <StrUtils.hpp>
 #include <StrUtils.hpp>
 #include <Tools.h>
 #include <Tools.h>
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
@@ -160,7 +161,9 @@ void __fastcall TSynchronizeDialog::UpdateControls()
     // some of the above steps hides accelerators when start button is pressed with mouse
     // some of the above steps hides accelerators when start button is pressed with mouse
     ResetSystemSettings(this);
     ResetSystemSettings(this);
   }
   }
-  Caption = FormatFormCaption(this, LoadStr(FSynchronizing ? SYNCHRONIZE_SYCHRONIZING : SYNCHRONIZE_TITLE));
+  TTerminalManager * Manager = TTerminalManager::Instance();
+  UnicodeString Title = LoadStr(FSynchronizing ? SYNCHRONIZE_SYCHRONIZING : SYNCHRONIZE_TITLE);
+  Caption = Manager->FormatFormCaptionWithSession(this, Title);
   EnableControl(TransferSettingsButton, !FSynchronizing);
   EnableControl(TransferSettingsButton, !FSynchronizing);
   CancelButton->Visible = !FSynchronizing || FLAGSET(FOptions, soNoMinimize);
   CancelButton->Visible = !FSynchronizing || FLAGSET(FOptions, soNoMinimize);
   EnableControl(CancelButton, !FSynchronizing);
   EnableControl(CancelButton, !FSynchronizing);

+ 1 - 1
source/forms/SynchronizeChecklist.cpp

@@ -134,7 +134,7 @@ void __fastcall TSynchronizeChecklistDialog::UpdateCaption()
   {
   {
     AddToList(Title, StatusTitle, L" - ");
     AddToList(Title, StatusTitle, L" - ");
   }
   }
-  Caption = FormatFormCaption(this, Title);
+  Caption = Manager->FormatFormCaptionWithSession(this, Title);
 }
 }
 //---------------------------------------------------------------------
 //---------------------------------------------------------------------
 void __fastcall TSynchronizeChecklistDialog::UpdateControls()
 void __fastcall TSynchronizeChecklistDialog::UpdateControls()

+ 5 - 0
source/windows/TerminalManager.cpp

@@ -754,6 +754,11 @@ bool __fastcall TTerminalManager::ShouldDisplayQueueStatusOnAppTitle()
   return Result;
   return Result;
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
+UnicodeString __fastcall TTerminalManager::FormatFormCaptionWithSession(TCustomForm * Form, const UnicodeString & Caption)
+{
+  return FormatFormCaption(Form, Caption, GetActiveTerminalTitle(false));
+}
+//---------------------------------------------------------------------------
 UnicodeString __fastcall TTerminalManager::GetAppProgressTitle()
 UnicodeString __fastcall TTerminalManager::GetAppProgressTitle()
 {
 {
   UnicodeString Result;
   UnicodeString Result;

+ 1 - 0
source/windows/TerminalManager.h

@@ -66,6 +66,7 @@ public:
   UnicodeString __fastcall GetTerminalTitle(TTerminal * Terminal, bool Unique);
   UnicodeString __fastcall GetTerminalTitle(TTerminal * Terminal, bool Unique);
   UnicodeString __fastcall GetActiveTerminalTitle(bool Unique);
   UnicodeString __fastcall GetActiveTerminalTitle(bool Unique);
   UnicodeString __fastcall GetAppProgressTitle();
   UnicodeString __fastcall GetAppProgressTitle();
+  UnicodeString __fastcall FormatFormCaptionWithSession(TCustomForm * Form, const UnicodeString & Caption);
   void __fastcall HandleException(Exception * E);
   void __fastcall HandleException(Exception * E);
   void __fastcall SaveWorkspace(TList * DataList);
   void __fastcall SaveWorkspace(TList * DataList);
   void __fastcall QueueStatusUpdated();
   void __fastcall QueueStatusUpdated();

+ 11 - 5
source/windows/VCLCommon.cpp

@@ -416,16 +416,21 @@ bool __fastcall IsMainFormLike(TCustomForm * Form)
     IsMainFormHidden();
     IsMainFormHidden();
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
-UnicodeString __fastcall FormatMainFormCaption(const UnicodeString & Caption)
+UnicodeString __fastcall FormatMainFormCaption(const UnicodeString & Caption, const UnicodeString & SessionName)
 {
 {
+  UnicodeString Suffix = AppName;
+  if (!SessionName.IsEmpty())
+  {
+    Suffix = SessionName + L" - " + Suffix;
+  }
   UnicodeString Result = Caption;
   UnicodeString Result = Caption;
   if (Result.IsEmpty())
   if (Result.IsEmpty())
   {
   {
-    Result = AppName;
+    Result = Suffix;
   }
   }
   else
   else
   {
   {
-    UnicodeString Suffix = L" - " + AppName;
+    Suffix = L" - " + Suffix;
     if (!EndsStr(Suffix, Result))
     if (!EndsStr(Suffix, Result))
     {
     {
       Result += Suffix;
       Result += Suffix;
@@ -434,12 +439,13 @@ UnicodeString __fastcall FormatMainFormCaption(const UnicodeString & Caption)
   return Result;
   return Result;
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
-UnicodeString __fastcall FormatFormCaption(TCustomForm * Form, const UnicodeString & Caption)
+UnicodeString __fastcall FormatFormCaption(
+  TCustomForm * Form, const UnicodeString & Caption, const UnicodeString & SessionName)
 {
 {
   UnicodeString Result = Caption;
   UnicodeString Result = Caption;
   if (IsMainFormLike(Form))
   if (IsMainFormLike(Form))
   {
   {
-    Result = FormatMainFormCaption(Result);
+    Result = FormatMainFormCaption(Result, SessionName);
   }
   }
   return Result;
   return Result;
 }
 }

+ 4 - 2
source/windows/VCLCommon.h

@@ -72,8 +72,10 @@ void __fastcall DefaultButton(TButton * Button, bool Default);
 void __fastcall MemoKeyDown(TObject * Sender, WORD & Key, TShiftState Shift);
 void __fastcall MemoKeyDown(TObject * Sender, WORD & Key, TShiftState Shift);
 void __fastcall UseDesktopFont(TControl * Control);
 void __fastcall UseDesktopFont(TControl * Control);
 void __fastcall UpdateDesktopFont();
 void __fastcall UpdateDesktopFont();
-UnicodeString __fastcall FormatFormCaption(TCustomForm * Form, const UnicodeString & Caption);
-UnicodeString __fastcall FormatMainFormCaption(const UnicodeString & Caption);
+UnicodeString __fastcall FormatFormCaption(
+  TCustomForm * Form, const UnicodeString & Caption, const UnicodeString & SessionName = UnicodeString());
+UnicodeString __fastcall FormatMainFormCaption(
+  const UnicodeString & Caption, const UnicodeString & SessionName = UnicodeString());
 TShiftState __fastcall AllKeyShiftStates();
 TShiftState __fastcall AllKeyShiftStates();
 void __fastcall RealignControl(TControl * Control);
 void __fastcall RealignControl(TControl * Control);
 void __fastcall HookFormActivation(TCustomForm * Form);
 void __fastcall HookFormActivation(TCustomForm * Form);