Do not allow 0 as port value

Use default port if there is no value
This commit is contained in:
Nikhil Tanwar 2021-12-05 17:21:53 +05:30
parent 8c962f151d
commit cf259313f2

View File

@ -27,7 +27,7 @@ LocalKiwixServer::LocalKiwixServer(QWidget *parent) :
connect(ui->OpenInBrowserButton, SIGNAL(clicked()), this, SLOT(openInBrowser())); connect(ui->OpenInBrowserButton, SIGNAL(clicked()), this, SLOT(openInBrowser()));
connect(ui->closeButton, &QPushButton::clicked, this, &LocalKiwixServer::close); connect(ui->closeButton, &QPushButton::clicked, this, &LocalKiwixServer::close);
connect(ui->PortChooser, &QLineEdit::textChanged, ui->PortChooser, [=](const QString &text){ connect(ui->PortChooser, &QLineEdit::textChanged, ui->PortChooser, [=](const QString &text){
if(text.toInt() > 65535) { if(text.toInt() > 65535 || text.toInt() < 1) {
QString validText = text; QString validText = text;
validText.chop(1); validText.chop(1);
ui->PortChooser->setText(validText); ui->PortChooser->setText(validText);
@ -48,7 +48,7 @@ LocalKiwixServer::LocalKiwixServer(QWidget *parent) :
} }
ui->IpChooser->setCurrentText(KiwixApp::instance()->getSettingsManager()->getKiwixServerIp()); ui->IpChooser->setCurrentText(KiwixApp::instance()->getSettingsManager()->getKiwixServerIp());
ui->PortChooser->setText(QString::number(m_port)); ui->PortChooser->setText(QString::number(m_port));
ui->PortChooser->setValidator(new QIntValidator(0, 65535, this)); ui->PortChooser->setValidator(new QIntValidator(1, 65535, this));
ui->KiwixServerButton->setStyleSheet("QPushButton {background-color: RoyalBlue;" ui->KiwixServerButton->setStyleSheet("QPushButton {background-color: RoyalBlue;"
"color: white;" "color: white;"
"padding: 5px;" "padding: 5px;"
@ -78,10 +78,13 @@ void LocalKiwixServer::openInBrowser()
void LocalKiwixServer::runOrStopServer() void LocalKiwixServer::runOrStopServer()
{ {
if (!m_active) { if (!m_active) {
auto settingsManager = KiwixApp::instance()->getSettingsManager();
m_port = ui->PortChooser->text().toInt(); m_port = ui->PortChooser->text().toInt();
if (m_port == 0) {
m_port = settingsManager->getKiwixServerPort();
}
mp_server->setPort(m_port); mp_server->setPort(m_port);
m_ipAddress = ui->IpChooser->currentText(); m_ipAddress = ui->IpChooser->currentText();
auto settingsManager = KiwixApp::instance()->getSettingsManager();
settingsManager->setKiwixServerPort(m_port); settingsManager->setKiwixServerPort(m_port);
settingsManager->setKiwixServerIpAddress(m_ipAddress); settingsManager->setKiwixServerIpAddress(m_ipAddress);
m_ipAddress = (m_ipAddress != "0.0.0.0") ? ui->IpChooser->currentText() : QString::fromStdString(kiwix::getBestPublicIp()); m_ipAddress = (m_ipAddress != "0.0.0.0") ? ui->IpChooser->currentText() : QString::fromStdString(kiwix::getBestPublicIp());