Refactory network module.
This commit is contained in:
@@ -3,35 +3,73 @@
|
|||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
|
#include <QNetworkSession>
|
||||||
|
#include <QHostAddress>
|
||||||
|
#include <QNetworkInterface>
|
||||||
|
|
||||||
//NetworkManager* NetworkManager::instance = nullptr;
|
namespace
|
||||||
|
{
|
||||||
|
unsigned int ipToUInt(const std::string& ip) {
|
||||||
|
unsigned int result = 0;
|
||||||
|
int start = 0;
|
||||||
|
for (int i = 0; i < 4; ++i) {
|
||||||
|
int end = ip.find('.', start);
|
||||||
|
if (end == std::string::npos) end = ip.length();
|
||||||
|
int octet = stoi(ip.substr(start, end - start));
|
||||||
|
result = (result << 8) | octet;
|
||||||
|
start = end + 1;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//NetworkManager::NetworkManager(QObject* parent) : QObject(parent)
|
QString cidrFromSubnet(const QString& subnet) {
|
||||||
//{
|
unsigned int subnetMask = ipToUInt(subnet.toStdString());
|
||||||
//
|
int cidr = 0;
|
||||||
//}
|
while (subnetMask != 0) {
|
||||||
|
subnetMask = (subnetMask << 1) & 0xFFFFFFFF;
|
||||||
|
cidr++;
|
||||||
|
}
|
||||||
|
return QString::number(cidr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NetworkManager* NetworkManager::getInstance()
|
||||||
|
{
|
||||||
|
static NetworkManager instance;
|
||||||
|
return &instance;
|
||||||
|
}
|
||||||
|
|
||||||
//NetworkManager* NetworkManager::Instance()
|
NetworkManager::NetworkManager(QObject* aParent)
|
||||||
//{
|
: QObject(aParent)
|
||||||
// if (nullptr == instance)
|
, mIsDHCP()
|
||||||
// {
|
, mIpAddress()
|
||||||
// instance = new NetworkManager();
|
, mSubNetMask()
|
||||||
// }
|
{
|
||||||
// return instance;
|
initNetworkInfo();
|
||||||
//}
|
}
|
||||||
|
|
||||||
|
void NetworkManager::initNetworkInfo()
|
||||||
|
{
|
||||||
|
QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
|
||||||
|
for (const QNetworkInterface &interface : interfaces)
|
||||||
|
{
|
||||||
|
if (!(interface.flags() & QNetworkInterface::IsLoopBack))
|
||||||
|
{
|
||||||
|
QList<QNetworkAddressEntry> entries = interface.addressEntries();
|
||||||
|
for (const QNetworkAddressEntry &entry : entries)
|
||||||
|
{
|
||||||
|
if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)
|
||||||
|
{
|
||||||
|
mIsDHCP = !entry.isPermanent();
|
||||||
|
mIpAddress = entry.ip().toString();
|
||||||
|
mSubNetMask = entry.netmask().toString();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//void NetworkManager::qIfConfig(const localhost& lhost)
|
|
||||||
//{
|
|
||||||
// QProcess* myProcess = new QProcess;
|
|
||||||
// //QString cmd = QString("echo %1 | sudo -S ifconfig eth0 %2 up").;
|
|
||||||
// QString cmd = QString("echo %1 | sudo -S ifconfig eth0 %2 netmask %3 up; sudo -S route del default dev eth0; \
|
|
||||||
// sudo -S route add default gw %4").arg("klxts4047").arg(lhost.ip).arg(lhost.mask).arg(lhost.gateway);
|
|
||||||
// QStringList args;
|
|
||||||
// args << "-c" << cmd;
|
|
||||||
// myProcess->start("/bin/sh", args);
|
|
||||||
//}
|
|
||||||
host NetworkManager::getLocalHost()
|
host NetworkManager::getLocalHost()
|
||||||
{
|
{
|
||||||
return JsonObject::Instance()->getServer(JsonObject::LOCAL);
|
return JsonObject::Instance()->getServer(JsonObject::LOCAL);
|
||||||
@@ -48,11 +86,11 @@ QString NetworkManager::interfaceName()
|
|||||||
}
|
}
|
||||||
bool NetworkManager::isDHCP()
|
bool NetworkManager::isDHCP()
|
||||||
{
|
{
|
||||||
return JsonObject::Instance()->isDHCP();
|
return mIsDHCP;
|
||||||
}
|
}
|
||||||
IpAddr NetworkManager::getDefaultIpAddr()
|
IpAddr NetworkManager::getDefaultIpAddr()
|
||||||
{
|
{
|
||||||
return JsonObject::Instance()->getDefaultIpAddr();
|
return IpAddr{mIpAddress, mSubNetMask};
|
||||||
}
|
}
|
||||||
QList<QStringList> NetworkManager::getIpAddrList()
|
QList<QStringList> NetworkManager::getIpAddrList()
|
||||||
{
|
{
|
||||||
@@ -67,66 +105,58 @@ QList<QStringList> NetworkManager::getIpRouteList()
|
|||||||
return JsonObject::Instance()->getIpRouteList();
|
return JsonObject::Instance()->getIpRouteList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NetworkManager::setDHCP()
|
||||||
|
|
||||||
bool NetworkManager::restart(QString& err_info)
|
|
||||||
{
|
{
|
||||||
|
QString pwd = JsonObject::Instance()->passWord();
|
||||||
|
qDebug()<< pwd;
|
||||||
|
QString dhcpCommand = QString("echo %1 | sudo -S nmcli con mod usct ipv4.method auto ipv4.address \"\" ipv4.gateway \"\"").arg(pwd);
|
||||||
|
QString networkUpdateCommand = QString("echo %1 | sudo -S nmcli con up usct").arg(pwd);
|
||||||
|
QProcess settingProcess;
|
||||||
|
settingProcess.start("/bin/bash" , QStringList() << "-c" << dhcpCommand);
|
||||||
|
settingProcess.waitForFinished();
|
||||||
|
if (settingProcess.exitStatus() != QProcess::NormalExit || settingProcess.exitCode() != 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
QProcess* myProcess = new QProcess;
|
QProcess restartProcess;
|
||||||
QString inface = JsonObject::Instance()->interfaceName();
|
restartProcess.start("/bin/bash", QStringList() << "-c" << networkUpdateCommand);
|
||||||
QString pwd = JsonObject::Instance()->passWord();
|
restartProcess.waitForFinished();
|
||||||
QString cmd = QString("echo %1 | sudo -S rcnetwork restart %2").arg(pwd).arg(inface);
|
if (restartProcess.exitStatus() != QProcess::NormalExit && restartProcess.exitCode() != 0)
|
||||||
QStringList args;
|
{
|
||||||
args << "-c" << cmd;
|
return false;
|
||||||
connect(myProcess, SIGNAL(finished(int)), myProcess, SLOT(deleteLater()));
|
}
|
||||||
myProcess->start("/bin/sh", args);
|
mIsDHCP = true;
|
||||||
|
JsonObject::Instance()->autoDHCP(true);
|
||||||
if (!myProcess->waitForFinished(60000)) {
|
|
||||||
err_info.append("failed...\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (myProcess->exitCode() == 0) {
|
|
||||||
err_info.append("suceess...\n");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
err_info.append(myProcess->readAllStandardError());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool NetworkManager::setJsonDHCP(bool enable)
|
|
||||||
{
|
|
||||||
JsonObject::Instance()->autoDHCP(enable);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool NetworkManager::setDefaultIpAddr(const IpAddr& addr, QString& err_info)
|
bool NetworkManager::setIpAddr(const IpAddr& addr, const QString& aGateWay, QString& err_info)
|
||||||
{
|
{
|
||||||
|
QString pwd = JsonObject::Instance()->passWord();
|
||||||
QString ipaddr = NewExp(addr.ip, addr.mask);
|
QString ipaddr = NewExp(addr.ip, addr.mask);
|
||||||
QProcess* myProcess = new QProcess;
|
QProcess settingProcess;
|
||||||
QString inface = JsonObject::Instance()->interfaceName();
|
QString setIpCommand = QString("echo %1 | sudo -S nmcli con mod usct ipv4.method manual ipv4.address %2 ipv4.gateway %3").arg(pwd).arg(ipaddr).arg(aGateWay);
|
||||||
QString pwd = JsonObject::Instance()->passWord();
|
|
||||||
QString cmd = QString("echo %1 | sudo -S ip addr add %2 dev %3").arg(pwd).arg(ipaddr).arg(inface);
|
|
||||||
QStringList args;
|
QStringList args;
|
||||||
args << "-c" << cmd;
|
args << "-c" << setIpCommand;
|
||||||
connect(myProcess, SIGNAL(finished(int)), myProcess, SLOT(deleteLater()));
|
settingProcess.start("/bin/sh", args);
|
||||||
myProcess->start("/bin/sh", args);
|
settingProcess.waitForFinished();
|
||||||
|
if (settingProcess.exitStatus() != QProcess::NormalExit || settingProcess.exitCode() != 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!myProcess->waitForFinished()) {
|
QString networkUpdateCommand = QString("echo %1 | sudo -S nmcli con up usct").arg(pwd);
|
||||||
err_info.append("failed...\n");
|
QProcess restartProcess;
|
||||||
return false;
|
restartProcess.start("/bin/bash", QStringList() << "-c" << networkUpdateCommand);
|
||||||
}
|
restartProcess.waitForFinished();
|
||||||
if (myProcess->exitCode() == 0) {
|
if (restartProcess.exitStatus() != QProcess::NormalExit && restartProcess.exitCode() != 0)
|
||||||
JsonObject::Instance()->setDefaultIpAddr(addr);
|
{
|
||||||
err_info.append("success...\n");
|
return false;
|
||||||
return true;
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
err_info.append(myProcess->readAllStandardError());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
JsonObject::Instance()->setDefaultIpAddr(addr);
|
||||||
|
JsonObject::Instance()->autoDHCP(false);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NetworkManager::validate(const QString& addr)
|
bool NetworkManager::validate(const QString& addr)
|
||||||
@@ -142,17 +172,8 @@ bool NetworkManager::validate(const QString& addr)
|
|||||||
|
|
||||||
QString NetworkManager::NewExp(QString ip, QString mask)
|
QString NetworkManager::NewExp(QString ip, QString mask)
|
||||||
{
|
{
|
||||||
QStringList list = mask.split(".");
|
|
||||||
int count = 0;
|
|
||||||
for (QString str : list)
|
|
||||||
{
|
|
||||||
if (str == "255")
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
QString temp = "";
|
QString temp = "";
|
||||||
temp.append(ip).append("/").append(QString::number(count * 8));
|
temp.append(ip).append("/").append(cidrFromSubnet(mask));
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,59 +294,3 @@ bool NetworkManager::setIpRouteList(const QList<QStringList>& list, QString& err
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool NetworkManager::testSetMode(QString& err_info)
|
|
||||||
{
|
|
||||||
// autoDHCP(true);
|
|
||||||
QString err1, err2, err3, err4;
|
|
||||||
|
|
||||||
qDebug() << "DefaultIpAddr";
|
|
||||||
const IpAddr& t1 = getDefaultIpAddr();
|
|
||||||
|
|
||||||
bool ret1 = setDefaultIpAddr(t1, err1);
|
|
||||||
err_info.append(err1);
|
|
||||||
|
|
||||||
qDebug() << "DefaultGateway";
|
|
||||||
|
|
||||||
const QString& t2 = getDefaultGateway();
|
|
||||||
bool ret2 = setDefaultGateway(t2, err2);
|
|
||||||
err_info.append(err2);
|
|
||||||
|
|
||||||
qDebug() << "IpAddrList";
|
|
||||||
const QList<QStringList>& t3 = getIpAddrList();
|
|
||||||
bool ret3 = setIpAddrList(t3, err3);
|
|
||||||
err_info.append(err3);
|
|
||||||
|
|
||||||
qDebug() << "IpRouteList";
|
|
||||||
const QList<QStringList>& t4 = getIpRouteList();
|
|
||||||
bool ret4 = setIpRouteList(t4, err4);
|
|
||||||
err_info.append(err4);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void NetworkManager::testGetMode()
|
|
||||||
{
|
|
||||||
qDebug() << "interfaceName()" << " : " << interfaceName();
|
|
||||||
qDebug() << "isDHCP()" << " : " << isDHCP();
|
|
||||||
|
|
||||||
IpAddr t1 = getDefaultIpAddr();
|
|
||||||
qDebug() << "getDefaultIpAddr()" << " : " << t1.ip << " " << t1.mask;
|
|
||||||
|
|
||||||
qDebug() << "getDefaultGateway()" << " : " << getDefaultGateway();
|
|
||||||
|
|
||||||
qDebug() << "ggetIpAddrList()" << " : ";
|
|
||||||
const QList<QStringList>& t2 = getIpAddrList();
|
|
||||||
for (QStringList var : t2)
|
|
||||||
{
|
|
||||||
qDebug() << var[0] << " " << var[1];
|
|
||||||
}
|
|
||||||
qDebug() << "getDefaultIpAddr()" << " : " << t1.ip << " " << t1.mask;
|
|
||||||
|
|
||||||
qDebug() << "getIpRouteList()" << " : ";
|
|
||||||
const QList<QStringList>& t3 = getIpRouteList();
|
|
||||||
for (QStringList var : t3)
|
|
||||||
{
|
|
||||||
qDebug() << var[0] << " " << var[1] << " " << var[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -12,21 +12,20 @@ class NetworkManager : public QObject
|
|||||||
public:
|
public:
|
||||||
static host getLocalHost();
|
static host getLocalHost();
|
||||||
static bool setLocalHost(const host& h);
|
static bool setLocalHost(const host& h);
|
||||||
//static NetworkManager* Instance();
|
static NetworkManager* getInstance();
|
||||||
//static void qIfConfig(const localhost& lhost);
|
//static void qIfConfig(const localhost& lhost);
|
||||||
static QString interfaceName();
|
static QString interfaceName();
|
||||||
static bool isDHCP();
|
bool isDHCP();
|
||||||
static IpAddr getDefaultIpAddr();
|
IpAddr getDefaultIpAddr();
|
||||||
static QList<QStringList> getIpAddrList();
|
static QList<QStringList> getIpAddrList();
|
||||||
static QString getDefaultGateway();
|
static QString getDefaultGateway();
|
||||||
static QList<QStringList> getIpRouteList();
|
static QList<QStringList> getIpRouteList();
|
||||||
|
|
||||||
//static void setInterfaceName(const QString& name);
|
//static void setInterfaceName(const QString& name);
|
||||||
static bool checkPassWord(const QString& pwd, QString& err_info);
|
static bool checkPassWord(const QString& pwd, QString& err_info);
|
||||||
static bool restart(QString& err_info);
|
bool setDHCP();
|
||||||
static bool setJsonDHCP(bool enable);
|
bool setIpAddr(const IpAddr& addr, const QString& aGateWay, QString& err_info);
|
||||||
|
void initNetworkInfo();
|
||||||
static bool setDefaultIpAddr(const IpAddr& addr, QString& err_info);
|
|
||||||
static bool setIpAddrList(const QList<QStringList>& list, QString& err_info);
|
static bool setIpAddrList(const QList<QStringList>& list, QString& err_info);
|
||||||
static bool setDefaultGateway(const QString& gw, QString& err_info);
|
static bool setDefaultGateway(const QString& gw, QString& err_info);
|
||||||
static bool setIpRouteList(const QList<QStringList>& list, QString& err_info);
|
static bool setIpRouteList(const QList<QStringList>& list, QString& err_info);
|
||||||
@@ -34,23 +33,11 @@ public:
|
|||||||
|
|
||||||
static bool validate(const QString& addr);
|
static bool validate(const QString& addr);
|
||||||
|
|
||||||
static bool testSetMode(QString& err_info);
|
private:
|
||||||
static void testGetMode();
|
explicit NetworkManager(QObject* parent = nullptr);
|
||||||
|
bool mIsDHCP;
|
||||||
//private:
|
QString mIpAddress;
|
||||||
//explicit NetworkManager(QObject* parent = nullptr);
|
QString mSubNetMask;
|
||||||
//static NetworkManager* instance;
|
|
||||||
|
|
||||||
|
|
||||||
//QString InterfaceName;
|
|
||||||
//bool isDHCP;
|
|
||||||
//IpAddress default_IpAddr;
|
|
||||||
//QList<IpAddress> addresses;
|
|
||||||
|
|
||||||
//IpRoute default_IpRoute;
|
|
||||||
//QList<IpRoute> routes;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -269,14 +269,14 @@ int DialogManager::requestEditDicomConfig()
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int DialogManager::requestInputAdminPasswd()
|
DialogResult DialogManager::requestInputAdminPasswd()
|
||||||
{
|
{
|
||||||
GetAdminPsw dialog(mTopWidget);
|
GetAdminPsw dialog(mTopWidget);
|
||||||
setTopWidget(&dialog);
|
setTopWidget(&dialog);
|
||||||
dialog.setWindowModality(Qt::WindowModal);
|
dialog.setWindowModality(Qt::WindowModal);
|
||||||
int ret = dialog.exec();
|
int ret = dialog.exec();
|
||||||
releaseTopWidget(&dialog);
|
releaseTopWidget(&dialog);
|
||||||
return ret;
|
return DialogResult(ret, dialog.getPsw());
|
||||||
}
|
}
|
||||||
|
|
||||||
int DialogManager::requestEditNetworkConfig()
|
int DialogManager::requestEditNetworkConfig()
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public:
|
|||||||
DialogResult requestSelectProtocal();
|
DialogResult requestSelectProtocal();
|
||||||
DialogResult requestSelectFilter();
|
DialogResult requestSelectFilter();
|
||||||
int requestEditDicomConfig();
|
int requestEditDicomConfig();
|
||||||
int requestInputAdminPasswd();
|
DialogResult requestInputAdminPasswd();
|
||||||
int requestEditNetworkConfig();
|
int requestEditNetworkConfig();
|
||||||
int requestGetWorkList(QSqlTableModel* aModel, QTableView* aTableView);
|
int requestGetWorkList(QSqlTableModel* aModel, QTableView* aTableView);
|
||||||
int requestPatientConfirm(PatientInformation* patientInf, int type);
|
int requestPatientConfirm(PatientInformation* patientInf, int type);
|
||||||
|
|||||||
@@ -93,9 +93,10 @@ SystemSettingForm::SystemSettingForm(QWidget* parent)
|
|||||||
JsonObject::Instance()->setCompleteNotify(scanCompleteButton->getChecked());
|
JsonObject::Instance()->setCompleteNotify(scanCompleteButton->getChecked());
|
||||||
});
|
});
|
||||||
connect(mUI->btnNetwork, &QToolButton::clicked, [=]() {
|
connect(mUI->btnNetwork, &QToolButton::clicked, [=]() {
|
||||||
if (DialogManager::Default()->requestInputAdminPasswd() == QDialog::Accepted)
|
auto result = DialogManager::Default()->requestInputAdminPasswd();
|
||||||
|
if (result.ResultCode == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
//JsonObject::Instance()->setPassword(dialog.getPsw());
|
JsonObject::Instance()->setPassword(result.ResultData.toString());
|
||||||
DialogManager::Default()->requestEditNetworkConfig();
|
DialogManager::Default()->requestEditNetworkConfig();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -30,7 +30,10 @@ NetworkCfgDialog::NetworkCfgDialog(QWidget* parent)
|
|||||||
this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
|
this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
|
||||||
setFocusPolicy(Qt::ClickFocus);
|
setFocusPolicy(Qt::ClickFocus);
|
||||||
|
|
||||||
mUi->sw_dhcp->setChecked(true);
|
bool isDHCP = NetworkManager::getInstance()->isDHCP();
|
||||||
|
mUi->sw_dhcp->setChecked(isDHCP);
|
||||||
|
mUi->addr_ip->setEnabled(!isDHCP);
|
||||||
|
mUi->addr_mask->setEnabled(!isDHCP);
|
||||||
//ui->sw_dhcp->setButtonStyle(ImageSwitch::ButtonStyle_1);
|
//ui->sw_dhcp->setButtonStyle(ImageSwitch::ButtonStyle_1);
|
||||||
|
|
||||||
QStringList headerAddr;
|
QStringList headerAddr;
|
||||||
@@ -169,6 +172,12 @@ NetworkCfgDialog::NetworkCfgDialog(QWidget* parent)
|
|||||||
{
|
{
|
||||||
reject();
|
reject();
|
||||||
});
|
});
|
||||||
|
connect(mUi->sw_dhcp, &ImageSwitch::clicked, [&]()
|
||||||
|
{
|
||||||
|
mUi->addr_ip->setEnabled(!mUi->sw_dhcp->getChecked());
|
||||||
|
mUi->addr_mask->setEnabled(!mUi->sw_dhcp->getChecked());
|
||||||
|
});
|
||||||
|
|
||||||
mUi->tabWidget->setCurrentIndex(0);
|
mUi->tabWidget->setCurrentIndex(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,9 +194,7 @@ NetworkCfgDialog::~NetworkCfgDialog()
|
|||||||
void NetworkCfgDialog::loadData()
|
void NetworkCfgDialog::loadData()
|
||||||
{
|
{
|
||||||
mUi->led_inface->setText(NetworkManager::interfaceName());
|
mUi->led_inface->setText(NetworkManager::interfaceName());
|
||||||
//ui->led_inface->setDisabled(true);
|
const IpAddr& defaultIpAddress = NetworkManager::getInstance()->getDefaultIpAddr();
|
||||||
mUi->sw_dhcp->setChecked(NetworkManager::isDHCP());
|
|
||||||
const IpAddr& defaultIpAddress = NetworkManager::getDefaultIpAddr();
|
|
||||||
mUi->addr_ip->setText(defaultIpAddress.ip);
|
mUi->addr_ip->setText(defaultIpAddress.ip);
|
||||||
mUi->addr_mask->setText(defaultIpAddress.mask);
|
mUi->addr_mask->setText(defaultIpAddress.mask);
|
||||||
mUi->led_gw->setText(NetworkManager::getDefaultGateway());
|
mUi->led_gw->setText(NetworkManager::getDefaultGateway());
|
||||||
@@ -236,12 +243,12 @@ void NetworkCfgDialog::saveJsonData()
|
|||||||
|
|
||||||
bool NetworkCfgDialog::isNetModified()
|
bool NetworkCfgDialog::isNetModified()
|
||||||
{
|
{
|
||||||
if (mUi->sw_dhcp->getChecked() != NetworkManager::isDHCP())
|
if (mUi->sw_dhcp->getChecked() != NetworkManager::getInstance()->isDHCP())
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const IpAddr& defaultIpAddress = NetworkManager::getDefaultIpAddr();
|
const IpAddr& defaultIpAddress = NetworkManager::getInstance()->getDefaultIpAddr();
|
||||||
if (mUi->addr_ip->text() != defaultIpAddress.ip)
|
if (mUi->addr_ip->text() != defaultIpAddress.ip)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@@ -272,7 +279,14 @@ void NetworkCfgDialog::handleThreadStart()
|
|||||||
}
|
}
|
||||||
void NetworkCfgDialog::handleThreadExit()
|
void NetworkCfgDialog::handleThreadExit()
|
||||||
{
|
{
|
||||||
DialogManager::Default()->hideTopSyncDialog();
|
DialogManager::Default()->hideTopSyncDialog();
|
||||||
|
NetworkManager::getInstance()->initNetworkInfo();
|
||||||
|
bool isDHCP = NetworkManager::getInstance()->isDHCP();
|
||||||
|
mUi->sw_dhcp->setChecked(isDHCP);
|
||||||
|
mUi->addr_ip->setText(NetworkManager::getInstance()->getDefaultIpAddr().ip);
|
||||||
|
mUi->addr_mask->setText(NetworkManager::getInstance()->getDefaultIpAddr().mask);
|
||||||
|
mUi->addr_ip->setEnabled(!isDHCP);
|
||||||
|
mUi->addr_mask->setEnabled(!isDHCP);
|
||||||
mUi->output->setPlainText(mError);
|
mUi->output->setPlainText(mError);
|
||||||
if (0 != mThread)
|
if (0 != mThread)
|
||||||
{
|
{
|
||||||
@@ -297,35 +311,21 @@ void NetworkCfgDialog::applyData()
|
|||||||
mThread = QThread::create([=]()
|
mThread = QThread::create([=]()
|
||||||
{
|
{
|
||||||
mError.clear();
|
mError.clear();
|
||||||
mError.append("restart\t\t");
|
|
||||||
|
|
||||||
bool result = NetworkManager::restart(mError);
|
|
||||||
//bool ret =true;
|
|
||||||
//err.append(boolToStr(ret));
|
|
||||||
|
|
||||||
mError.append("\n");
|
|
||||||
if (mUi->sw_dhcp->getChecked())
|
if (mUi->sw_dhcp->getChecked())
|
||||||
{
|
{
|
||||||
NetworkManager::setJsonDHCP(true);
|
|
||||||
mError.append("network setting\t");
|
mError.append("network setting\t");
|
||||||
|
bool result = NetworkManager::getInstance()->setDHCP();
|
||||||
|
|
||||||
mError.append(boolToStr(result));
|
mError.append(boolToStr(result));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
NetworkManager::setJsonDHCP(false);
|
|
||||||
|
|
||||||
IpAddr deIpAddress;
|
IpAddr deIpAddress;
|
||||||
deIpAddress.ip = mUi->addr_ip->text();
|
deIpAddress.ip = mUi->addr_ip->text();
|
||||||
deIpAddress.mask = mUi->addr_mask->text();
|
deIpAddress.mask = mUi->addr_mask->text();
|
||||||
mError.append("setDefaultIpAddr\t");
|
QString gateway = mUi->led_gw->text();
|
||||||
result = result & NetworkManager::setDefaultIpAddr(deIpAddress, mError);
|
mError.append("network settings\t");
|
||||||
mError.append("setDefaultGateway\t");
|
bool result = NetworkManager::getInstance()->setIpAddr(deIpAddress, gateway, mError);
|
||||||
result = result & NetworkManager::setDefaultGateway(mUi->led_gw->text(), mError);
|
|
||||||
mError.append("setIpAddrList\t");
|
|
||||||
result = result & NetworkManager::setIpAddrList(mModelAddress->getData(), mError);
|
|
||||||
mError.append("setIpRouteList\t");
|
|
||||||
result = result & NetworkManager::setIpRouteList(mModelRoute->getData(), mError);
|
|
||||||
mError.append("\n").append("network settings\t");
|
|
||||||
mError.append(boolToStr(result));
|
mError.append(boolToStr(result));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user