Refactory network module.

This commit is contained in:
sunwen
2023-09-20 10:09:57 +08:00
parent 298e6c6c53
commit 7063bbfb1e
6 changed files with 150 additions and 197 deletions

View File

@@ -30,7 +30,10 @@ NetworkCfgDialog::NetworkCfgDialog(QWidget* parent)
this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
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);
QStringList headerAddr;
@@ -169,6 +172,12 @@ NetworkCfgDialog::NetworkCfgDialog(QWidget* parent)
{
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);
}
@@ -185,9 +194,7 @@ NetworkCfgDialog::~NetworkCfgDialog()
void NetworkCfgDialog::loadData()
{
mUi->led_inface->setText(NetworkManager::interfaceName());
//ui->led_inface->setDisabled(true);
mUi->sw_dhcp->setChecked(NetworkManager::isDHCP());
const IpAddr& defaultIpAddress = NetworkManager::getDefaultIpAddr();
const IpAddr& defaultIpAddress = NetworkManager::getInstance()->getDefaultIpAddr();
mUi->addr_ip->setText(defaultIpAddress.ip);
mUi->addr_mask->setText(defaultIpAddress.mask);
mUi->led_gw->setText(NetworkManager::getDefaultGateway());
@@ -236,12 +243,12 @@ void NetworkCfgDialog::saveJsonData()
bool NetworkCfgDialog::isNetModified()
{
if (mUi->sw_dhcp->getChecked() != NetworkManager::isDHCP())
if (mUi->sw_dhcp->getChecked() != NetworkManager::getInstance()->isDHCP())
{
return true;
}
const IpAddr& defaultIpAddress = NetworkManager::getDefaultIpAddr();
const IpAddr& defaultIpAddress = NetworkManager::getInstance()->getDefaultIpAddr();
if (mUi->addr_ip->text() != defaultIpAddress.ip)
{
return true;
@@ -272,7 +279,14 @@ void NetworkCfgDialog::handleThreadStart()
}
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);
if (0 != mThread)
{
@@ -297,35 +311,21 @@ void NetworkCfgDialog::applyData()
mThread = QThread::create([=]()
{
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())
{
NetworkManager::setJsonDHCP(true);
mError.append("network setting\t");
bool result = NetworkManager::getInstance()->setDHCP();
mError.append(boolToStr(result));
}
else
{
NetworkManager::setJsonDHCP(false);
IpAddr deIpAddress;
deIpAddress.ip = mUi->addr_ip->text();
deIpAddress.mask = mUi->addr_mask->text();
mError.append("setDefaultIpAddr\t");
result = result & NetworkManager::setDefaultIpAddr(deIpAddress, mError);
mError.append("setDefaultGateway\t");
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");
QString gateway = mUi->led_gw->text();
mError.append("network settings\t");
bool result = NetworkManager::getInstance()->setIpAddr(deIpAddress, gateway, mError);
mError.append(boolToStr(result));
}
});