5 #if defined(HAVE_CONFIG_H)    10 #include <qt/forms/ui_optionsdialog.h>    17 #include <validation.h>     21 #include <QDataWidgetMapper>    23 #include <QIntValidator>    25 #include <QMessageBox>    37     ui->databaseCache->setMinimum(nMinDbCache);
    38     ui->databaseCache->setMaximum(nMaxDbCache);
    39     static const uint64_t GiB = 1024 * 1024 * 1024;
    40     static const uint64_t nMinDiskSpace = MIN_DISK_SPACE_FOR_BLOCK_FILES / GiB +
    41                           (MIN_DISK_SPACE_FOR_BLOCK_FILES % GiB) ? 1 : 0;
    42     ui->pruneSize->setMinimum(nMinDiskSpace);
    44     ui->threadsScriptVerif->setMaximum(MAX_SCRIPTCHECK_THREADS);
    45     ui->pruneWarning->setVisible(
false);
    46     ui->pruneWarning->setStyleSheet(
"QLabel { color: red; }");
    48     ui->pruneSize->setEnabled(
false);
    49     connect(
ui->prune, &QPushButton::toggled, 
ui->pruneSize, &QWidget::setEnabled);
    53     ui->mapPortUpnp->setEnabled(
false);
    56     ui->proxyIp->setEnabled(
false);
    57     ui->proxyPort->setEnabled(
false);
    58     ui->proxyPort->setValidator(
new QIntValidator(1, 65535, 
this));
    60     ui->proxyIpTor->setEnabled(
false);
    61     ui->proxyPortTor->setEnabled(
false);
    62     ui->proxyPortTor->setValidator(
new QIntValidator(1, 65535, 
this));
    64     connect(
ui->connectSocks, &QPushButton::toggled, 
ui->proxyIp, &QWidget::setEnabled);
    65     connect(
ui->connectSocks, &QPushButton::toggled, 
ui->proxyPort, &QWidget::setEnabled);
    68     connect(
ui->connectSocksTor, &QPushButton::toggled, 
ui->proxyIpTor, &QWidget::setEnabled);
    69     connect(
ui->connectSocksTor, &QPushButton::toggled, 
ui->proxyPortTor, &QWidget::setEnabled);
    75     ui->tabWidget->removeTab(
ui->tabWidget->indexOf(
ui->tabWindow));
    80         ui->tabWidget->removeTab(
ui->tabWidget->indexOf(
ui->tabWallet));
    84     QDir translations(
":translations");
    86     ui->bitcoinAtStartup->setToolTip(
ui->bitcoinAtStartup->toolTip().arg(tr(
PACKAGE_NAME)));
    87     ui->bitcoinAtStartup->setText(
ui->bitcoinAtStartup->text().arg(tr(
PACKAGE_NAME)));
    89     ui->openBitcoinConfButton->setToolTip(
ui->openBitcoinConfButton->toolTip().arg(tr(
PACKAGE_NAME)));
    92     ui->lang->addItem(QString(
"(") + tr(
"default") + QString(
")"), QVariant(
""));
    93     for (
const QString &langStr : translations.entryList())
    95         QLocale locale(langStr);
    98         if(langStr.contains(
"_"))
   101             ui->lang->addItem(locale.nativeLanguageName() + QString(
" - ") + locale.nativeCountryName() + QString(
" (") + langStr + QString(
")"), QVariant(langStr));
   106             ui->lang->addItem(locale.nativeLanguageName() + QString(
" (") + langStr + QString(
")"), QVariant(langStr));
   109     ui->thirdPartyTxUrls->setPlaceholderText(
"https://example.com/tx/%s");
   114     mapper = 
new QDataWidgetMapper(
this);
   115     mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
   116     mapper->setOrientation(Qt::Vertical);
   120     mapper->setItemDelegate(delegate);
   138     this->
model = _model;
   147         if (strLabel.isEmpty())
   148             strLabel = tr(
"none");
   149         ui->overriddenByCommandLineLabel->setText(strLabel);
   174     connect(
ui->thirdPartyTxUrls, &QLineEdit::textChanged, [
this]{ showRestartWarning(); });
   179     QWidget *tab_widget = 
nullptr;
   180     if (tab == OptionsDialog::Tab::TAB_NETWORK) tab_widget = 
ui->tabNetwork;
   181     if (tab == OptionsDialog::Tab::TAB_MAIN) tab_widget = 
