aboutsummaryrefslogtreecommitdiff
path: root/src/qt/optionsdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qt/optionsdialog.cpp')
-rw-r--r--src/qt/optionsdialog.cpp88
1 files changed, 50 insertions, 38 deletions
diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp
index e28b96b090..6bb7eaec2e 100644
--- a/src/qt/optionsdialog.cpp
+++ b/src/qt/optionsdialog.cpp
@@ -1,26 +1,17 @@
#include "optionsdialog.h"
#include "ui_optionsdialog.h"
-#include "bitcoinamountfield.h"
#include "bitcoinunits.h"
#include "monitoreddatamapper.h"
#include "netbase.h"
#include "optionsmodel.h"
-#include "qvalidatedlineedit.h"
-#include "qvaluecombobox.h"
-#include <QCheckBox>
#include <QDir>
#include <QIntValidator>
-#include <QLabel>
-#include <QLineEdit>
#include <QLocale>
#include <QMessageBox>
-#include <QPushButton>
#include <QRegExp>
#include <QRegExpValidator>
-#include <QTabWidget>
-#include <QWidget>
OptionsDialog::OptionsDialog(QWidget *parent) :
QDialog(parent),
@@ -38,18 +29,19 @@ OptionsDialog::OptionsDialog(QWidget *parent) :
ui->mapPortUpnp->setEnabled(false);
#endif
+ ui->proxyIp->setEnabled(false);
+ ui->proxyPort->setEnabled(false);
+ ui->proxyPort->setValidator(new QIntValidator(1, 65535, this));
+
ui->socksVersion->setEnabled(false);
ui->socksVersion->addItem("5", 5);
ui->socksVersion->addItem("4", 4);
ui->socksVersion->setCurrentIndex(0);
- ui->proxyIp->setEnabled(false);
- ui->proxyPort->setEnabled(false);
- ui->proxyPort->setValidator(new QIntValidator(0, 65535, this));
-
- connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->socksVersion, SLOT(setEnabled(bool)));
connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->proxyIp, SLOT(setEnabled(bool)));
connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->proxyPort, SLOT(setEnabled(bool)));
+ connect(ui->connectSocks, SIGNAL(toggled(bool)), ui->socksVersion, SLOT(setEnabled(bool)));
+ connect(ui->connectSocks, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning_Proxy()));
ui->proxyIp->installEventFilter(this);
@@ -68,21 +60,28 @@ OptionsDialog::OptionsDialog(QWidget *parent) :
/** check if the locale name consists of 2 parts (language_country) */
if(langStr.contains("_"))
{
+#if QT_VERSION >= 0x040800
+ /** display language strings as "native language - native country (locale name)", e.g. "Deutsch - Deutschland (de)" */
+ ui->lang->addItem(locale.nativeLanguageName() + QString(" - ") + locale.nativeCountryName() + QString(" (") + langStr + QString(")"), QVariant(langStr));
+#else
/** display language strings as "language - country (locale name)", e.g. "German - Germany (de)" */
ui->lang->addItem(QLocale::languageToString(locale.language()) + QString(" - ") + QLocale::countryToString(locale.country()) + QString(" (") + langStr + QString(")"), QVariant(langStr));
+#endif
}
else
{
+#if QT_VERSION >= 0x040800
+ /** display language strings as "native language (locale name)", e.g. "Deutsch (de)" */
+ ui->lang->addItem(locale.nativeLanguageName() + QString(" (") + langStr + QString(")"), QVariant(langStr));
+#else
/** display language strings as "language (locale name)", e.g. "German (de)" */
ui->lang->addItem(QLocale::languageToString(locale.language()) + QString(" (") + langStr + QString(")"), QVariant(langStr));
+#endif
}
}
ui->unit->setModel(new BitcoinUnits(this));
- connect(ui->connectSocks, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning_Proxy()));
- connect(ui->lang, SIGNAL(activated(int)), this, SLOT(showRestartWarning_Lang()));
-
/* Widget-to-option mapper */
mapper = new MonitoredDataMapper(this);
mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
@@ -92,8 +91,8 @@ OptionsDialog::OptionsDialog(QWidget *parent) :
connect(mapper, SIGNAL(viewModified()), this, SLOT(enableSaveButtons()));
/* disable save buttons when new data loaded */
connect(mapper, SIGNAL(currentIndexChanged(int)), this, SLOT(disableSaveButtons()));
- /* disable/enable save buttons when proxy IP is invalid/valid */
- connect(this, SIGNAL(proxyIpValid(bool)), this, SLOT(setSaveButtonState(bool)));
+ /* setup/change UI elements when proxy IP is invalid/valid */
+ connect(this, SIGNAL(proxyIpValid(QValidatedLineEdit *, bool)), this, SLOT(handleProxyIpValid(QValidatedLineEdit *, bool)));
}
OptionsDialog::~OptionsDialog()
@@ -114,8 +113,11 @@ void OptionsDialog::setModel(OptionsModel *model)
mapper->toFirst();
}
- // update the display unit, to not use the default ("BTC")
+ /* update the display unit, to not use the default ("BTC") */
updateDisplayUnit();
+
+ /* warn only when language selection changes (placed here so init of ui->lang via mapper doesn't trigger this) */
+ connect(ui->lang, SIGNAL(valueChanged()), this, SLOT(showRestartWarning_Lang()));
}
void OptionsDialog::setMapper()
@@ -127,10 +129,11 @@ void OptionsDialog::setMapper()
/* Network */
mapper->addMapping(ui->mapPortUpnp, OptionsModel::MapPortUPnP);
+
mapper->addMapping(ui->connectSocks, OptionsModel::ProxyUse);
- mapper->addMapping(ui->socksVersion, OptionsModel::ProxySocksVersion);
mapper->addMapping(ui->proxyIp, OptionsModel::ProxyIP);
mapper->addMapping(ui->proxyPort, OptionsModel::ProxyPort);
+ mapper->addMapping(ui->socksVersion, OptionsModel::ProxySocksVersion);
/* Window */
#ifndef Q_WS_MAC
@@ -146,7 +149,7 @@ void OptionsDialog::setMapper()
void OptionsDialog::enableSaveButtons()
{
- // prevent enabling of the save buttons when data modified, if there is an invalid proxy address present
+ /* prevent enabling of the save buttons when data modified, if there is an invalid proxy address present */
if(fProxyIpValid)
setSaveButtonState(true);
}
@@ -201,30 +204,39 @@ void OptionsDialog::updateDisplayUnit()
{
if(model)
{
- // Update transactionFee with the current unit
+ /* Update transactionFee with the current unit */
ui->transactionFee->setDisplayUnit(model->getDisplayUnit());
}
}
+void OptionsDialog::handleProxyIpValid(QValidatedLineEdit *object, bool fState)
+{
+ // this is used in a check before re-enabling the save buttons
+ fProxyIpValid = fState;
+
+ if(fProxyIpValid)
+ {
+ enableSaveButtons();
+ ui->statusLabel->clear();
+ }
+ else
+ {
+ disableSaveButtons();
+ object->setValid(fProxyIpValid);
+ ui->statusLabel->setStyleSheet("QLabel { color: red; }");
+ ui->statusLabel->setText(tr("The supplied proxy address is invalid."));
+ }
+}
+
bool OptionsDialog::eventFilter(QObject *object, QEvent *event)
{
- if(object == ui->proxyIp && event->type() == QEvent::FocusOut)
+ if(event->type() == QEvent::FocusOut)
{
- // Check proxyIP for a valid IPv4/IPv6 address
- CService addr;
- if(!LookupNumeric(ui->proxyIp->text().toStdString().c_str(), addr))
- {
- ui->proxyIp->setValid(false);
- fProxyIpValid = false;
- ui->statusLabel->setStyleSheet("QLabel { color: red; }");
- ui->statusLabel->setText(tr("The supplied proxy address is invalid."));
- emit proxyIpValid(false);
- }
- else
+ if(object == ui->proxyIp)
{
- fProxyIpValid = true;
- ui->statusLabel->clear();
- emit proxyIpValid(true);
+ CService addr;
+ /* Check proxyIp for a valid IPv4/IPv6 address and emit the proxyIpValid signal */
+ emit proxyIpValid(ui->proxyIp, LookupNumeric(ui->proxyIp->text().toStdString().c_str(), addr));
}
}
return QDialog::eventFilter(object, event);