From 497584d947d5ac94d6478f55f685a8c5a15b6f8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hampus=20Sj=C3=B6berg?= Date: Thu, 26 Nov 2015 23:32:59 +0100 Subject: [PATCH] [Qt] Adding network port to GUI settings, fixes #7039 Adds Network port input box to the Network tab in the Options dialog. -port takes priority over the GUI setting. If left blank, it will default to the default port --- src/qt/forms/optionsdialog.ui | 59 ++++++++++++++++++++++++++++++++--- src/qt/optionsdialog.cpp | 4 +++ src/qt/optionsmodel.cpp | 21 +++++++++++++ src/qt/optionsmodel.h | 1 + 4 files changed, 80 insertions(+), 5 deletions(-) diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index 7d8d8446aa..2d8f47e4df 100644 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -315,6 +315,55 @@ &Network + + + + + + Network &port + + + Qt::PlainText + + + networkPort + + + + + + + + 55 + 0 + + + + + 55 + 16777215 + + + + Network port (e.g. 8333) + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + @@ -356,7 +405,7 @@ - + @@ -422,7 +471,7 @@ - + Qt::Horizontal @@ -437,7 +486,7 @@ - + @@ -518,7 +567,7 @@ - + Qt::Horizontal @@ -543,7 +592,7 @@ - + diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index 6d9baf70df..44cf84dd67 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -105,6 +105,8 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet) ui->pruneSize->setEnabled(false); connect(ui->prune, &QPushButton::toggled, ui->pruneSize, &QWidget::setEnabled); + ui->networkPort->setValidator(new QIntValidator(1, 65535, this)); + /* Network elements init */ #ifndef USE_UPNP ui->mapPortUpnp->setEnabled(false); @@ -270,6 +272,7 @@ void OptionsDialog::setModel(OptionsModel *_model) /* Wallet */ connect(ui->spendZeroConfChange, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning); /* Network */ + connect(ui->networkPort, SIGNAL(textChanged(const QString &)), this, SLOT(showRestartWarning())); connect(ui->allowIncoming, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning); connect(ui->enableServer, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning); connect(ui->connectSocks, &QCheckBox::clicked, this, &OptionsDialog::showRestartWarning); @@ -306,6 +309,7 @@ void OptionsDialog::setMapper() mapper->addMapping(ui->m_enable_psbt_controls, OptionsModel::EnablePSBTControls); /* Network */ + mapper->addMapping(ui->networkPort, OptionsModel::NetworkPort); mapper->addMapping(ui->mapPortUpnp, OptionsModel::MapPortUPnP); mapper->addMapping(ui->mapPortNatpmp, OptionsModel::MapPortNatpmp); mapper->addMapping(ui->allowIncoming, OptionsModel::Listen); diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index f213a15708..41e7ae2601 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -244,6 +245,12 @@ bool OptionsModel::Init(bilingual_str& error) m_sub_fee_from_amount = settings.value("SubFeeFromAmount", false).toBool(); #endif + // Network + if (!settings.contains("nNetworkPort")) + settings.setValue("nNetworkPort", (quint16)Params().GetDefaultPort()); + if (!gArgs.SoftSetArg("-port", settings.value("nNetworkPort").toString().toStdString())) + addOverriddenOption("-port"); + // Display if (settings.contains("FontForMoney")) { m_font_money = FontChoiceFromString(settings.value("FontForMoney").toString()); @@ -418,6 +425,8 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con return m_show_tray_icon; case MinimizeToTray: return fMinimizeToTray; + case NetworkPort: + return settings.value("nNetworkPort"); case MapPortUPnP: #ifdef USE_UPNP return SettingToBool(setting(), DEFAULT_UPNP); @@ -544,6 +553,18 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std:: fMinimizeToTray = value.toBool(); settings.setValue("fMinimizeToTray", fMinimizeToTray); break; + case NetworkPort: + if (settings.value("nNetworkPort") != value) { + // If the port input box is empty, set to default port + if (value.toString().isEmpty()) { + settings.setValue("nNetworkPort", (quint16)Params().GetDefaultPort()); + } + else { + settings.setValue("nNetworkPort", (quint16)value.toInt()); + } + setRestartRequired(true); + } + break; case MapPortUPnP: // core option - can be changed on-the-fly if (changed()) { update(value.toBool()); diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index e7048e4b2e..027dd42fe1 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -50,6 +50,7 @@ public: StartAtStartup, // bool ShowTrayIcon, // bool MinimizeToTray, // bool + NetworkPort, // int MapPortUPnP, // bool MapPortNatpmp, // bool MinimizeOnClose, // bool