diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index 890ef897a..aa4f43703 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -882,7 +882,6 @@ Net::ProxyType OptionsDialog::getProxyType() const switch (m_ui->comboProxyType->currentIndex()) { case 1: return Net::ProxyType::SOCKS4; - break; case 2: if (isProxyAuthEnabled()) return Net::ProxyType::SOCKS5_PW; @@ -1443,28 +1442,27 @@ void OptionsDialog::toggleComboRatioLimitAct() m_ui->comboRatioLimitAct->setEnabled(m_ui->checkMaxRatio->isChecked() || m_ui->checkMaxSeedingMinutes->isChecked()); } -void OptionsDialog::enableProxy(int index) +void OptionsDialog::enableProxy(const int index) { - if (index) { + if (index >= 1) { // Any proxy type is used //enable m_ui->lblProxyIP->setEnabled(true); m_ui->textProxyIP->setEnabled(true); m_ui->lblProxyPort->setEnabled(true); m_ui->spinProxyPort->setEnabled(true); m_ui->checkProxyPeerConnecs->setEnabled(true); - if (index > 1) { + if (index >= 2) { // SOCKS5 or HTTP m_ui->checkProxyAuth->setEnabled(true); m_ui->isProxyOnlyForTorrents->setEnabled(true); } else { m_ui->checkProxyAuth->setEnabled(false); - m_ui->checkProxyAuth->setChecked(false); m_ui->isProxyOnlyForTorrents->setEnabled(false); m_ui->isProxyOnlyForTorrents->setChecked(true); } } - else { - //disable + else { // No proxy + // disable m_ui->lblProxyIP->setEnabled(false); m_ui->textProxyIP->setEnabled(false); m_ui->lblProxyPort->setEnabled(false); @@ -1472,7 +1470,6 @@ void OptionsDialog::enableProxy(int index) m_ui->checkProxyPeerConnecs->setEnabled(false); m_ui->isProxyOnlyForTorrents->setEnabled(false); m_ui->checkProxyAuth->setEnabled(false); - m_ui->checkProxyAuth->setChecked(false); } } diff --git a/src/gui/optionsdialog.h b/src/gui/optionsdialog.h index ef2422bd9..87c922b68 100644 --- a/src/gui/optionsdialog.h +++ b/src/gui/optionsdialog.h @@ -82,7 +82,7 @@ class OptionsDialog final : public QDialog public: // Constructor / Destructor OptionsDialog(QWidget *parent = nullptr); - ~OptionsDialog(); + ~OptionsDialog() override; public slots: void showConnectionTab(); diff --git a/src/webui/www/private/views/preferences.html b/src/webui/www/private/views/preferences.html index 150590f0f..276cc5b6d 100644 --- a/src/webui/www/private/views/preferences.html +++ b/src/webui/www/private/views/preferences.html @@ -1292,26 +1292,19 @@ $('peer_proxy_host_text').setProperty('disabled', !isPeerProxyTypeSelected); $('peer_proxy_port_value').setProperty('disabled', !isPeerProxyTypeSelected); $('use_peer_proxy_checkbox').setProperty('disabled', !isPeerProxyTypeSelected); - $('proxy_only_for_torrents_checkbox').setProperty('disabled', !isPeerProxyTypeSelected); + const isPeerProxyAuthenticatable = ($('peer_proxy_type_select').getProperty('value') === "socks5" || $('peer_proxy_type_select').getProperty('value') === "http"); + $('proxy_only_for_torrents_checkbox').setProperty('disabled', !isPeerProxyAuthenticatable); - if (isPeerProxyTypeSelected) { - const isPeerProxyTypeSocks5 = $('peer_proxy_type_select').getProperty('value') == "socks5"; - $('peer_proxy_auth_checkbox').setProperty('disabled', !isPeerProxyTypeSocks5); + if ($('peer_proxy_type_select').getProperty('value') === "socks4") + $('proxy_only_for_torrents_checkbox').setProperty('checked', true); - if (!isPeerProxyTypeSocks5) { - $('peer_proxy_auth_checkbox').setProperty('checked', isPeerProxyTypeSocks5); - updatePeerProxyAuthSettings(); - } - } - else { - $('peer_proxy_auth_checkbox').setProperty('disabled', !isPeerProxyTypeSelected); - $('peer_proxy_auth_checkbox').setProperty('checked', isPeerProxyTypeSelected); - updatePeerProxyAuthSettings(); - } + $('peer_proxy_auth_checkbox').setProperty('disabled', !isPeerProxyAuthenticatable); + + updatePeerProxyAuthSettings(); }; const updatePeerProxyAuthSettings = function() { - const isPeerProxyAuthEnabled = $('peer_proxy_auth_checkbox').getProperty('checked'); + const isPeerProxyAuthEnabled = (!$('peer_proxy_auth_checkbox').getProperty('disabled') && $('peer_proxy_auth_checkbox').getProperty('checked')); $('peer_proxy_username_text').setProperty('disabled', !isPeerProxyAuthEnabled); $('peer_proxy_password_text').setProperty('disabled', !isPeerProxyAuthEnabled); };