mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-24 04:32:15 -04:00
Add IP Address to local settings and make IP Addresses in Combobox sorted
This commit is contained in:
parent
11d6641415
commit
cae216feeb
@ -25,18 +25,23 @@ LocalKiwixServer::LocalKiwixServer(QWidget *parent) :
|
|||||||
|
|
||||||
connect(ui->KiwixServerButton, SIGNAL(clicked()), this, SLOT(runOrStopServer()));
|
connect(ui->KiwixServerButton, SIGNAL(clicked()), this, SLOT(runOrStopServer()));
|
||||||
connect(ui->OpenInBrowserButton, SIGNAL(clicked()), this, SLOT(openInBrowser()));
|
connect(ui->OpenInBrowserButton, SIGNAL(clicked()), this, SLOT(openInBrowser()));
|
||||||
connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::portChanged,
|
|
||||||
this, [=](int port) { m_port = port; });
|
|
||||||
connect(ui->closeButton, &QPushButton::clicked, this, &LocalKiwixServer::close);
|
connect(ui->closeButton, &QPushButton::clicked, this, &LocalKiwixServer::close);
|
||||||
|
|
||||||
const auto interfacesMap = kiwix::getNetworkInterfaces();
|
const auto interfacesMap = kiwix::getNetworkInterfaces();
|
||||||
for(auto interfacePair : interfacesMap) {
|
QVector<QString> interfaces;
|
||||||
|
interfaces.reserve(interfacesMap.size() + 1);
|
||||||
|
for (const auto &interfacePair : interfacesMap) {
|
||||||
QString ip = QString::fromStdString(interfacePair.second);
|
QString ip = QString::fromStdString(interfacePair.second);
|
||||||
ui->IpChooser->addItem(ip);
|
interfaces.push_back(ip);
|
||||||
}
|
}
|
||||||
ui->IpChooser->addItem("0.0.0.0");
|
interfaces.push_back(QString("0.0.0.0"));
|
||||||
ui->IpChooser->setCurrentText(QString::fromStdString(mp_server->getBestPublicIp())); // put best Public Ip as default
|
std::sort(interfaces.begin(), interfaces.end());
|
||||||
|
for (const auto &interface : interfaces) {
|
||||||
|
ui->IpChooser->addItem(interface);
|
||||||
|
}
|
||||||
|
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->KiwixServerButton->setStyleSheet("QPushButton {background-color: RoyalBlue;"
|
ui->KiwixServerButton->setStyleSheet("QPushButton {background-color: RoyalBlue;"
|
||||||
"color: white;"
|
"color: white;"
|
||||||
"padding: 5px;"
|
"padding: 5px;"
|
||||||
@ -67,9 +72,15 @@ void LocalKiwixServer::runOrStopServer()
|
|||||||
{
|
{
|
||||||
if (!m_active) {
|
if (!m_active) {
|
||||||
m_port = ui->PortChooser->text().toInt();
|
m_port = ui->PortChooser->text().toInt();
|
||||||
m_ipAddress = (ui->IpChooser->currentText() != "0.0.0.0") ? ui->IpChooser->currentText() : QString::fromStdString(mp_server->getBestPublicIp());
|
if (m_port > 65535) {
|
||||||
|
m_port = 65535;
|
||||||
|
}
|
||||||
mp_server->setPort(m_port);
|
mp_server->setPort(m_port);
|
||||||
KiwixApp::instance()->getSettingsManager()->setKiwixServerPort(m_port);
|
m_ipAddress = ui->IpChooser->currentText();
|
||||||
|
auto settingsManager = KiwixApp::instance()->getSettingsManager();
|
||||||
|
settingsManager->setKiwixServerPort(m_port);
|
||||||
|
settingsManager->setKiwixServerIpAddress(m_ipAddress);
|
||||||
|
m_ipAddress = (m_ipAddress != "0.0.0.0") ? ui->IpChooser->currentText() : QString::fromStdString(kiwix::getBestPublicIp());
|
||||||
mp_server->setAddress(ui->IpChooser->currentText().toStdString());
|
mp_server->setAddress(ui->IpChooser->currentText().toStdString());
|
||||||
ui->IpAddress->setText("http://" + m_ipAddress + ":" + QString::number(m_port));
|
ui->IpAddress->setText("http://" + m_ipAddress + ":" + QString::number(m_port));
|
||||||
ui->IpAddress->setReadOnly(true);
|
ui->IpAddress->setReadOnly(true);
|
||||||
|
@ -60,6 +60,12 @@ void SettingsManager::setKiwixServerPort(int port)
|
|||||||
emit(portChanged(port));
|
emit(portChanged(port));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsManager::setKiwixServerIp(QString ip)
|
||||||
|
{
|
||||||
|
m_kiwixServerIp = ip;
|
||||||
|
m_settings.setValue("localKiwixServer/ipAddress", ip);
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsManager::setZoomFactor(qreal zoomFactor)
|
void SettingsManager::setZoomFactor(qreal zoomFactor)
|
||||||
{
|
{
|
||||||
m_zoomFactor = zoomFactor;
|
m_zoomFactor = zoomFactor;
|
||||||
@ -80,4 +86,5 @@ void SettingsManager::initSettings()
|
|||||||
m_kiwixServerPort = m_settings.value("localKiwixServer/port", 8181).toInt();
|
m_kiwixServerPort = m_settings.value("localKiwixServer/port", 8181).toInt();
|
||||||
m_zoomFactor = m_settings.value("view/zoomFactor", 1).toDouble();
|
m_zoomFactor = m_settings.value("view/zoomFactor", 1).toDouble();
|
||||||
m_downloadDir = m_settings.value("download/dir", QString::fromStdString(kiwix::getDataDirectory())).toString();
|
m_downloadDir = m_settings.value("download/dir", QString::fromStdString(kiwix::getDataDirectory())).toString();
|
||||||
|
m_kiwixServerIp = m_settings.value("localKiwixServer/ipAddress", QString("0.0.0.0")).toString();
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,8 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void setKiwixServerPort(int port);
|
void setKiwixServerPort(int port);
|
||||||
int getKiwixServerPort() { return m_kiwixServerPort; };
|
int getKiwixServerPort() { return m_kiwixServerPort; };
|
||||||
|
void setKiwixServerIp(QString ip);
|
||||||
|
QString getKiwixServerIp() { return m_kiwixServerIp; };
|
||||||
void setZoomFactor(qreal zoomFactor);
|
void setZoomFactor(qreal zoomFactor);
|
||||||
qreal getZoomFactor() { return m_zoomFactor; };
|
qreal getZoomFactor() { return m_zoomFactor; };
|
||||||
bool setDownloadDir(QString downloadDir);
|
bool setDownloadDir(QString downloadDir);
|
||||||
@ -42,6 +44,7 @@ private:
|
|||||||
QSettings m_settings;
|
QSettings m_settings;
|
||||||
SettingsView *m_view;
|
SettingsView *m_view;
|
||||||
int m_kiwixServerPort;
|
int m_kiwixServerPort;
|
||||||
|
QString m_kiwixServerIp;
|
||||||
qreal m_zoomFactor;
|
qreal m_zoomFactor;
|
||||||
QString m_downloadDir;
|
QString m_downloadDir;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user