ui->tabMain;
   182     if (tab_widget && 
ui->tabWidget->currentWidget() != tab_widget) {
   183         ui->tabWidget->setCurrentWidget(tab_widget);
   227     ui->okButton->setEnabled(fState);
   235         QMessageBox::StandardButton btnRetVal = QMessageBox::question(
this, tr(
"Confirm options reset"),
   236             tr(
"Client restart required to activate changes.") + 
"<br><br>" + tr(
"Client will be shut down. Do you want to proceed?"),
   237             QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel);
   239         if(btnRetVal == QMessageBox::Cancel)
   244         QApplication::quit();
   251     QMessageBox::information(
this, tr(
"Configuration options"),
   252         tr(
"The configuration file is used to specify advanced user options which override GUI settings. "   253            "Additionally, any command-line options will override this configuration file."));
   257         QMessageBox::critical(
this, tr(
"Error"), tr(
"The configuration file could not be opened."));
   276         ui->minimizeToTray->setChecked(
false);
   277         ui->minimizeToTray->setEnabled(
false);
   281         ui->minimizeToTray->setEnabled(
true);
   287     ui->pruneWarning->setVisible(!
ui->pruneWarning->isVisible());
   292     ui->statusLabel->setStyleSheet(
"QLabel { color: red; }");
   296         ui->statusLabel->setText(tr(
"Client restart required to activate changes."));
   300         ui->statusLabel->setText(tr(
"This change would require a client restart."));
   309     ui->statusLabel->clear();
   319     if (pUiProxyIp->
isValid() && (!
ui->proxyPort->isEnabled() || 
ui->proxyPort->text().toInt() > 0) && (!
ui->proxyPortTor->isEnabled() || 
ui->proxyPortTor->text().toInt() > 0))
   327         ui->statusLabel->setStyleSheet(
"QLabel { color: red; }");
   328         ui->statusLabel->setText(tr(
"The supplied proxy address is invalid."));
   335     std::string strProxy;
   336     QString strDefaultProxyGUI;
   340     strDefaultProxyGUI = 
ui->proxyIp->text() + 
":" + 
ui->proxyPort->text();
   341     (strProxy == strDefaultProxyGUI.toStdString()) ? 
ui->proxyReachIPv4->setChecked(
true) : 
ui->proxyReachIPv4->setChecked(
false);
   345     strDefaultProxyGUI = 
ui->proxyIp->text() + 
":" + 
ui->proxyPort->text();
   346     (strProxy == strDefaultProxyGUI.toStdString()) ? 
ui->proxyReachIPv6->setChecked(
true) : 
ui->proxyReachIPv6->setChecked(
false);
   350     strDefaultProxyGUI = 
ui->proxyIp->text() + 
":" + 
ui->proxyPort->text();
   351     (strProxy == strDefaultProxyGUI.toStdString()) ? 
ui->proxyReachTor->setChecked(
true) : 
ui->proxyReachTor->setChecked(
false);
   366         return QValidator::Acceptable;
   368     return QValidator::Invalid;
 
std::string ToStringPort() const
 
OptionsDialog(QWidget *parent, bool enableWallet)
 
Bitcoin unit definitions. 
 
Proxy address widget validator, checks for a valid proxy address. 
 
virtual bool getProxy(Network net, proxyType &proxy_info)=0
Get proxy. 
 
CService LookupNumeric(const char *pszName, int portDefault)
 
void setOkButtonState(bool fState)
 
const QString & getOverriddenByCommandLine()
 
void on_resetButton_clicked()
 
Line edit that can be marked as "invalid" to show input validation feedback. 
 
void togglePruneWarning(bool enabled)
 
bool isRestartRequired() const
 
interfaces::Node & node() const
 
if(!params[0].isNull()) nMinDepth
 
void on_openBitcoinConfButton_clicked()
 
std::string ToStringIP() const
 
A combination of a network address (CNetAddr) and a (TCP) port. 
 
State validate(QString &input, int &pos) const
 
void validationDidChange(QValidatedLineEdit *validatedLineEdit)
 
void setModel(OptionsModel *model)
 
QDataWidgetMapper * mapper
 
void on_okButton_clicked()
 
void updateDefaultProxyNets()
 
void setCurrentTab(OptionsDialog::Tab tab)
 
void on_hideTrayIcon_stateChanged(int fState)
 
Interface from Qt to configuration data structure for Bitcoin client. 
 
void showRestartWarning(bool fPersistent=false)
 
void on_cancelButton_clicked()
 
int GetNumCores()
Return the number of cores available on the current system. 
 
void updateProxyValidationState()
 
ProxyAddressValidator(QObject *parent)