5 #if defined(HAVE_CONFIG_H)
10 #include <qt/forms/ui_optionsdialog.h>
18 #include <validation.h>
22 #include <QDataWidgetMapper>
24 #include <QIntValidator>
26 #include <QMessageBox>
28 #include <QSystemTrayIcon>
44 ui->pruneWarning->setVisible(
false);
45 ui->pruneWarning->setStyleSheet(
"QLabel { color: red; }");
47 ui->pruneSize->setEnabled(
false);
48 connect(
ui->prune, &QPushButton::toggled,
ui->pruneSize, &QWidget::setEnabled);
52 ui->mapPortUpnp->setEnabled(
false);
55 ui->mapPortNatpmp->setEnabled(
false);
57 connect(
this, &QDialog::accepted, [
this](){
59 model->
node().mapPort(settings.value(
"fUseUPnP").toBool(), settings.value(
"fUseNatpmp").toBool());
62 ui->proxyIp->setEnabled(
false);
63 ui->proxyPort->setEnabled(
false);
64 ui->proxyPort->setValidator(
new QIntValidator(1, 65535,
this));
66 ui->proxyIpTor->setEnabled(
false);
67 ui->proxyPortTor->setEnabled(
false);
68 ui->proxyPortTor->setValidator(
new QIntValidator(1, 65535,
this));
70 connect(
ui->connectSocks, &QPushButton::toggled,
ui->proxyIp, &QWidget::setEnabled);
71 connect(
ui->connectSocks, &QPushButton::toggled,
ui->proxyPort, &QWidget::setEnabled);
74 connect(
ui->connectSocksTor, &QPushButton::toggled,
ui->proxyIpTor, &QWidget::setEnabled);
75 connect(
ui->connectSocksTor, &QPushButton::toggled,
ui->proxyPortTor, &QWidget::setEnabled);
81 ui->tabWidget->removeTab(
ui->tabWidget->indexOf(
ui->tabWindow));
83 ui->bitcoinAtStartup->setVisible(
false);
84 ui->verticalLayout_Main->removeWidget(
ui->bitcoinAtStartup);
85 ui->verticalLayout_Main->removeItem(
ui->horizontalSpacer_0_Main);
90 ui->tabWidget->removeTab(
ui->tabWidget->indexOf(
ui->tabWallet));
91 ui->thirdPartyTxUrlsLabel->setVisible(
false);
92 ui->thirdPartyTxUrls->setVisible(
false);
96 QDir translations(
":translations");
98 ui->bitcoinAtStartup->setToolTip(
ui->bitcoinAtStartup->toolTip().arg(
PACKAGE_NAME));
99 ui->bitcoinAtStartup->setText(
ui->bitcoinAtStartup->text().arg(
PACKAGE_NAME));
101 ui->openBitcoinConfButton->setToolTip(
ui->openBitcoinConfButton->toolTip().arg(
PACKAGE_NAME));
104 ui->lang->addItem(QString(
"(") + tr(
"default") + QString(
")"), QVariant(
""));
105 for (
const QString &langStr : translations.entryList())
107 QLocale locale(langStr);
110 if(langStr.contains(
"_"))
113 ui->lang->addItem(locale.nativeLanguageName() + QString(
" - ") + locale.nativeCountryName() + QString(
" (") + langStr + QString(
")"), QVariant(langStr));
118 ui->lang->addItem(locale.nativeLanguageName() + QString(
" (") + langStr + QString(
")"), QVariant(langStr));
124 mapper =
new QDataWidgetMapper(
this);
125 mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
126 mapper->setOrientation(Qt::Vertical);
130 mapper->setItemDelegate(delegate);
140 if (!QSystemTrayIcon::isSystemTrayAvailable()) {
141 ui->showTrayIcon->setChecked(
false);
142 ui->showTrayIcon->setEnabled(
false);
143 ui->minimizeToTray->setChecked(
false);
144 ui->minimizeToTray->setEnabled(
false);
148 ui->embeddedFont_radioButton->setText(
ui->embeddedFont_radioButton->text().arg(QFontInfo(embedded_font).family()));
149 embedded_font.setWeight(QFont::Bold);
150 ui->embeddedFont_label_1->setFont(embedded_font);
151 ui->embeddedFont_label_9->setFont(embedded_font);
154 ui->systemFont_radioButton->setText(
ui->systemFont_radioButton->text().arg(QFontInfo(system_font).family()));
155 system_font.setWeight(QFont::Bold);
156 ui->systemFont_label_1->setFont(system_font);
157 ui->systemFont_label_9->setFont(system_font);
159 ui->systemFont_radioButton->setChecked(
true);
171 this->
model = _model;
181 ui->pruneSize->setRange(nMinDiskSpace, std::numeric_limits<int>::max());
184 if (strLabel.isEmpty())
185 strLabel = tr(
"none");
186 ui->overriddenByCommandLineLabel->setText(strLabel);
211 connect(
ui->thirdPartyTxUrls, &QLineEdit::textChanged, [
this]{ showRestartWarning(); });
216 QWidget *tab_widget =
nullptr;
217 if (tab == OptionsDialog::Tab::TAB_NETWORK) tab_widget =
ui->tabNetwork;
218 if (tab == OptionsDialog::Tab::TAB_MAIN) tab_widget =
ui->tabMain;
219 if (tab_widget &&
ui->tabWidget->currentWidget() != tab_widget) {
220 ui->tabWidget->setCurrentWidget(tab_widget);
252 if (QSystemTrayIcon::isSystemTrayAvailable()) {
268 ui->okButton->setEnabled(fState);
276 QMessageBox::StandardButton btnRetVal = QMessageBox::question(
this, tr(
"Confirm options reset"),
277 tr(
"Client restart required to activate changes.") +
"<br><br>" + tr(
"Client will be shut down. Do you want to proceed?"),
278 QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel);
280 if(btnRetVal == QMessageBox::Cancel)
285 QApplication::quit();
292 QMessageBox::information(
this, tr(
"Configuration options"),
293 tr(
"The configuration file is used to specify advanced user options which override GUI settings. "
294 "Additionally, any command-line options will override this configuration file."));
298 QMessageBox::critical(
this, tr(
"Error"), tr(
"The configuration file could not be opened."));
315 if (state == Qt::Checked) {
316 ui->minimizeToTray->setEnabled(
true);
318 ui->minimizeToTray->setChecked(
false);
319 ui->minimizeToTray->setEnabled(
false);
325 ui->pruneWarning->setVisible(!
ui->pruneWarning->isVisible());
330 ui->statusLabel->setStyleSheet(
"QLabel { color: red; }");
334 ui->statusLabel->setText(tr(
"Client restart required to activate changes."));
338 ui->statusLabel->setText(tr(
"This change would require a client restart."));
347 ui->statusLabel->clear();
357 if (pUiProxyIp->
isValid() && (!
ui->proxyPort->isEnabled() ||
ui->proxyPort->text().toInt() > 0) && (!
ui->proxyPortTor->isEnabled() ||
ui->proxyPortTor->text().toInt() > 0))
365 ui->statusLabel->setStyleSheet(
"QLabel { color: red; }");
366 ui->statusLabel->setText(tr(
"The supplied proxy address is invalid."));
373 std::string strProxy;
374 QString strDefaultProxyGUI;
378 strDefaultProxyGUI =
ui->proxyIp->text() +
":" +
ui->proxyPort->text();
379 (strProxy == strDefaultProxyGUI.toStdString()) ?
ui->proxyReachIPv4->setChecked(
true) :
ui->proxyReachIPv4->setChecked(
false);
383 strDefaultProxyGUI =
ui->proxyIp->text() +
":" +
ui->proxyPort->text();
384 (strProxy == strDefaultProxyGUI.toStdString()) ?
ui->proxyReachIPv6->setChecked(
true) :
ui->proxyReachIPv6->setChecked(
false);
388 strDefaultProxyGUI =
ui->proxyIp->text() +
":" +
ui->proxyPort->text();
389 (strProxy == strDefaultProxyGUI.toStdString()) ?
ui->proxyReachTor->setChecked(
true) :
ui->proxyReachTor->setChecked(
false);
404 return QValidator::Acceptable;
406 return QValidator::Invalid;