瀏覽代碼

Bug 2001: TLS settings in default site settings is not restored when opening Login dialog in some cases

https://winscp.net/tracker/2001
(cherry picked from commit 1d04461e3895b49a7c93628a54f47b3ef4020e7a)

Source commit: 45f9d4be354f7233c233645ab0c947197dab0fda
Martin Prikryl 4 年之前
父節點
當前提交
6e6a360636
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      source/forms/Login.cpp

+ 8 - 0
source/forms/Login.cpp

@@ -122,10 +122,18 @@ void __fastcall TLoginDialog::InitControls()
 
   int FtpsNoneIndex = FtpsToIndex(ftpsNone);
   int FtpsImplicitIndex = FtpsToIndex(ftpsImplicit);
+  // Items item setter is implemented as deleting and re-adding the item. If we do it for the last item
+  // (explicit for FTP, implicit for WebDAV), the ItemIndex is effectivelly reset to -1.
+  // This happens when TLS is set in the default session settings.
+  // Also as TransferProtocolComboChange is not triggered it results in currupted state in respect to protocol/tls to port number sync.
+  int Index = FtpsCombo->ItemIndex;
   FtpsCombo->Items->Strings[FtpsImplicitIndex] = LoadStr(FTPS_IMPLICIT);
   FtpsCombo->Items->Strings[FtpsToIndex(ftpsExplicitTls)] = LoadStr(FTPS_EXPLICIT);
+  FtpsCombo->ItemIndex = Index;
+  Index = WebDavsCombo->ItemIndex;
   WebDavsCombo->Items->Strings[FtpsNoneIndex] = FtpsCombo->Items->Strings[FtpsNoneIndex];
   WebDavsCombo->Items->Strings[FtpsImplicitIndex] = FtpsCombo->Items->Strings[FtpsImplicitIndex];
+  WebDavsCombo->ItemIndex = Index;
 
   BasicSshPanel->Top = BasicFtpPanel->Top;