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)