解决添加DNS功能异常问题 优化编辑DNS功能逻辑
This commit is contained in:
parent
c1e685fc9e
commit
7909b2ae03
|
@ -386,6 +386,7 @@ void KyConnectResourse::getIpv4ConnectSetting(
|
||||||
{
|
{
|
||||||
if (NetworkManager::Ipv4Setting::Automatic == ipv4Setting->method()) {
|
if (NetworkManager::Ipv4Setting::Automatic == ipv4Setting->method()) {
|
||||||
connectSetting.m_ipv4ConfigIpType = CONFIG_IP_DHCP;
|
connectSetting.m_ipv4ConfigIpType = CONFIG_IP_DHCP;
|
||||||
|
connectSetting.m_ipv4Dns = ipv4Setting->dns();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,6 +405,7 @@ void KyConnectResourse::getIpv6ConnectSetting(
|
||||||
|
|
||||||
if (NetworkManager::Ipv6Setting::Automatic == ipv6Setting->method()) {
|
if (NetworkManager::Ipv6Setting::Automatic == ipv6Setting->method()) {
|
||||||
connectSetting.m_ipv6ConfigIpType = CONFIG_IP_DHCP;
|
connectSetting.m_ipv6ConfigIpType = CONFIG_IP_DHCP;
|
||||||
|
connectSetting.m_ipv6Dns = ipv6Setting->dns();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ int KyConnectSetting::setIpConfigType(KyIpAddressType ipType, KyIpConfigType ipC
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
void KyConnectSetting::ipv4AddressConstruct(QString &ipv4Address, QString &ipv4NetMask, QString &ipv4GateWay, QStringList &ipv4Dns)
|
void KyConnectSetting::ipv4AddressConstruct(QString &ipv4Address, QString &ipv4NetMask, QString &ipv4GateWay)
|
||||||
{
|
{
|
||||||
qDebug()<<"ipv4 address"<<ipv4Address << ipv4NetMask << ipv4GateWay;
|
qDebug()<<"ipv4 address"<<ipv4Address << ipv4NetMask << ipv4GateWay;
|
||||||
NetworkManager::IpAddress nmIpv4Address;
|
NetworkManager::IpAddress nmIpv4Address;
|
||||||
|
@ -79,15 +79,9 @@ void KyConnectSetting::ipv4AddressConstruct(QString &ipv4Address, QString &ipv4N
|
||||||
m_ipv4Address.clear();
|
m_ipv4Address.clear();
|
||||||
m_ipv4Address << nmIpv4Address;
|
m_ipv4Address << nmIpv4Address;
|
||||||
|
|
||||||
m_ipv4Dns.clear();
|
|
||||||
for (int index = 0; index < ipv4Dns.size(); ++index) {
|
|
||||||
qDebug()<<"dns"<<ipv4Dns[index];
|
|
||||||
m_ipv4Dns << QHostAddress(ipv4Dns[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
void KyConnectSetting::ipv6AddressConstruct(QString &ipv6Address, QString &ipv6NetMask, QString &ipv6GateWay, QStringList &ipv6Dns)
|
void KyConnectSetting::ipv6AddressConstruct(QString &ipv6Address, QString &ipv6NetMask, QString &ipv6GateWay)
|
||||||
{
|
{
|
||||||
NetworkManager::IpAddress nmIpv6Address;
|
NetworkManager::IpAddress nmIpv6Address;
|
||||||
nmIpv6Address.setIp(QHostAddress(ipv6Address));
|
nmIpv6Address.setIp(QHostAddress(ipv6Address));
|
||||||
|
@ -96,14 +90,19 @@ void KyConnectSetting::ipv6AddressConstruct(QString &ipv6Address, QString &ipv6N
|
||||||
m_ipv6Address.clear();
|
m_ipv6Address.clear();
|
||||||
m_ipv6Address << nmIpv6Address;
|
m_ipv6Address << nmIpv6Address;
|
||||||
|
|
||||||
m_ipv6Dns.clear();
|
|
||||||
for (int index = 0; index < ipv6Dns.size(); index++) {
|
|
||||||
m_ipv6Dns << QHostAddress(ipv6Dns[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KyConnectSetting::ipv4DnsConstruct(QList<QHostAddress> &ipv4DnsList)
|
||||||
|
{
|
||||||
|
m_ipv4Dns = ipv4DnsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
void KyConnectSetting::ipv6DnsConstruct(QList<QHostAddress> &ipv6DnsList)
|
||||||
|
{
|
||||||
|
m_ipv6Dns = ipv6DnsList;
|
||||||
|
}
|
||||||
|
|
||||||
void KyConnectSetting::dumpInfo()
|
void KyConnectSetting::dumpInfo()
|
||||||
{
|
{
|
||||||
qDebug()<<"connect setting info:";
|
qDebug()<<"connect setting info:";
|
||||||
|
|
|
@ -50,8 +50,10 @@ public:
|
||||||
void setIfaceName(QString &ifaceName);
|
void setIfaceName(QString &ifaceName);
|
||||||
void setConnectName(QString &connectName);
|
void setConnectName(QString &connectName);
|
||||||
int setIpConfigType(KyIpAddressType ipType, KyIpConfigType configType);
|
int setIpConfigType(KyIpAddressType ipType, KyIpConfigType configType);
|
||||||
void ipv4AddressConstruct(QString &ipv4Address, QString &ipv4NetMask, QString &ipv4GateWay, QStringList &ipv4Dns);
|
void ipv4AddressConstruct(QString &ipv4Address, QString &ipv4NetMask, QString &ipv4GateWay);
|
||||||
void ipv6AddressConstruct(QString &ipv6Address, QString &ipv6NetMask, QString &ipv6GateWay, QStringList &ipv6Dns);
|
void ipv6AddressConstruct(QString &ipv6Address, QString &ipv6NetMask, QString &ipv6GateWay);
|
||||||
|
void ipv4DnsConstruct(QList<QHostAddress> &ipv4DnsList);
|
||||||
|
void ipv6DnsConstruct(QList<QHostAddress> &ipv6DnsList);
|
||||||
void dumpInfo();
|
void dumpInfo();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -17,24 +17,18 @@ void CreatNetPage::initUI()
|
||||||
ipv4addressEdit = new LineEdit(this);
|
ipv4addressEdit = new LineEdit(this);
|
||||||
netMaskEdit = new LineEdit(this);
|
netMaskEdit = new LineEdit(this);
|
||||||
gateWayEdit = new LineEdit(this);
|
gateWayEdit = new LineEdit(this);
|
||||||
// firstDnsEdit = new LineEdit(this);
|
|
||||||
// secondDnsEdit = new LineEdit(this);
|
|
||||||
|
|
||||||
m_connNameLabel = new QLabel(this);
|
m_connNameLabel = new QLabel(this);
|
||||||
m_configLabel = new QLabel(this);
|
m_configLabel = new QLabel(this);
|
||||||
m_addressLabel = new QLabel(this);
|
m_addressLabel = new QLabel(this);
|
||||||
m_maskLabel = new QLabel(this);
|
m_maskLabel = new QLabel(this);
|
||||||
m_gateWayLabel = new QLabel(this);
|
m_gateWayLabel = new QLabel(this);
|
||||||
// m_dnsLabel = new QLabel(this);
|
|
||||||
// m_secDnsLabel = new QLabel(this);
|
|
||||||
|
|
||||||
m_connNameLabel->setText(tr("Connection Name"));
|
m_connNameLabel->setText(tr("Connection Name"));
|
||||||
m_configLabel->setText(tr("Ipv4Config"));
|
m_configLabel->setText(tr("Ipv4Config"));
|
||||||
m_addressLabel->setText(tr("Address"));
|
m_addressLabel->setText(tr("Address"));
|
||||||
m_maskLabel->setText(tr("Netmask"));
|
m_maskLabel->setText(tr("Netmask"));
|
||||||
m_gateWayLabel->setText(tr("Default Gateway"));
|
m_gateWayLabel->setText(tr("Default Gateway"));
|
||||||
// m_dnsLabel->setText(tr("Prefs DNS"));
|
|
||||||
// m_secDnsLabel->setText(tr("Alternative DNS"));
|
|
||||||
|
|
||||||
// IP的正则格式限制
|
// IP的正则格式限制
|
||||||
QRegExp rx("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b");
|
QRegExp rx("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b");
|
||||||
|
@ -48,8 +42,6 @@ void CreatNetPage::initUI()
|
||||||
m_detailLayout->addRow(m_addressLabel,ipv4addressEdit);
|
m_detailLayout->addRow(m_addressLabel,ipv4addressEdit);
|
||||||
m_detailLayout->addRow(m_maskLabel,netMaskEdit);
|
m_detailLayout->addRow(m_maskLabel,netMaskEdit);
|
||||||
m_detailLayout->addRow(m_gateWayLabel,gateWayEdit);
|
m_detailLayout->addRow(m_gateWayLabel,gateWayEdit);
|
||||||
// m_detailLayout->addRow(m_dnsLabel,firstDnsEdit);
|
|
||||||
// m_detailLayout->addRow(m_secDnsLabel,secondDnsEdit);
|
|
||||||
m_detailLayout->addRow(m_dnsWidget);
|
m_detailLayout->addRow(m_dnsWidget);
|
||||||
|
|
||||||
ipv4ConfigCombox->addItem(tr("Auto(DHCP)"), AUTO_CONFIG); //"自动(DHCP)"
|
ipv4ConfigCombox->addItem(tr("Auto(DHCP)"), AUTO_CONFIG); //"自动(DHCP)"
|
||||||
|
@ -58,8 +50,6 @@ void CreatNetPage::initUI()
|
||||||
ipv4addressEdit->setValidator(new QRegExpValidator(rx, this));
|
ipv4addressEdit->setValidator(new QRegExpValidator(rx, this));
|
||||||
gateWayEdit->setValidator(new QRegExpValidator(rx, this));
|
gateWayEdit->setValidator(new QRegExpValidator(rx, this));
|
||||||
netMaskEdit->setValidator(new QRegExpValidator(rx, this));
|
netMaskEdit->setValidator(new QRegExpValidator(rx, this));
|
||||||
// firstDnsEdit->setValidator(new QRegExpValidator(rx, this));
|
|
||||||
// secondDnsEdit->setValidator(new QRegExpValidator(rx, this));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatNetPage::initComponent() {
|
void CreatNetPage::initComponent() {
|
||||||
|
@ -74,14 +64,6 @@ void CreatNetPage::initComponent() {
|
||||||
connect(ipv4ConfigCombox, SIGNAL(currentIndexChanged(int)), this, SLOT(setEnableOfSaveBtn()));
|
connect(ipv4ConfigCombox, SIGNAL(currentIndexChanged(int)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
connect(netMaskEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(netMaskEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
// connect(firstDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
|
||||||
// connect(secondDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
|
||||||
connect(m_dnsWidget, &MultipleDnsWidget::dnsTextChanged, this, [=]() {
|
|
||||||
setCreatePageState(false);
|
|
||||||
});
|
|
||||||
connect(m_dnsWidget, &MultipleDnsWidget::dnsEditingFinished, this, [=]() {
|
|
||||||
setCreatePageState(true);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CreatNetPage::checkConnectBtnIsEnabled()
|
bool CreatNetPage::checkConnectBtnIsEnabled()
|
||||||
|
@ -142,16 +124,11 @@ void CreatNetPage::setLineEnabled(bool check) {
|
||||||
ipv4addressEdit->setEnabled(check);
|
ipv4addressEdit->setEnabled(check);
|
||||||
netMaskEdit->setEnabled(check);
|
netMaskEdit->setEnabled(check);
|
||||||
gateWayEdit->setEnabled(check);
|
gateWayEdit->setEnabled(check);
|
||||||
// firstDnsEdit->setEnabled(check);
|
|
||||||
// secondDnsEdit->setEnabled(check);
|
|
||||||
m_dnsWidget->setEditEnabled(check);
|
|
||||||
|
|
||||||
if (!check) {
|
if (!check) {
|
||||||
ipv4addressEdit->clear();
|
ipv4addressEdit->clear();
|
||||||
netMaskEdit->clear();
|
netMaskEdit->clear();
|
||||||
gateWayEdit->clear();
|
gateWayEdit->clear();
|
||||||
// firstDnsEdit->clear();
|
|
||||||
// secondDnsEdit->clear();
|
|
||||||
|
|
||||||
ipv4addressEdit->setPlaceholderText(" ");
|
ipv4addressEdit->setPlaceholderText(" ");
|
||||||
netMaskEdit->setPlaceholderText(" ");
|
netMaskEdit->setPlaceholderText(" ");
|
||||||
|
@ -188,31 +165,13 @@ void CreatNetPage::constructIpv4Info(KyConnectSetting &setting)
|
||||||
<< " netMask " << netMask
|
<< " netMask " << netMask
|
||||||
<< " gateWay " << gateWay;
|
<< " gateWay " << gateWay;
|
||||||
|
|
||||||
QStringList dnsList;
|
|
||||||
dnsList.clear();
|
|
||||||
#if 0
|
|
||||||
if (!firstDnsEdit->text().isEmpty()) {
|
|
||||||
dnsList << firstDnsEdit->text();
|
|
||||||
if (!secondDnsEdit->text().isEmpty()) {
|
|
||||||
dnsList << secondDnsEdit->text();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QList<QHostAddress> ipv4dnsList;
|
QList<QHostAddress> ipv4dnsList;
|
||||||
ipv4dnsList.clear();
|
ipv4dnsList.clear();
|
||||||
ipv4dnsList = m_dnsWidget->getDns();
|
ipv4dnsList = m_dnsWidget->getDns();
|
||||||
for (QHostAddress str: ipv4dnsList) {
|
|
||||||
dnsList << str.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ipv4ConfigCombox->currentData() == AUTO_CONFIG) {
|
|
||||||
setting.setIpConfigType(IPADDRESS_V4, CONFIG_IP_DHCP);
|
|
||||||
} else {
|
|
||||||
setting.setIpConfigType(IPADDRESS_V4, CONFIG_IP_MANUAL);
|
|
||||||
setting.ipv4AddressConstruct(ipv4address, netMask, gateWay, dnsList);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
setting.setIpConfigType(IPADDRESS_V4, CONFIG_IP_DHCP);
|
||||||
|
setting.ipv4AddressConstruct(ipv4address, netMask, gateWay);
|
||||||
|
setting.ipv4DnsConstruct(ipv4dnsList);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CreatNetPage::netMaskIsValide(QString text)
|
bool CreatNetPage::netMaskIsValide(QString text)
|
||||||
|
|
|
@ -222,7 +222,9 @@ void DetailPage::initUI() {
|
||||||
m_ipv4Widget = new DetailWidget(qobject_cast<QWidget *>(m_IPV4), m_listWidget);
|
m_ipv4Widget = new DetailWidget(qobject_cast<QWidget *>(m_IPV4), m_listWidget);
|
||||||
m_ipv4Widget->setKey(tr("IPV4:"));
|
m_ipv4Widget->setKey(tr("IPV4:"));
|
||||||
|
|
||||||
m_IPV4Dns = new QLabel(this);
|
m_IPV4Dns = new FixLabel(this);
|
||||||
|
m_IPV4Dns->setFixedWidth(MAX_LABEL_WIDTH);
|
||||||
|
m_IPV4Dns->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||||
m_ipv4DnsWidget = new DetailWidget(qobject_cast<QWidget *>(m_IPV4Dns), m_listWidget);
|
m_ipv4DnsWidget = new DetailWidget(qobject_cast<QWidget *>(m_IPV4Dns), m_listWidget);
|
||||||
m_ipv4DnsWidget->setKey(tr("IPV4 Dns:"));
|
m_ipv4DnsWidget->setKey(tr("IPV4 Dns:"));
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ public:
|
||||||
QLabel *m_Chan;
|
QLabel *m_Chan;
|
||||||
QLabel *m_BandWidth;
|
QLabel *m_BandWidth;
|
||||||
QLabel *m_IPV4;
|
QLabel *m_IPV4;
|
||||||
QLabel *m_IPV4Dns;
|
FixLabel *m_IPV4Dns;
|
||||||
FixLabel *m_IPV6;
|
FixLabel *m_IPV6;
|
||||||
QLabel *m_Mac;
|
QLabel *m_Mac;
|
||||||
QLabel *m_autoConnect;
|
QLabel *m_autoConnect;
|
||||||
|
|
|
@ -72,14 +72,6 @@ void Ipv4Page::initComponent() {
|
||||||
connect(ipv4addressEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(ipv4addressEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
connect(netMaskEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(netMaskEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
// connect(firstDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
|
||||||
// connect(secondDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
|
||||||
connect(m_dnsWidget, &MultipleDnsWidget::dnsTextChanged, this, [=]() {
|
|
||||||
setIpv4PageState(false);
|
|
||||||
});
|
|
||||||
connect(m_dnsWidget, &MultipleDnsWidget::dnsEditingFinished, this, [=]() {
|
|
||||||
setIpv4PageState(true);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ipv4Page::setIpv4Config(KyIpConfigType ipv4Config)
|
void Ipv4Page::setIpv4Config(KyIpConfigType ipv4Config)
|
||||||
|
@ -124,6 +116,15 @@ void Ipv4Page::setGateWay(const QString &gateWay)
|
||||||
bool Ipv4Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
bool Ipv4Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
||||||
{
|
{
|
||||||
bool isChanged = false;
|
bool isChanged = false;
|
||||||
|
QList<QHostAddress> ipv4DnsList;
|
||||||
|
ipv4DnsList.clear();
|
||||||
|
ipv4DnsList = m_dnsWidget->getDns();
|
||||||
|
if (info.ipv4DnsList != ipv4DnsList) {
|
||||||
|
qDebug() << "ipv4 dns changed";
|
||||||
|
setting.ipv4DnsConstruct(ipv4DnsList);
|
||||||
|
isChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (ipv4ConfigCombox->currentIndex() == AUTO_CONFIG) {
|
if (ipv4ConfigCombox->currentIndex() == AUTO_CONFIG) {
|
||||||
if (info.ipv4ConfigType != CONFIG_IP_DHCP) {
|
if (info.ipv4ConfigType != CONFIG_IP_DHCP) {
|
||||||
qDebug() << "ipv4ConfigType change to Auto";
|
qDebug() << "ipv4ConfigType change to Auto";
|
||||||
|
@ -131,10 +132,8 @@ bool Ipv4Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
||||||
QString ipv4address("");
|
QString ipv4address("");
|
||||||
QString netMask("");
|
QString netMask("");
|
||||||
QString gateWay("");
|
QString gateWay("");
|
||||||
QStringList dnsList;
|
|
||||||
dnsList.empty();
|
|
||||||
qDebug() << ipv4address << netMask << gateWay;
|
qDebug() << ipv4address << netMask << gateWay;
|
||||||
setting.ipv4AddressConstruct(ipv4address, netMask, gateWay, dnsList);
|
setting.ipv4AddressConstruct(ipv4address, netMask, gateWay);
|
||||||
isChanged = true;
|
isChanged = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -145,37 +144,17 @@ bool Ipv4Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
||||||
}
|
}
|
||||||
qDebug() << "ipv4 netmask " << getNetMaskText(netMaskEdit->text());
|
qDebug() << "ipv4 netmask " << getNetMaskText(netMaskEdit->text());
|
||||||
|
|
||||||
QList<QHostAddress> ipv4dnsList;
|
|
||||||
ipv4dnsList.clear();
|
|
||||||
ipv4dnsList = m_dnsWidget->getDns();
|
|
||||||
|
|
||||||
if(info.strIPV4Address != ipv4addressEdit->text()
|
if(info.strIPV4Address != ipv4addressEdit->text()
|
||||||
|| info.strIPV4NetMask != /*netMaskEdit->text()*/getNetMaskText(netMaskEdit->text())
|
|| info.strIPV4NetMask != /*netMaskEdit->text()*/getNetMaskText(netMaskEdit->text())
|
||||||
|| info.strIPV4GateWay != gateWayEdit->text()
|
|| info.strIPV4GateWay != gateWayEdit->text()) {
|
||||||
// || info.strIPV4FirDns != firstDnsEdit->text()
|
|
||||||
// || info.strIPV4SecDns != secondDnsEdit->text()
|
|
||||||
|| info.ipv4DnsList != ipv4dnsList) {
|
|
||||||
|
|
||||||
qDebug() << "ipv4 info changed";
|
qDebug() << "ipv4 info changed";
|
||||||
QStringList dnsList;
|
|
||||||
dnsList.clear();
|
|
||||||
for (QHostAddress str: ipv4dnsList) {
|
|
||||||
dnsList << str.toString();
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
if (!firstDnsEdit->text().isEmpty()) {
|
|
||||||
dnsList << firstDnsEdit->text();
|
|
||||||
if (!secondDnsEdit->text().isEmpty()) {
|
|
||||||
dnsList << secondDnsEdit->text();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
QString ipv4address =ipv4addressEdit->text();
|
QString ipv4address =ipv4addressEdit->text();
|
||||||
QString netMask = getNetMaskText(netMaskEdit->text());
|
QString netMask = getNetMaskText(netMaskEdit->text());
|
||||||
QString gateWay = gateWayEdit->text();
|
QString gateWay = gateWayEdit->text();
|
||||||
qDebug() << ipv4address << netMask << gateWay;
|
qDebug() << ipv4address << netMask << gateWay;
|
||||||
setting.ipv4AddressConstruct(ipv4address, netMask, gateWay, dnsList);
|
setting.ipv4AddressConstruct(ipv4address, netMask, gateWay);
|
||||||
setting.dumpInfo();
|
setting.dumpInfo();
|
||||||
isChanged = true;
|
isChanged = true;
|
||||||
}
|
}
|
||||||
|
@ -237,16 +216,11 @@ void Ipv4Page::setLineEnabled(bool check) {
|
||||||
ipv4addressEdit->setEnabled(check);
|
ipv4addressEdit->setEnabled(check);
|
||||||
netMaskEdit->setEnabled(check);
|
netMaskEdit->setEnabled(check);
|
||||||
gateWayEdit->setEnabled(check);
|
gateWayEdit->setEnabled(check);
|
||||||
// firstDnsEdit->setEnabled(check);
|
|
||||||
// secondDnsEdit->setEnabled(check);
|
|
||||||
m_dnsWidget->setEditEnabled(check);
|
|
||||||
|
|
||||||
if (!check) {
|
if (!check) {
|
||||||
ipv4addressEdit->clear();
|
ipv4addressEdit->clear();
|
||||||
netMaskEdit->clear();
|
netMaskEdit->clear();
|
||||||
gateWayEdit->clear();
|
gateWayEdit->clear();
|
||||||
// firstDnsEdit->clear();
|
|
||||||
// secondDnsEdit->clear();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,15 @@ void Ipv6Page::setGateWay(const QString &gateWay)
|
||||||
bool Ipv6Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
bool Ipv6Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
||||||
{
|
{
|
||||||
bool isChanged = false;
|
bool isChanged = false;
|
||||||
|
QList<QHostAddress> ipv6DnsList;
|
||||||
|
ipv6DnsList.clear();
|
||||||
|
ipv6DnsList = m_dnsWidget->getDns();
|
||||||
|
if (info.ipv6DnsList != ipv6DnsList) {
|
||||||
|
qDebug() << "ipv6 dns changed";
|
||||||
|
setting.ipv6DnsConstruct(ipv6DnsList);
|
||||||
|
isChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (ipv6ConfigCombox->currentIndex() == AUTO_CONFIG) {
|
if (ipv6ConfigCombox->currentIndex() == AUTO_CONFIG) {
|
||||||
if (info.ipv6ConfigType != CONFIG_IP_DHCP) {
|
if (info.ipv6ConfigType != CONFIG_IP_DHCP) {
|
||||||
qDebug() << "ipv6ConfigType change to Auto";
|
qDebug() << "ipv6ConfigType change to Auto";
|
||||||
|
@ -56,9 +65,7 @@ bool Ipv6Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
||||||
QString ipv6address("");
|
QString ipv6address("");
|
||||||
QString prefix("");
|
QString prefix("");
|
||||||
QString gateWay("");
|
QString gateWay("");
|
||||||
QStringList dnsList;
|
setting.ipv6AddressConstruct(ipv6address, prefix, gateWay);
|
||||||
dnsList.empty();
|
|
||||||
setting.ipv6AddressConstruct(ipv6address, prefix, gateWay, dnsList);
|
|
||||||
isChanged = true;
|
isChanged = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -68,35 +75,16 @@ bool Ipv6Page::checkIsChanged(const ConInfo info, KyConnectSetting &setting)
|
||||||
isChanged = true;
|
isChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QHostAddress> ipv6dnsList;
|
|
||||||
ipv6dnsList.clear();
|
|
||||||
ipv6dnsList = m_dnsWidget->getDns();
|
|
||||||
|
|
||||||
if(info.strIPV6Address != ipv6AddressEdit->text()
|
if(info.strIPV6Address != ipv6AddressEdit->text()
|
||||||
|| info.iIPV6Prefix != lengthEdit->text().toInt()
|
|| info.iIPV6Prefix != lengthEdit->text().toInt()
|
||||||
|| info.strIPV6GateWay != gateWayEdit->text()
|
|| info.strIPV6GateWay != gateWayEdit->text()) {
|
||||||
// || info.strIPV6FirDns != firstDnsEdit->text()
|
|
||||||
// || info.strIPV6SecDns != secondDnsEdit->text()
|
|
||||||
|| info.ipv6DnsList != ipv6dnsList) {
|
|
||||||
|
|
||||||
qDebug() << "ipv6 info changed";
|
qDebug() << "ipv6 info changed";
|
||||||
QStringList dnsList;
|
|
||||||
dnsList.clear();
|
|
||||||
for (QHostAddress str: ipv6dnsList) {
|
|
||||||
dnsList << str.toString();
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
if (!firstDnsEdit->text().isEmpty()) {
|
|
||||||
dnsList << firstDnsEdit->text();
|
|
||||||
if (!secondDnsEdit->text().isEmpty()) {
|
|
||||||
dnsList << secondDnsEdit->text();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
QString ipv6address =ipv6AddressEdit->text();
|
QString ipv6address =ipv6AddressEdit->text();
|
||||||
QString prefix = lengthEdit->text();
|
QString prefix = lengthEdit->text();
|
||||||
QString gateWay = gateWayEdit->text();
|
QString gateWay = gateWayEdit->text();
|
||||||
setting.ipv6AddressConstruct(ipv6address, prefix, gateWay, dnsList);
|
setting.ipv6AddressConstruct(ipv6address, prefix, gateWay);
|
||||||
setting.dumpInfo();
|
setting.dumpInfo();
|
||||||
isChanged = true;
|
isChanged = true;
|
||||||
}
|
}
|
||||||
|
@ -163,14 +151,6 @@ void Ipv6Page::initComponent() {
|
||||||
connect(ipv6AddressEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(ipv6AddressEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
connect(lengthEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(lengthEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
||||||
// connect(firstDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
|
||||||
// connect(secondDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
|
|
||||||
connect(m_dnsWidget, &MultipleDnsWidget::dnsTextChanged, this, [=]() {
|
|
||||||
setIpv6PageState(false);
|
|
||||||
});
|
|
||||||
connect(m_dnsWidget, &MultipleDnsWidget::dnsEditingFinished, this, [=]() {
|
|
||||||
setIpv6PageState(true);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ipv6Page::configChanged(int index) {
|
void Ipv6Page::configChanged(int index) {
|
||||||
|
@ -187,16 +167,12 @@ void Ipv6Page::setControlEnabled(bool check)
|
||||||
ipv6AddressEdit->setEnabled(check);
|
ipv6AddressEdit->setEnabled(check);
|
||||||
lengthEdit->setEnabled(check);
|
lengthEdit->setEnabled(check);
|
||||||
gateWayEdit->setEnabled(check);
|
gateWayEdit->setEnabled(check);
|
||||||
m_dnsWidget->setEditEnabled(check);
|
|
||||||
// firstDnsEdit->setEnabled(check);
|
|
||||||
// secondDnsEdit->setEnabled(check);
|
|
||||||
|
|
||||||
if (!check) {
|
if (!check) {
|
||||||
ipv6AddressEdit->clear();
|
ipv6AddressEdit->clear();
|
||||||
lengthEdit->clear();
|
lengthEdit->clear();
|
||||||
gateWayEdit->clear();
|
gateWayEdit->clear();
|
||||||
// firstDnsEdit->clear();
|
|
||||||
// secondDnsEdit->clear();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,8 +86,6 @@ void MultipleDnsWidget::initComponent()
|
||||||
item->setFlags(item->flags() | Qt::ItemIsEditable);
|
item->setFlags(item->flags() | Qt::ItemIsEditable);
|
||||||
ListItemEdit *dnsListItemEdit = new ListItemEdit(m_regExp);
|
ListItemEdit *dnsListItemEdit = new ListItemEdit(m_regExp);
|
||||||
m_dnsListWidget ->setItemDelegateForRow(m_dnsListWidget->currentIndex().row(), dnsListItemEdit);
|
m_dnsListWidget ->setItemDelegateForRow(m_dnsListWidget->currentIndex().row(), dnsListItemEdit);
|
||||||
connect(dnsListItemEdit, SIGNAL(textChanged(QString)), this, SIGNAL(dnsTextChanged(QString)));
|
|
||||||
connect(dnsListItemEdit, SIGNAL(editingFinished()), this, SIGNAL(dnsEditingFinished()));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +108,7 @@ QList<QHostAddress> MultipleDnsWidget::getDns() const
|
||||||
QString aDns;
|
QString aDns;
|
||||||
while (m_dnsListWidget->count() > row) {
|
while (m_dnsListWidget->count() > row) {
|
||||||
aDns = m_dnsListWidget->item(row)->text();
|
aDns = m_dnsListWidget->item(row)->text();
|
||||||
if (!dnsList.contains(aDns)) {
|
if (!dnsList.contains(aDns) && !aDns.isEmpty()) {
|
||||||
dnsList << aDns;
|
dnsList << aDns;
|
||||||
ipv4dnsList << QHostAddress(aDns);
|
ipv4dnsList << QHostAddress(aDns);
|
||||||
}
|
}
|
||||||
|
@ -140,9 +138,6 @@ void MultipleDnsWidget::AddOneDnsItem(QListWidget *listWidget)
|
||||||
ListItemEdit *dnsListItemEdit = new ListItemEdit(m_regExp);
|
ListItemEdit *dnsListItemEdit = new ListItemEdit(m_regExp);
|
||||||
listWidget->setItemDelegateForRow(listWidget->currentIndex().row() , dnsListItemEdit);
|
listWidget->setItemDelegateForRow(listWidget->currentIndex().row() , dnsListItemEdit);
|
||||||
listWidget->editItem(dnsListWidgetItem);
|
listWidget->editItem(dnsListWidgetItem);
|
||||||
|
|
||||||
connect(dnsListItemEdit, SIGNAL(textChanged(QString)), this, SIGNAL(dnsTextChanged(QString)));
|
|
||||||
connect(dnsListItemEdit, SIGNAL(editingFinished()), this, SIGNAL(dnsEditingFinished()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultipleDnsWidget::RemoveOneDnsItem(QListWidgetItem *aItem, QListWidget *listWidget)
|
void MultipleDnsWidget::RemoveOneDnsItem(QListWidgetItem *aItem, QListWidget *listWidget)
|
||||||
|
@ -164,15 +159,18 @@ void MultipleDnsWidget::setDnsListWidgetStyle()
|
||||||
|
|
||||||
void MultipleDnsWidget::onAddBtnClicked()
|
void MultipleDnsWidget::onAddBtnClicked()
|
||||||
{
|
{
|
||||||
//避免重复添加空白项
|
|
||||||
if (m_dnsListWidget->currentItem()) {
|
|
||||||
if (m_dnsListWidget->currentItem()->text().isEmpty()) {
|
|
||||||
m_dnsListWidget->removeItemWidget(m_dnsListWidget->currentItem());
|
|
||||||
delete m_dnsListWidget->currentItem();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AddOneDnsItem(m_dnsListWidget);
|
AddOneDnsItem(m_dnsListWidget);
|
||||||
|
|
||||||
|
//避免重复添加空白项
|
||||||
|
int row = m_dnsListWidget->count() - 1;
|
||||||
|
while (row >= 0) {
|
||||||
|
if (!m_dnsListWidget->item(row)->isSelected()
|
||||||
|
&& m_dnsListWidget->item(row)->text().isEmpty()) {
|
||||||
|
m_dnsListWidget->removeItemWidget(m_dnsListWidget->item(row));
|
||||||
|
delete m_dnsListWidget->item(row);
|
||||||
|
}
|
||||||
|
row --;
|
||||||
|
}
|
||||||
m_removeDnsBtn->setEnabled(true);
|
m_removeDnsBtn->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,9 +62,6 @@ private Q_SLOTS:
|
||||||
void onAddBtnClicked();
|
void onAddBtnClicked();
|
||||||
void onRemoveBtnClicked();
|
void onRemoveBtnClicked();
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
void dnsTextChanged(const QString &);
|
|
||||||
void dnsEditingFinished();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MULTIPLEDNSWIDGET_H
|
#endif // MULTIPLEDNSWIDGET_H
|
||||||
|
|
|
@ -363,28 +363,20 @@ void NetDetail::pagePadding(QString netName, bool isWlan)
|
||||||
detailPage->setAutoConnect(m_info.isAutoConnect);
|
detailPage->setAutoConnect(m_info.isAutoConnect);
|
||||||
|
|
||||||
//ipv4页面填充
|
//ipv4页面填充
|
||||||
|
ipv4Page->setIpv4Config(m_info.ipv4ConfigType);
|
||||||
|
ipv4Page->setMulDns(m_info.ipv4DnsList);
|
||||||
if (m_info.ipv4ConfigType == CONFIG_IP_MANUAL) {
|
if (m_info.ipv4ConfigType == CONFIG_IP_MANUAL) {
|
||||||
ipv4Page->setIpv4Config(m_info.ipv4ConfigType);
|
|
||||||
ipv4Page->setIpv4(m_info.strIPV4Address);
|
ipv4Page->setIpv4(m_info.strIPV4Address);
|
||||||
ipv4Page->setNetMask(m_info.strIPV4NetMask);
|
ipv4Page->setNetMask(m_info.strIPV4NetMask);
|
||||||
// ipv4Page->setIpv4FirDns(m_info.strIPV4FirDns);
|
|
||||||
// ipv4Page->setIpv4SecDns(m_info.strIPV4SecDns);
|
|
||||||
ipv4Page->setMulDns(m_info.ipv4DnsList);
|
|
||||||
ipv4Page->setGateWay(m_info.strIPV4GateWay);
|
ipv4Page->setGateWay(m_info.strIPV4GateWay);
|
||||||
} else {
|
|
||||||
ipv4Page->setIpv4Config(m_info.ipv4ConfigType);
|
|
||||||
}
|
}
|
||||||
//ipv6页面填充
|
//ipv6页面填充
|
||||||
|
ipv6Page->setIpv6Config(m_info.ipv6ConfigType);
|
||||||
|
ipv6Page->setMulDns(m_info.ipv6DnsList);
|
||||||
if (m_info.ipv6ConfigType == CONFIG_IP_MANUAL) {
|
if (m_info.ipv6ConfigType == CONFIG_IP_MANUAL) {
|
||||||
ipv6Page->setIpv6Config(m_info.ipv6ConfigType);
|
|
||||||
ipv6Page->setIpv6(m_info.strIPV6Address);
|
ipv6Page->setIpv6(m_info.strIPV6Address);
|
||||||
ipv6Page->setIpv6Perfix(m_info.iIPV6Prefix);
|
ipv6Page->setIpv6Perfix(m_info.iIPV6Prefix);
|
||||||
// ipv6Page->setIpv6FirDns(m_info.strIPV6FirDns);
|
|
||||||
// ipv6Page->setIpv6SecDns(m_info.strIPV6SecDns);
|
|
||||||
ipv6Page->setMulDns(m_info.ipv6DnsList);
|
|
||||||
ipv6Page->setGateWay(m_info.strIPV6GateWay);
|
ipv6Page->setGateWay(m_info.strIPV6GateWay);
|
||||||
} else {
|
|
||||||
ipv6Page->setIpv6Config(m_info.ipv6ConfigType);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//安全页面
|
//安全页面
|
||||||
|
@ -554,14 +546,25 @@ void NetDetail::getStaticIpInfo(ConInfo &conInfo, bool bActived)
|
||||||
conInfo.iIPV6Prefix = ipv6Page->getPerfixLength(connetSetting.m_ipv6Address.at(0).netmask().toString());
|
conInfo.iIPV6Prefix = ipv6Page->getPerfixLength(connetSetting.m_ipv6Address.at(0).netmask().toString());
|
||||||
conInfo.strIPV6GateWay = connetSetting.m_ipv6Address.at(0).gateway().toString();
|
conInfo.strIPV6GateWay = connetSetting.m_ipv6Address.at(0).gateway().toString();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
conInfo.ipv6DnsList = connetSetting.m_ipv6Dns;
|
conInfo.ipv4DnsList = connetSetting.m_ipv4Dns;
|
||||||
|
conInfo.ipv6DnsList = connetSetting.m_ipv6Dns;
|
||||||
|
QString dnsList;
|
||||||
|
dnsList.clear();
|
||||||
|
if (!conInfo.ipv4DnsList.isEmpty()) {
|
||||||
|
for (QHostAddress str: conInfo.ipv4DnsList) {
|
||||||
|
dnsList.append(str.toString());
|
||||||
|
dnsList.append("; ");
|
||||||
|
}
|
||||||
|
dnsList.chop(2);
|
||||||
|
conInfo.strDynamicIpv4Dns = dnsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bActived) {
|
if (!bActived) {
|
||||||
conInfo.strDynamicIpv4 = conInfo.strIPV4Address.isEmpty() ? tr("Auto") : conInfo.strIPV4Address;
|
conInfo.strDynamicIpv4 = conInfo.strIPV4Address.isEmpty() ? tr("Auto") : conInfo.strIPV4Address;
|
||||||
conInfo.strDynamicIpv6 = conInfo.strIPV6Address.isEmpty() ? tr("Auto") : conInfo.strIPV6Address;
|
conInfo.strDynamicIpv6 = conInfo.strIPV6Address.isEmpty() ? tr("Auto") : conInfo.strIPV6Address;
|
||||||
conInfo.strDynamicIpv4Dns = conInfo.ipv4DnsList.isEmpty() ? tr("Auto") : conInfo.ipv4DnsList.at(0).toString();
|
conInfo.strDynamicIpv4Dns = conInfo.ipv4DnsList.isEmpty() ? tr("Auto") : conInfo.strDynamicIpv4Dns;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,6 @@ QWidget *ListItemEdit::createEditor(QWidget *parent, const QStyleOptionViewItem
|
||||||
{
|
{
|
||||||
QLineEdit *editor = new QLineEdit(parent);
|
QLineEdit *editor = new QLineEdit(parent);
|
||||||
editor->setValidator(new QRegExpValidator(m_regExp, parent));
|
editor->setValidator(new QRegExpValidator(m_regExp, parent));
|
||||||
connect(editor, SIGNAL(textChanged(QString)), this, SIGNAL(textChanged(QString)));
|
|
||||||
connect(editor, SIGNAL(editingFinished()), this, SIGNAL(editingFinished()));
|
|
||||||
return editor;
|
return editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,9 +44,6 @@ public:
|
||||||
private:
|
private:
|
||||||
QRegExp m_regExp;
|
QRegExp m_regExp;
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
void textChanged(const QString &);
|
|
||||||
void editingFinished();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LISTITEMEDIT_H
|
#endif // LISTITEMEDIT_H
|
||||||
|
|
Loading…
Reference in New Issue