Ticket #1795: filezilla-3.3.0.1-proxy-password.patch
File filezilla-3.3.0.1-proxy-password.patch, 46.1 KB (added by , 13 years ago) |
---|
-
docs/fzdefaults.xml.example
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/docs/fzdefaults.xml.example ./docs/fzdefaults.xml.example
old new 58 58 If the "Disable update check" setting is set to 1, the capability to 59 59 check for new FileZilla versions will be completely disabled. 60 60 61 Always ask for proxy password 62 63 If the "Always ask for proxy password" setting is set to 1, the user will 64 always be asked for a proxy password. It will never be saved in any file. 65 61 66 --> 62 67 63 68 <FileZilla3> … … 65 70 <Setting name="Config Location">$SOMEDIR/filezilla/</Setting> 66 71 <Setting name="Kiosk mode">0</Setting> 67 72 <Setting name="Disable update check">0</Setting> 73 <Setting name="Always ask for proxy password">0</Setting> 68 74 </Settings> 69 75 <Servers> 70 76 <Server> -
locales/de.po
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/locales/de.po ./locales/de.po
old new 14 14 "Content-Transfer-Encoding: 8bit\n" 15 15 "Plural-Forms: nplurals=2; plural=n != 1;\n" 16 16 17 #: resources.h:130 18 msgid "\"Cancel\" will keep the current password(s)." 19 msgstr "\"Abbrechen\" wird das jeweilige momentane Proxy-Passwort beibehalten." 20 21 17 22 #: ../../locales/../src/interface/statuslinectrl.cpp:56 18 23 #: ../../locales/../src/interface/statuslinectrl.cpp:153 19 24 msgid "%H:%M:%S elapsed" … … 1459 1464 msgid "As tab in the transfer queue pane" 1460 1465 msgstr "Als Tab in der Warteschlangenansicht" 1461 1466 1467 #: resources.h:762 1468 msgid "Ask for \"FTP proxy\" password" 1469 msgstr "Nach dem FTP-Proxy-Passwort fragen" 1470 1471 #: resources.h:780 1472 msgid "Ask for \"Generic proxy\" password" 1473 msgstr "Nach dem allgemeinen Proxy-Passwort fragen" 1474 1462 1475 #: resources.h:253 resources.h:263 resources.h:806 resources.h:815 1463 1476 msgid "Ask for action" 1464 1477 msgstr "Aktion erfragen" … … 6825 6838 msgid "Themes" 6826 6839 msgstr "Designs" 6827 6840 6841 #: resources.h:129 6842 msgid "" 6843 "There was an error during the login process.\n" 6844 "Please retype the password(s) for the next try." 6845 msgstr "" 6846 "Ein Fehler ist während dem Loginvorgang aufgetreten.\n" 6847 "Bitte geben Sie das jeweilige Proxy-Passwort erneut ein." 6848 6849 6828 6850 #: ../../locales/../src/interface/filter.cpp:447 6829 6851 msgid "This filter set cannot be removed." 6830 6852 msgstr "Dieser Filtersatz kann nicht entfernt werden." … … 7472 7494 msgstr "" 7473 7495 "Verwenden Sie ein 'x', um die ursprünglichen Berechtigungen beizubehalten." 7474 7496 7497 #: ../../locales/../src/interface/loginmanager.cpp:248 7498 msgid "" 7499 "You can't change the proxy settings while there are active connections!\n" 7500 "\n" 7501 "Should all connections be closed? (\"No\" discards the new settings!)" 7502 msgstr "Sie können die Proxy-Einstellungen nicht ändern, während Verbindungen aktiv sind!\n" 7503 "\n" 7504 "Sollen alle Verbindungen getrennt werden? (\"Nein\" verwirft die Änderungen!)" 7505 7475 7506 #: ../../locales/../src/interface/import.cpp:29 7476 7507 msgid "You cannot import settings from FileZilla's own settings directory." 7477 7508 msgstr "" -
src/engine/ControlSocket.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/engine/ControlSocket.cpp ./src/engine/ControlSocket.cpp
old new 1117 1117 int res = m_pProxyBackend->Handshake((enum CProxySocket::ProxyType)proxy_type, 1118 1118 m_pCurrentServer->GetHost(), m_pCurrentServer->GetPort(), 1119 1119 m_pEngine->GetOptions()->GetOption(OPTION_PROXY_USER), 1120 m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ PASS));1120 m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ASKED_PASS)); 1121 1121 1122 1122 if (res != EINPROGRESS) 1123 1123 { -
src/engine/ftpcontrolsocket.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/engine/ftpcontrolsocket.cpp ./src/engine/ftpcontrolsocket.cpp
old new 521 521 pData->loginSequence.push_back(cmd); 522 522 cmd.optional = true; 523 523 cmd.hide_arguments = true; 524 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ PASS);524 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ASKED_PASS); 525 525 pData->loginSequence.push_back(cmd); 526 526 } 527 527 // User@host … … 553 553 pData->loginSequence.push_back(cmd); 554 554 cmd.optional = true; 555 555 cmd.hide_arguments = true; 556 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ PASS);556 cmd.command = _T("PASS ") + m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ASKED_PASS); 557 557 pData->loginSequence.push_back(cmd); 558 558 } 559 559 … … 587 587 else if (pData->ftp_proxy_type == 4) 588 588 { 589 589 wxString proxyUser = m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_USER); 590 wxString proxyPass = m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ PASS);590 wxString proxyPass = m_pEngine->GetOptions()->GetOption(OPTION_FTP_PROXY_ASKED_PASS); 591 591 wxString host = server.FormatHost(); 592 592 wxString user = server.GetUser(); 593 593 wxString account = server.GetAccount(); -
src/engine/sftpcontrolsocket.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/engine/sftpcontrolsocket.cpp ./src/engine/sftpcontrolsocket.cpp
old new 561 561 562 562 wxString show = cmd; 563 563 564 wxString pass = m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ PASS);564 wxString pass = m_pEngine->GetOptions()->GetOption(OPTION_PROXY_ASKED_PASS); 565 565 if (pass != _T("")) 566 566 { 567 567 cmd += _T(" \"") + pass + _T("\""); -
src/include/optionsbase.h
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/include/optionsbase.h ./src/include/optionsbase.h
old new 52 52 OPTION_FTP_PROXY_TYPE, 53 53 OPTION_FTP_PROXY_HOST, 54 54 OPTION_FTP_PROXY_USER, 55 OPTION_FTP_PROXY_ASK_PASS, 56 OPTION_FTP_PROXY_ASKED_PASS, 55 57 OPTION_FTP_PROXY_PASS, 56 58 OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE, 57 59 … … 61 63 OPTION_PROXY_HOST, 62 64 OPTION_PROXY_PORT, 63 65 OPTION_PROXY_USER, 66 OPTION_PROXY_ASK_PASS, 67 OPTION_PROXY_ASKED_PASS, 64 68 OPTION_PROXY_PASS, 65 69 66 70 OPTION_LOGGING_FILE, -
src/interface/Mainfrm.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/Mainfrm.cpp ./src/interface/Mainfrm.cpp
old new 3677 3677 if (!pState) 3678 3678 return false; 3679 3679 3680 if(!server.GetBypassProxy()) 3681 CLoginManager::Get().GetProxyPassword(); 3682 3680 3683 if (pState->IsRemoteConnected() || !pState->IsRemoteIdle()) 3681 3684 { 3682 3685 wxDialogEx dlg; -
src/interface/Options.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/Options.cpp ./src/interface/Options.cpp
old new 59 59 { "FTP Proxy type", number, _T("0"), false }, 60 60 { "FTP Proxy host", string, _T(""), false }, 61 61 { "FTP Proxy user", string, _T(""), false }, 62 { "FTP Proxy ask password", number, _T("1"), false }, 63 { "FTP Proxy asked password", string, _T(""), true }, 62 64 { "FTP Proxy password", string, _T(""), false }, 63 65 { "FTP Proxy login sequence", string, _T(""), false }, 64 66 { "SFTP keyfiles", string, _T(""), false }, … … 66 68 { "Proxy host", string, _T(""), false }, 67 69 { "Proxy port", number, _T("0"), false }, 68 70 { "Proxy user", string, _T(""), false }, 71 { "Proxy ask password", number, _T("1"), false }, 72 { "Proxy asked password", string, _T(""), true }, 69 73 { "Proxy password", string, _T(""), false }, 70 74 { "Logging file", string, _T(""), false }, 71 75 { "Logging filesize limit", number, _T("10"), false }, … … 162 166 { 163 167 { _T("Config Location"), string, _T(""), 0 }, 164 168 { _T("Kiosk mode"), number, _T(""), 0 }, 165 { _T("Disable update check"), number, _T(""), 0 } 169 { _T("Disable update check"), number, _T(""), 0 }, 170 { _T("Always ask for proxy password"), number, _T(""), 0 } 166 171 }; 167 172 168 173 BEGIN_EVENT_TABLE(COptions, wxEvtHandler) -
src/interface/Options.h
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/Options.h ./src/interface/Options.h
old new 89 89 DEFAULT_SETTINGSDIR, 90 90 DEFAULT_KIOSKMODE, 91 91 DEFAULT_DISABLEUPDATECHECK, 92 DEFAULT_ASKPROXYPASS, 92 93 93 94 // Has to be last element 94 95 DEFAULTS_NUM -
src/interface/loginmanager.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/loginmanager.cpp ./src/interface/loginmanager.cpp
old new 1 1 #include "FileZilla.h" 2 2 #include "loginmanager.h" 3 3 #include "filezillaapp.h" 4 #include "Options.h" 5 #include "state.h" 6 #include "wx/statline.h" 4 7 5 8 CLoginManager CLoginManager::m_theLoginManager; 6 7 9 bool CLoginManager::GetPassword(CServer &server, bool silent, wxString name /*=_T("")*/, wxString challenge /*=_T("")*/) 8 10 { 9 11 wxASSERT(!silent || server.GetLogonType() == ASK || server.GetLogonType() == INTERACTIVE); … … 124 126 125 127 void CLoginManager::CachedPasswordFailed(const CServer& server) 126 128 { 129 readProxyPass = !ActiveProxyConnections(&server); 130 readFtpProxyPass = readProxyPass; 131 GetProxyPassword(true); 132 127 133 if (server.GetLogonType() != ASK) 128 134 return; 129 135 … … 140 146 return; 141 147 } 142 148 } 149 150 151 bool CLoginManager::ActiveProxyConnections(const CServer *server) 152 { 153 const std::vector<CState*> *allStates = CContextManager::Get()->GetAllStates(); 154 bool active = false; 155 for (std::vector<CState*>::const_iterator iter = allStates->begin(); iter != allStates->end(); iter++) 156 { 157 if((*iter)->GetServer() && !((*iter)->GetServer()->GetBypassProxy())) 158 { 159 if(server == NULL || (*iter)->GetServer() != server) 160 { 161 active = true; 162 break; 163 } 164 } 165 } 166 167 return active; 168 } 169 170 171 void CLoginManager::GetProxyPassword(bool onError) 172 { 173 if(readProxyPass || readFtpProxyPass) 174 { 175 bool askGenericProxyPass = ( readProxyPass && ( COptions::Get()->GetDefaultVal(DEFAULT_ASKPROXYPASS) != 0 || COptions::Get()->GetOptionVal(OPTION_PROXY_ASK_PASS ) != 0 ) && COptions::Get()->GetOptionVal(OPTION_PROXY_TYPE ) != 0); 176 bool askFtpProxyPass = ( readFtpProxyPass && ( COptions::Get()->GetDefaultVal(DEFAULT_ASKPROXYPASS) != 0 || COptions::Get()->GetOptionVal(OPTION_FTP_PROXY_ASK_PASS) != 0 ) && COptions::Get()->GetOptionVal(OPTION_FTP_PROXY_TYPE) != 0); 177 178 if(!askGenericProxyPass ) 179 { 180 COptions::Get()->SetOption(OPTION_PROXY_ASKED_PASS, COptions::Get()->GetOptionVal(OPTION_PROXY_PASS)); 181 } 182 if(!askFtpProxyPass) 183 { 184 COptions::Get()->SetOption(OPTION_FTP_PROXY_ASKED_PASS, COptions::Get()->GetOptionVal(OPTION_FTP_PROXY_PASS)); 185 } 186 187 if(!askGenericProxyPass && !askFtpProxyPass) 188 { 189 // nothing to do for us - leave 190 return; 191 } 192 193 wxDialog pwdDlg; 194 wxXmlResource::Get()->LoadDialog(&pwdDlg, wxGetApp().GetTopWindow(), _T("ID_ENTER_PROXY_PASSWORD")); 195 196 if(!askGenericProxyPass) 197 { 198 XRCCTRL(pwdDlg, "ID_GENERIC_LABEL", wxStaticText)->Hide(); 199 XRCCTRL(pwdDlg, "ID_GENERIC_PASSWORD_LABEL", wxStaticText)->Hide(); 200 XRCCTRL(pwdDlg, "ID_GENERIC_PASSWORD", wxTextCtrl)->Hide(); 201 } 202 203 if(!askFtpProxyPass) 204 { 205 XRCCTRL(pwdDlg, "ID_FTP_LABEL", wxStaticText)->Hide(); 206 XRCCTRL(pwdDlg, "ID_FTP_PASSWORD_LABEL", wxStaticText)->Hide(); 207 XRCCTRL(pwdDlg, "ID_FTP_PASSWORD", wxTextCtrl)->Hide(); 208 } 209 210 if(!onError) 211 { 212 XRCCTRL(pwdDlg, "ID_ERROR_MSG_LABEL", wxStaticText)->Hide(); 213 XRCCTRL(pwdDlg, "ID_ERROR_MSG_LINE", wxStaticLine)->Hide(); 214 } 215 216 XRCCTRL(pwdDlg, "wxID_OK", wxButton)->SetId(wxID_OK); 217 XRCCTRL(pwdDlg, "wxID_CANCEL", wxButton)->SetId(wxID_CANCEL); 218 pwdDlg.GetSizer()->Fit(&pwdDlg); 219 pwdDlg.GetSizer()->SetSizeHints(&pwdDlg); 220 221 if (pwdDlg.ShowModal() == wxID_OK) 222 { 223 if(askGenericProxyPass) 224 { 225 wxString genericPass; 226 genericPass = XRCCTRL(pwdDlg, "ID_GENERIC_PASSWORD", wxTextCtrl)->GetValue(); 227 COptions::Get()->SetOption(OPTION_PROXY_ASKED_PASS, genericPass); 228 } 229 230 if(askFtpProxyPass) 231 { 232 wxString ftpPass; 233 ftpPass = XRCCTRL(pwdDlg, "ID_FTP_PASSWORD", wxTextCtrl)->GetValue(); 234 COptions::Get()->SetOption(OPTION_FTP_PROXY_ASKED_PASS, ftpPass); 235 } 236 } 237 238 readProxyPass = false; 239 readFtpProxyPass = false; 240 241 } 242 } 243 244 bool CLoginManager::ResetProxyPassword(int type) 245 { 246 if(ActiveProxyConnections()) 247 { 248 int answer = wxMessageBox(_("You can't change the proxy settings while there are active connections!\n\nShould all connections be closed? (\"No\" discards the new settings!)"), _("Confirm"), wxYES_NO | wxICON_QUESTION, wxGetApp().GetTopWindow()); 249 if (answer == wxYES) 250 { 251 const std::vector<CState*> *allStates = CContextManager::Get()->GetAllStates(); 252 for (std::vector<CState*>::const_iterator iter = allStates->begin(); iter != allStates->end(); iter++) 253 { 254 if (*iter) 255 (*iter)->Disconnect(); 256 } 257 258 if(type == 0) readProxyPass = true; 259 else if(type == 1) readFtpProxyPass = true; 260 else return false; 261 262 GetProxyPassword(); 263 return true; 264 } 265 } 266 else 267 { 268 if(type == 0) readProxyPass = true; 269 else if(type == 1) readFtpProxyPass = true; 270 else return false; 271 272 return true; 273 } 274 275 return false; 276 } -
src/interface/loginmanager.h
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/loginmanager.h ./src/interface/loginmanager.h
old new 5 5 // behaviour. These are: 6 6 // - Password dialog for servers with ASK or INTERACTIVE logontype 7 7 // - Storage of passwords for ASK servers for duration of current session 8 // - Password dialog for proxies with ASK logontype 8 9 9 10 class CLoginManager 10 11 { … … 12 13 static CLoginManager& Get() { return m_theLoginManager; } 13 14 14 15 bool GetPassword(CServer& server, bool silent, wxString name = _T(""), wxString challenge = _T("")); 15 16 void GetProxyPassword(bool onError = false); 17 bool ResetProxyPassword(int type); 16 18 void CachedPasswordFailed(const CServer& server); 17 19 18 20 protected: 21 CLoginManager() { readProxyPass = true; readFtpProxyPass = true; } 22 bool readProxyPass; 23 bool readFtpProxyPass; 24 bool ActiveProxyConnections(const CServer *server = NULL); 25 19 26 bool DisplayDialog(CServer& server, wxString name, wxString challenge); 20 27 21 28 static CLoginManager m_theLoginManager; -
src/interface/resources/dialogs.xrc
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/resources/dialogs.xrc ./src/interface/resources/dialogs.xrc
old new 1413 1413 </object> 1414 1414 </object> 1415 1415 </object> 1416 <object class="wxDialog" name="ID_ENTER_PROXY_PASSWORD"> 1417 <title>Enter password</title> 1418 <object class="wxBoxSizer"> 1419 <orient>wxVERTICAL</orient> 1420 <object class="sizeritem"> 1421 <object class="wxStaticText" name="ID_ERROR_MSG_LABEL"> 1422 <label>There was an error during the login process.
Please retype the password(s) for the next try.</label> 1423 </object> 1424 <flag>wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag> 1425 <border>5</border> 1426 </object> 1427 <object class="sizeritem"> 1428 <object class="wxStaticLine" name="ID_ERROR_MSG_LINE"> 1429 <size>220,-1</size> 1430 </object> 1431 <flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> 1432 <border>2</border> 1433 </object> 1434 <object class="sizeritem"> 1435 <object class="wxStaticText" name="ID_INFO_CANCEL_LABEL"> 1436 <label>"Cancel" will keep the current password(s).</label> 1437 </object> 1438 <flag>wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag> 1439 <border>5</border> 1440 </object> 1441 <object class="sizeritem"> 1442 <object class="wxStaticText" name="ID_GENERIC_LABEL"> 1443 <label>Generic proxy</label> 1444 </object> 1445 <flag>wxTOP|wxLEFT|wxRIGHT|wxALIGN_LEFT|wxALIGN_TOP</flag> 1446 <border>5</border> 1447 </object> 1448 <object class="sizeritem"> 1449 <object class="wxFlexGridSizer"> 1450 <cols>2</cols> 1451 <vgap>5</vgap> 1452 <hgap>5</hgap> 1453 <object class="sizeritem"> 1454 <object class="wxStaticText" name="ID_GENERIC_PASSWORD_LABEL"> 1455 <label>Password:</label> 1456 </object> 1457 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 1458 </object> 1459 <object class="sizeritem"> 1460 <object class="wxTextCtrl" name="ID_GENERIC_PASSWORD"> 1461 <size>170,-1</size> 1462 <style>wxTE_PASSWORD</style> 1463 </object> 1464 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 1465 </object> 1466 </object> 1467 <flag>wxALL|wxALIGN_LEFT|wxALIGN_TOP</flag> 1468 <border>5</border> 1469 </object> 1470 <object class="sizeritem"> 1471 <object class="wxStaticText" name="ID_FTP_LABEL"> 1472 <label>FTP Proxy</label> 1473 </object> 1474 <flag>wxTOP|wxLEFT|wxRIGHT|wxALIGN_LEFT|wxALIGN_TOP</flag> 1475 <border>5</border> 1476 </object> 1477 <object class="sizeritem"> 1478 <object class="wxFlexGridSizer"> 1479 <cols>2</cols> 1480 <vgap>5</vgap> 1481 <hgap>5</hgap> 1482 <object class="sizeritem"> 1483 <object class="wxStaticText" name="ID_FTP_PASSWORD_LABEL"> 1484 <label>Password:</label> 1485 </object> 1486 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 1487 </object> 1488 <object class="sizeritem"> 1489 <object class="wxTextCtrl" name="ID_FTP_PASSWORD"> 1490 <size>170,-1</size> 1491 <style>wxTE_PASSWORD</style> 1492 </object> 1493 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 1494 </object> 1495 </object> 1496 <flag>wxALL|wxALIGN_LEFT|wxALIGN_TOP</flag> 1497 <border>5</border> 1498 </object> 1499 <object class="sizeritem"> 1500 <object class="wxBoxSizer"> 1501 <object class="sizeritem"> 1502 <object class="wxButton" name="wxID_OK"> 1503 <label>&OK</label> 1504 <default>1</default> 1505 </object> 1506 <flag>wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 1507 <border>5</border> 1508 </object> 1509 <object class="sizeritem"> 1510 <object class="wxButton" name="wxID_CANCEL"> 1511 <label>&Cancel</label> 1512 </object> 1513 <flag>wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 1514 <border>5</border> 1515 </object> 1516 </object> 1517 <flag>wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag> 1518 </object> 1519 </object> 1520 </object> 1416 1521 <object class="wxDialog" name="ID_INPUTDIALOG"> 1417 1522 <object class="wxBoxSizer"> 1418 1523 <orient>wxVERTICAL</orient> -
src/interface/resources/settings.xrc
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/resources/settings.xrc ./src/interface/resources/settings.xrc
old new 444 444 <object class="sizeritem"> 445 445 <object class="wxStaticBoxSizer"> 446 446 <label>FTP Proxy</label> 447 <orient>wxHORIZONTAL</orient>448 447 <object class="sizeritem"> 449 448 <object class="wxFlexGridSizer"> 450 449 <cols>1</cols> 451 450 <vgap>5</vgap> 451 <growablecols>0</growablecols> 452 <growablerows>6</growablerows> 452 453 <object class="sizeritem"> 453 <object class="wxStaticText">454 <object class="wxStaticText" name="ID_STATICTEXT1"> 454 455 <label>Type of FTP Proxy:</label> 455 456 </object> 457 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 456 458 </object> 457 459 <object class="sizeritem"> 458 460 <object class="wxRadioButton" name="ID_PROXYTYPE_NONE"> 459 461 <label>&None</label> 460 462 </object> 463 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 461 464 </object> 462 465 <object class="sizeritem"> 463 466 <object class="wxRadioButton" name="ID_PROXYTYPE_USER"> 464 467 <label>USER@&HOST</label> 465 468 </object> 469 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 466 470 </object> 467 471 <object class="sizeritem"> 468 472 <object class="wxRadioButton" name="ID_PROXYTYPE_SITE"> 469 473 <label>&SITE</label> 470 474 </object> 475 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 471 476 </object> 472 477 <object class="sizeritem"> 473 478 <object class="wxRadioButton" name="ID_PROXYTYPE_OPEN"> 474 479 <label>&OPEN</label> 475 480 </object> 481 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 476 482 </object> 477 483 <object class="sizeritem"> 478 484 <object class="wxRadioButton" name="ID_PROXYTYPE_CUSTOM"> 479 485 <label>Cus&tom</label> 480 486 </object> 487 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 481 488 </object> 482 489 <object class="sizeritem"> 483 490 <object class="wxBoxSizer"> … … 486 493 <object class="wxTextCtrl" name="ID_LOGINSEQUENCE"> 487 494 <style>wxTE_MULTILINE</style> 488 495 </object> 496 <flag>wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 489 497 <option>1</option> 490 <flag>wxGROW</flag>491 498 </object> 492 499 <object class="sizeritem"> 493 <object class="wxStaticText">500 <object class="wxStaticText" name="ID_STATICTEXT2"> 494 501 <label>Format specifications:</label> 495 502 </object> 503 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 496 504 </object> 497 505 <object class="sizeritem"> 498 506 <object class="wxBoxSizer"> 499 <orient>wxHORIZONTAL</orient>500 507 <object class="sizeritem"> 501 <object class="wxStaticText">508 <object class="wxStaticText" name="ID_STATICTEXT3"> 502 509 <label>%h - Host</label> 503 510 </object> 511 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 504 512 </object> 505 513 <object class="spacer"> 514 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 506 515 <size>20,0</size> 507 516 </object> 508 517 <object class="sizeritem"> 509 <object class="wxStaticText">518 <object class="wxStaticText" name="ID_STATICTEXT4"> 510 519 <label>%u - Username</label> 511 520 </object> 521 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 512 522 </object> 513 523 <object class="spacer"> 524 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 514 525 <size>20,0</size> 515 526 </object> 516 527 <object class="sizeritem"> 517 <object class="wxStaticText">528 <object class="wxStaticText" name="ID_STATICTEXT5"> 518 529 <label>%p - Password</label> 519 530 </object> 531 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 520 532 </object> 521 533 </object> 534 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 522 535 </object> 523 536 <object class="sizeritem"> 524 <object class="wxStaticText">537 <object class="wxStaticText" name="ID_STATICTEXT6"> 525 538 <label>%a - Account (Lines containing this will be omitted if not using Account logontype)</label> 526 539 </object> 540 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 527 541 </object> 528 542 <object class="sizeritem"> 529 543 <object class="wxBoxSizer"> 530 <orient>wxHORIZONTAL</orient>531 544 <object class="sizeritem"> 532 <object class="wxStaticText">545 <object class="wxStaticText" name="ID_STATICTEXT7"> 533 546 <label>%s - Proxy user</label> 534 547 </object> 548 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 535 549 </object> 536 550 <object class="spacer"> 551 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 537 552 <size>20,0</size> 538 553 </object> 539 554 <object class="sizeritem"> 540 <object class="wxStaticText">555 <object class="wxStaticText" name="ID_STATICTEXT8"> 541 556 <label>%w - Proxy password</label> 542 557 </object> 558 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 543 559 </object> 544 560 </object> 561 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 545 562 </object> 546 563 </object> 547 <option>1</option> 548 <flag>wxLEFT|wxGROW</flag> 564 <flag>wxLEFT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 549 565 <border>17</border> 566 <option>1</option> 550 567 </object> 551 568 <object class="sizeritem"> 552 <object class="wxFlexGridSizer"> 553 <cols>5</cols> 569 <object class="wxBoxSizer"> 554 570 <object class="sizeritem"> 555 <object class="wxStaticText">571 <object class="wxStaticText" name="ID_STATICTEXT9"> 556 572 <label>P&roxy host:</label> 573 <size>85,-1</size> 557 574 </object> 558 <flag>wxALIGN_CENTRE_VERTICAL</flag>575 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 559 576 </object> 560 577 <object class="sizeritem"> 561 <object class="wxTextCtrl" name="ID_PROXY_HOST"/>562 <flag>wxALIGN_CENTRE_VERTICAL</flag>578 <object class="wxTextCtrl" name="ID_PROXY_HOST" /> 579 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 563 580 </object> 564 581 <object class="spacer"> 582 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 565 583 <size>10,0</size> 566 584 </object> 567 585 <object class="sizeritem"> 568 <object class="wxStaticText">586 <object class="wxStaticText" name="ID_STATICTEXT10"> 569 587 <label>Proxy &user:</label> 588 <size>85,-1</size> 570 589 </object> 571 <flag>wxALIGN_CENTRE_VERTICAL</flag>590 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 572 591 </object> 573 592 <object class="sizeritem"> 574 <object class="wxTextCtrl" name="ID_PROXY_USER"/> 575 <flag>wxALIGN_CENTRE_VERTICAL</flag> 593 <object class="wxTextCtrl" name="ID_PROXY_USER" /> 594 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 595 </object> 596 </object> 597 <flag>wxALL|wxALIGN_LEFT|wxALIGN_TOP</flag> 576 598 </object> 577 599 <object class="sizeritem"> 578 <object class="wxStaticText"> 600 <object class="wxBoxSizer"> 601 <object class="sizeritem"> 602 <object class="wxStaticText" name="ID_STATICTEXT11"> 579 603 <label>Pro&xy password:</label> 604 <size>85,-1</size> 580 605 </object> 581 <flag>wxALIGN_CENTRE_VERTICAL</flag>606 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 582 607 </object> 583 608 <object class="sizeritem"> 584 609 <object class="wxTextCtrl" name="ID_PROXY_PASS"> 585 610 <style>wxTE_PASSWORD</style> 586 611 </object> 587 <flag>wxALIGN_CENTRE_VERTICAL</flag>612 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 588 613 </object> 589 <vgap>5</vgap> 590 <hgap>5</hgap> 614 <object class="spacer"> 615 <flag>wxALIGN_LEFT|wxALIGN_BOTTOM</flag> 616 <size>10,0</size> 617 </object> 618 <object class="sizeritem"> 619 <object class="wxCheckBox" name="ID_PROXY_ASK_PASS"> 620 <label>Ask for "FTP proxy" password</label> 591 621 </object> 622 <flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 623 </object> 624 </object> 625 <flag>wxALL|wxALIGN_LEFT|wxALIGN_TOP</flag> 592 626 </object> 593 <growablecols>0</growablecols>594 627 <object class="sizeritem"> 595 <object class="wxStaticText">628 <object class="wxStaticText" name="ID_STATICTEXT12"> 596 629 <label>Note: This only works with plain, unencrypted FTP connections.</label> 597 630 </object> 631 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 598 632 </object> 599 <growablerows>6</growablerows>600 633 </object> 601 <option>1</option> 602 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wxGROW</flag> 634 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 603 635 <border>5</border> 636 <option>1</option> 604 637 </object> 605 638 </object> 639 <flag>wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 606 640 <option>1</option> 607 <flag>wxGROW</flag>608 641 </object> 609 642 </object> 610 643 </object> … … 686 719 <object class="sizeritem"> 687 720 <object class="wxStaticBoxSizer"> 688 721 <label>Generic proxy</label> 689 <orient>wxHORIZONTAL</orient>690 722 <object class="sizeritem"> 691 723 <object class="wxFlexGridSizer"> 692 724 <cols>1</cols> 693 725 <vgap>5</vgap> 726 <growablecols>0</growablecols> 694 727 <object class="sizeritem"> 695 <object class="wxStaticText">728 <object class="wxStaticText" name="ID_STATICTEXT1"> 696 729 <label>Type of generic proxy:</label> 697 730 </object> 731 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 698 732 </object> 699 733 <object class="sizeritem"> 700 734 <object class="wxRadioButton" name="ID_PROXYTYPE_NONE"> 701 735 <label>&None</label> 702 736 </object> 737 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 703 738 </object> 704 739 <object class="sizeritem"> 705 740 <object class="wxRadioButton" name="ID_PROXYTYPE_HTTP"> 706 741 <label>&HTTP/1.1 using CONNECT method</label> 707 742 </object> 743 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 708 744 </object> 709 745 <object class="sizeritem"> 710 746 <object class="wxRadioButton" name="ID_PROXYTYPE_SOCKS5"> 711 747 <label>&SOCKS 5</label> 712 748 </object> 749 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 713 750 </object> 714 751 <object class="sizeritem"> 715 752 <object class="wxFlexGridSizer"> 716 753 <cols>2</cols> 754 <vgap>5</vgap> 755 <hgap>5</hgap> 756 <growablecols>1</growablecols> 717 757 <object class="sizeritem"> 718 <object class="wxStaticText">758 <object class="wxStaticText" name="ID_STATICTEXT2"> 719 759 <label>P&roxy host:</label> 720 760 </object> 721 <flag>wxALIGN_CENTRE_VERTICAL</flag>761 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 722 762 </object> 723 763 <object class="sizeritem"> 724 <object class="wxTextCtrl" name="ID_PROXY_HOST"/>725 <flag>wxALIGN_CENTRE_VERTICAL|wxGROW</flag>764 <object class="wxTextCtrl" name="ID_PROXY_HOST" /> 765 <flag>wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 726 766 </object> 727 767 <object class="sizeritem"> 728 <object class="wxStaticText">768 <object class="wxStaticText" name="ID_STATICTEXT3"> 729 769 <label>Proxy &port:</label> 730 770 </object> 731 <flag>wxALIGN_CENTRE_VERTICAL</flag>771 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 732 772 </object> 733 773 <object class="sizeritem"> 734 774 <object class="wxTextCtrl" name="ID_PROXY_PORT"> 735 775 <size>50,-1</size> 736 776 </object> 737 <flag>wxALIGN_CENTRE_VERTICAL</flag>777 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 738 778 </object> 739 779 <object class="sizeritem"> 740 <object class="wxStaticText">780 <object class="wxStaticText" name="ID_STATICTEXT4"> 741 781 <label>Proxy &user:</label> 742 782 </object> 743 <flag>wxALIGN_CENTRE_VERTICAL</flag>783 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 744 784 </object> 745 785 <object class="sizeritem"> 746 <object class="wxTextCtrl" name="ID_PROXY_USER"/>747 <flag>wxALIGN_CENTRE_VERTICAL|wxGROW</flag>786 <object class="wxTextCtrl" name="ID_PROXY_USER" /> 787 <flag>wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 748 788 </object> 749 789 <object class="sizeritem"> 750 <object class="wxStaticText">790 <object class="wxStaticText" name="ID_STATICTEXT5"> 751 791 <label>Pro&xy password:</label> 752 792 </object> 753 <flag>wxALIGN_CENTRE_VERTICAL</flag>793 <flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 754 794 </object> 755 795 <object class="sizeritem"> 756 796 <object class="wxTextCtrl" name="ID_PROXY_PASS"> 757 797 <style>wxTE_PASSWORD</style> 758 798 </object> 759 <flag>wxALIGN_CENTRE_VERTICAL|wxGROW</flag>799 <flag>wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag> 760 800 </object> 761 <vgap>5</vgap>762 <hgap>5</hgap>763 <growablecols>1</growablecols>801 <object class="sizeritem"> 802 <object class="wxCheckBox" name="ID_PROXY_ASK_PASS"> 803 <label>Ask for "Generic proxy" password</label> 764 804 </object> 765 <flag>wxGROW</flag> 805 <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> 806 </object> 807 </object> 808 <flag>wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 766 809 </object> 767 <growablecols>0</growablecols>768 810 <object class="sizeritem"> 769 <object class="wxStaticText">811 <object class="wxStaticText" name="ID_STATICTEXT6"> 770 812 <label>Note: Using a generic proxy forces passive mode on FTP connections.</label> 771 813 </object> 814 <flag>wxALIGN_LEFT|wxALIGN_TOP</flag> 772 815 </object> 773 816 </object> 774 <option>1</option> 775 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wxGROW</flag> 817 <flag>wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 776 818 <border>5</border> 819 <option>1</option> 777 820 </object> 778 821 </object> 822 <flag>wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> 779 823 <option>1</option> 780 <flag>wxGROW</flag>781 824 </object> 782 825 </object> 783 826 </object> -
src/interface/settings/optionspage_ftpproxy.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/settings/optionspage_ftpproxy.cpp ./src/interface/settings/optionspage_ftpproxy.cpp
old new 4 4 #include "settingsdialog.h" 5 5 #include "optionspage.h" 6 6 #include "optionspage_ftpproxy.h" 7 #include "../loginmanager.h" 7 8 8 9 BEGIN_EVENT_TABLE(COptionsPageFtpProxy, COptionsPageFtpProxy::COptionsPage) 9 10 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_NONE"), COptionsPageFtpProxy::OnProxyTypeChanged) … … 11 12 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_SITE"), COptionsPageFtpProxy::OnProxyTypeChanged) 12 13 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_OPEN"), COptionsPageFtpProxy::OnProxyTypeChanged) 13 14 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_CUSTOM"), COptionsPageFtpProxy::OnProxyTypeChanged) 15 EVT_CHECKBOX(XRCID("ID_PROXY_ASK_PASS"), COptionsPageFtpProxy::OnProxyAskPassChanged) 14 16 EVT_TEXT(XRCID("ID_LOGINSEQUENCE"), COptionsPageFtpProxy::OnLoginSequenceChanged) 15 17 END_EVENT_TABLE() 16 18 17 19 bool COptionsPageFtpProxy::LoadPage() 18 20 { 19 21 bool failure = false; 22 bool askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || m_pOptions->GetOptionVal(OPTION_FTP_PROXY_ASK_PASS) != 0); 20 23 21 24 SetTextFromOption(XRCID("ID_PROXY_HOST"), OPTION_FTP_PROXY_HOST, failure); 22 25 SetTextFromOption(XRCID("ID_PROXY_USER"), OPTION_FTP_PROXY_USER, failure); 26 SetCheck(XRCID("ID_PROXY_ASK_PASS"), askPass, failure); 27 if(!askPass) 28 { 23 29 SetTextFromOption(XRCID("ID_PROXY_PASS"), OPTION_FTP_PROXY_PASS, failure); 30 } 24 31 25 32 int type = m_pOptions->GetOptionVal(OPTION_FTP_PROXY_TYPE); 26 33 switch (type) … … 44 51 break; 45 52 } 46 53 47 if (!failure) 54 if (!failure) 55 { 48 56 SetCtrlState(); 57 SetAskPass(); 58 } 49 59 50 60 return !failure; 51 61 } 52 62 53 63 bool COptionsPageFtpProxy::SavePage() 54 64 { 55 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_FTP_PROXY_HOST); 56 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_FTP_PROXY_USER); 57 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_FTP_PROXY_PASS); 65 int askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? 1 : 0); 58 66 59 67 int type = 0; 60 68 if (GetRCheck(XRCID("ID_PROXYTYPE_USER"))) … … 64 72 else if (GetRCheck(XRCID("ID_PROXYTYPE_OPEN"))) 65 73 type = 3; 66 74 else if (GetRCheck(XRCID("ID_PROXYTYPE_CUSTOM"))) 67 {68 SetOptionFromText(XRCID("ID_LOGINSEQUENCE"), OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE);69 75 type = 4; 76 77 if(type != 0 && ( 78 GetText(XRCID("ID_PROXY_HOST")) != m_pOptions->GetOption(OPTION_FTP_PROXY_HOST) || 79 GetText(XRCID("ID_PROXY_USER")) != m_pOptions->GetOption(OPTION_FTP_PROXY_USER) || 80 ( type == 4 && GetText(XRCID("ID_LOGINSEQUENCE")) != m_pOptions->GetOption(OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE) ) || 81 askPass != m_pOptions->GetOptionVal(OPTION_FTP_PROXY_ASK_PASS) || 82 ( askPass == 0 && GetText(XRCID("ID_PROXY_PASS")) != m_pOptions->GetOption(OPTION_FTP_PROXY_PASS))) 83 ) 84 { 85 if(!CLoginManager::Get().ResetProxyPassword(1)) 86 return true; 87 88 } 89 90 91 92 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_FTP_PROXY_HOST); 93 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_FTP_PROXY_USER); 94 m_pOptions->SetOption(OPTION_FTP_PROXY_ASK_PASS, askPass); 95 if(!askPass) 96 { 97 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_FTP_PROXY_PASS); 98 } 99 else 100 { 101 m_pOptions->SetOption(OPTION_FTP_PROXY_PASS, _T("")); 70 102 } 103 104 105 if(type == 4) 106 SetOptionFromText(XRCID("ID_LOGINSEQUENCE"), OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE); 107 108 71 109 m_pOptions->SetOption(OPTION_FTP_PROXY_TYPE, type); 72 110 73 111 return true; … … 110 148 XRCCTRL(*this, "ID_PROXY_HOST", wxTextCtrl)->Enable(false); 111 149 XRCCTRL(*this, "ID_PROXY_USER", wxTextCtrl)->Enable(false); 112 150 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(false); 151 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(false); 113 152 return; 114 153 } 115 154 … … 121 160 122 161 XRCCTRL(*this, "ID_PROXY_HOST", wxTextCtrl)->Enable(true); 123 162 XRCCTRL(*this, "ID_PROXY_USER", wxTextCtrl)->Enable(true); 124 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(true); 163 //XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(true); 164 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(true); 165 SetAskPass(); 125 166 126 167 if (XRCCTRL(*this, "ID_PROXYTYPE_CUSTOM", wxRadioButton)->GetValue()) 127 168 return; … … 143 184 144 185 pTextCtrl->ChangeValue(loginSequence); 145 186 } 187 void COptionsPageFtpProxy::SetAskPass() 188 { 189 bool defaultAskPass = m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS); 190 bool askPass = (defaultAskPass || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? true : false); 191 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(!askPass); 192 if(defaultAskPass) 193 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(false); 194 } 146 195 147 196 void COptionsPageFtpProxy::OnProxyTypeChanged(wxCommandEvent& event) 148 197 { 149 198 SetCtrlState(); 150 199 } 151 200 201 void COptionsPageFtpProxy::OnProxyAskPassChanged(wxCommandEvent& event) 202 { 203 SetAskPass(); 204 } 205 152 206 void COptionsPageFtpProxy::OnLoginSequenceChanged(wxCommandEvent& event) 153 207 { 154 208 XRCCTRL(*this, "ID_PROXYTYPE_CUSTOM", wxRadioButton)->SetValue(true); -
src/interface/settings/optionspage_ftpproxy.h
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/settings/optionspage_ftpproxy.h ./src/interface/settings/optionspage_ftpproxy.h
old new 12 12 protected: 13 13 14 14 void SetCtrlState(); 15 void SetAskPass(); 15 16 16 17 DECLARE_EVENT_TABLE(); 17 18 void OnProxyTypeChanged(wxCommandEvent& event); 19 void OnProxyAskPassChanged(wxCommandEvent& event); 18 20 void OnLoginSequenceChanged(wxCommandEvent& event); 19 21 }; 20 22 -
src/interface/settings/optionspage_proxy.cpp
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/settings/optionspage_proxy.cpp ./src/interface/settings/optionspage_proxy.cpp
old new 4 4 #include "settingsdialog.h" 5 5 #include "optionspage.h" 6 6 #include "optionspage_proxy.h" 7 #include "../loginmanager.h" 7 8 8 9 BEGIN_EVENT_TABLE(COptionsPageProxy, COptionsPageProxy::COptionsPage) 9 10 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_NONE"), COptionsPageProxy::OnProxyTypeChanged) 10 11 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_HTTP"), COptionsPageProxy::OnProxyTypeChanged) 11 12 EVT_RADIOBUTTON(XRCID("ID_PROXYTYPE_SOCKS5"), COptionsPageProxy::OnProxyTypeChanged) 13 EVT_CHECKBOX(XRCID("ID_PROXY_ASK_PASS"), COptionsPageProxy::OnProxyAskPassChanged) 12 14 END_EVENT_TABLE() 13 15 14 16 bool COptionsPageProxy::LoadPage() 15 17 { 16 18 bool failure = false; 19 bool askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || m_pOptions->GetOptionVal(OPTION_PROXY_ASK_PASS) != 0); 17 20 18 21 SetTextFromOption(XRCID("ID_PROXY_HOST"), OPTION_PROXY_HOST, failure); 19 22 SetTextFromOption(XRCID("ID_PROXY_PORT"), OPTION_PROXY_PORT, failure); 20 23 SetTextFromOption(XRCID("ID_PROXY_USER"), OPTION_PROXY_USER, failure); 24 SetCheck(XRCID("ID_PROXY_ASK_PASS"), askPass, failure); 25 if(!askPass) 26 { 21 27 SetTextFromOption(XRCID("ID_PROXY_PASS"), OPTION_PROXY_PASS, failure); 28 } 22 29 23 30 int type = m_pOptions->GetOptionVal(OPTION_PROXY_TYPE); 24 31 switch (type) … … 35 42 break; 36 43 } 37 44 38 if (!failure) 45 if (!failure) 46 { 39 47 SetCtrlState(); 48 SetAskPass(); 49 } 40 50 41 51 return !failure; 42 52 } 43 53 44 54 bool COptionsPageProxy::SavePage() 45 55 { 46 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_PROXY_HOST); 47 SetOptionFromText(XRCID("ID_PROXY_PORT"), OPTION_PROXY_PORT); 48 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_PROXY_USER); 49 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_PROXY_PASS); 56 int askPass = (m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS) || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? 1 : 0); 57 50 58 51 59 int type; 52 60 if (GetRCheck(XRCID("ID_PROXYTYPE_HTTP"))) … … 55 63 type = 2; 56 64 else 57 65 type = 0; 66 67 if(type != 0 && ( 68 GetText(XRCID("ID_PROXY_HOST")) != m_pOptions->GetOption(OPTION_PROXY_HOST) || 69 GetText(XRCID("ID_PROXY_PORT")) != m_pOptions->GetOption(OPTION_PROXY_PORT) || 70 GetText(XRCID("ID_PROXY_USER")) != m_pOptions->GetOption(OPTION_PROXY_USER) || 71 askPass != m_pOptions->GetOption(OPTION_PROXY_ASK_PASS) || 72 ( askPass == 0 && GetText(XRCID("ID_PROXY_PASS")) != m_pOptions->GetOption(OPTION_PROXY_PASS))) 73 ) 74 { 75 if(!CLoginManager::Get().ResetProxyPassword(0)) 76 return true; 77 } 78 79 SetOptionFromText(XRCID("ID_PROXY_HOST"), OPTION_PROXY_HOST); 80 SetOptionFromText(XRCID("ID_PROXY_PORT"), OPTION_PROXY_PORT); 81 SetOptionFromText(XRCID("ID_PROXY_USER"), OPTION_PROXY_USER); 82 m_pOptions->SetOption(OPTION_PROXY_ASK_PASS, askPass); 83 if(!askPass) 84 { 85 SetOptionFromText(XRCID("ID_PROXY_PASS"), OPTION_PROXY_PASS); 86 } 87 else 88 { 89 m_pOptions->SetOption(OPTION_PROXY_PASS, _T("")); 90 } 91 92 58 93 m_pOptions->SetOption(OPTION_PROXY_TYPE, type); 59 94 60 95 return true; … … 84 119 XRCCTRL(*this, "ID_PROXY_HOST", wxTextCtrl)->Enable(enabled); 85 120 XRCCTRL(*this, "ID_PROXY_PORT", wxTextCtrl)->Enable(enabled); 86 121 XRCCTRL(*this, "ID_PROXY_USER", wxTextCtrl)->Enable(enabled); 122 //XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(enabled); 123 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(enabled); 124 125 if(enabled) 126 { 127 SetAskPass(); 128 } 129 else 130 { 87 131 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(enabled); 132 } 133 88 134 } 135 void COptionsPageProxy::SetAskPass() 136 { 137 bool defaultAskPass = m_pOptions->GetDefaultVal(DEFAULT_ASKPROXYPASS); 138 bool askPass = (defaultAskPass || GetCheck(XRCID("ID_PROXY_ASK_PASS")) ? true : false); 139 XRCCTRL(*this, "ID_PROXY_PASS", wxTextCtrl)->Enable(!askPass); 140 if(defaultAskPass) 141 XRCCTRL(*this, "ID_PROXY_ASK_PASS", wxCheckBox)->Enable(false); 142 } 143 89 144 90 145 void COptionsPageProxy::OnProxyTypeChanged(wxCommandEvent& event) 91 146 { 92 147 SetCtrlState(); 93 148 } 149 150 void COptionsPageProxy::OnProxyAskPassChanged(wxCommandEvent& event) 151 { 152 SetAskPass(); 153 } -
src/interface/settings/optionspage_proxy.h
diff -ub --recursive --new-file ../filezilla-3.3.0.1-org/src/interface/settings/optionspage_proxy.h ./src/interface/settings/optionspage_proxy.h
old new 12 12 protected: 13 13 14 14 void SetCtrlState(); 15 void SetAskPass(); 15 16 16 17 DECLARE_EVENT_TABLE(); 17 18 void OnProxyTypeChanged(wxCommandEvent& event); 19 void OnProxyAskPassChanged(wxCommandEvent& event); 18 20 }; 19 21 20 22 #endif //__OPTIONSPAGE_PROXY_H__