Skip to content

Commit 2a8e8c2

Browse files
committed
[Qt] don't allow to store invalid proxy ports
1 parent d16d1b7 commit 2a8e8c2

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/qt/optionsdialog.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
5959

6060
connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->proxyIp, SLOT(setEnabled(bool)));
6161
connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->proxyPort, SLOT(setEnabled(bool)));
62+
connect(ui->connectSocks, SIGNAL(toggled(bool)), this, SLOT(updateProxyValidationState()));
6263

6364
connect(ui->connectSocksTor, SIGNAL(toggled(bool)), ui->proxyIpTor, SLOT(setEnabled(bool)));
6465
connect(ui->connectSocksTor, SIGNAL(toggled(bool)), ui->proxyPortTor, SLOT(setEnabled(bool)));
66+
connect(ui->connectSocksTor, SIGNAL(toggled(bool)), this, SLOT(updateProxyValidationState()));
6567

6668
/* Window elements init */
6769
#ifdef Q_OS_MAC
@@ -117,8 +119,10 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
117119
/* setup/change UI elements when proxy IPs are invalid/valid */
118120
ui->proxyIp->setCheckValidator(new ProxyAddressValidator(parent));
119121
ui->proxyIpTor->setCheckValidator(new ProxyAddressValidator(parent));
120-
connect(ui->proxyIp, SIGNAL(validationDidChange(QValidatedLineEdit *)), this, SLOT(updateProxyValidationState(QValidatedLineEdit *)));
121-
connect(ui->proxyIpTor, SIGNAL(validationDidChange(QValidatedLineEdit *)), this, SLOT(updateProxyValidationState(QValidatedLineEdit *)));
122+
connect(ui->proxyIp, SIGNAL(validationDidChange(QValidatedLineEdit *)), this, SLOT(updateProxyValidationState()));
123+
connect(ui->proxyIpTor, SIGNAL(validationDidChange(QValidatedLineEdit *)), this, SLOT(updateProxyValidationState()));
124+
connect(ui->proxyPort, SIGNAL(textChanged(const QString&)), this, SLOT(updateProxyValidationState()));
125+
connect(ui->proxyPortTor, SIGNAL(textChanged(const QString&)), this, SLOT(updateProxyValidationState()));
122126
}
123127

124128
OptionsDialog::~OptionsDialog()
@@ -256,10 +260,11 @@ void OptionsDialog::clearStatusLabel()
256260
ui->statusLabel->clear();
257261
}
258262

259-
void OptionsDialog::updateProxyValidationState(QValidatedLineEdit *pUiProxyIp)
263+
void OptionsDialog::updateProxyValidationState()
260264
{
265+
QValidatedLineEdit *pUiProxyIp = ui->proxyIp;
261266
QValidatedLineEdit *otherProxyWidget = (pUiProxyIp == ui->proxyIpTor) ? ui->proxyIp : ui->proxyIpTor;
262-
if (pUiProxyIp->isValid())
267+
if (pUiProxyIp->isValid() && (!ui->proxyPort->isEnabled() || ui->proxyPort->text().toInt() > 0) && (!ui->proxyPortTor->isEnabled() || ui->proxyPortTor->text().toInt() > 0))
263268
{
264269
setOkButtonState(otherProxyWidget->isValid()); //only enable ok button if both proxys are valid
265270
ui->statusLabel->clear();

src/qt/optionsdialog.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private Q_SLOTS:
5252

5353
void showRestartWarning(bool fPersistent = false);
5454
void clearStatusLabel();
55-
void updateProxyValidationState(QValidatedLineEdit *pUiProxyIp);
55+
void updateProxyValidationState();
5656
/* query the networks, for which the default proxy is used */
5757
void updateDefaultProxyNets();
5858

0 commit comments

Comments
 (0)