Merge branch '1015-build' into 'dbus-interface'

lan switchbutton not enable without device

See merge request kylin-desktop/kylin-nm!332
This commit is contained in:
ren peijia 2021-10-19 12:19:56 +00:00
commit 00e1271c30
4 changed files with 236 additions and 180 deletions

View File

@ -25,8 +25,10 @@ LanPage::LanPage(QWidget *parent) : TabPage(parent)
m_wiredConnectOperation = new KyWiredConnectOperation(this);
initUI();
initNetSwitch();
initLanDevice();
initNetSwitch();
initLanDeviceState();
initDeviceCombox();
initLanArea();
@ -52,21 +54,23 @@ LanPage::~LanPage()
void LanPage::initLanDevice()
{
m_devList.clear();
m_deviceResource->getNetworkDeviceList(NetworkManager::Device::Type::Ethernet, m_devList);
m_currentDeviceName = getDefaultDeviceName(WIRED);
QMap<QString, bool> deviceStateMap;
getDeviceEnableState(WIRED, deviceStateMap);
m_devList.clear();
m_deviceResource->getNetworkDeviceList(NetworkManager::Device::Type::Ethernet, m_devList);
}
void LanPage::initLanDeviceState()
{
getDeviceEnableState(WIRED, m_deviceStateMap);
QStringList disableDeviceList;
disableDeviceList.clear();
m_enableDeviceList.clear();
for (int index = 0; index < m_devList.count(); ++index) {
QString deviceName = m_devList.at(index);
if (deviceStateMap.contains(deviceName)) {
if (deviceStateMap[deviceName]) {
if (m_deviceStateMap.contains(deviceName)) {
if (m_deviceStateMap[deviceName]) {
m_enableDeviceList<<deviceName;
} else {
disableDeviceList<<deviceName;
@ -93,17 +97,27 @@ void LanPage::initLanDevice()
void LanPage::initNetSwitch()
{
m_wiredSwitch = true;
if (QGSettings::isSchemaInstalled(GSETTINGS_SCHEMA)) {
m_switchGsettings = new QGSettings(GSETTINGS_SCHEMA);
if (m_switchGsettings->keys().contains(WIRED_SWITCH)) {
m_wiredSwitch = m_switchGsettings->get(WIRED_SWITCH).toBool();
m_netSwitch->setSwitchStatus(m_wiredSwitch);
connect(m_switchGsettings, &QGSettings::changed, this, &LanPage::onSwithGsettingsChanged);
}
connect(m_netSwitch, &SwitchButton::clicked, this, &LanPage::onLanSwitchClicked);
} else {
qDebug()<<"[LanPage] org.ukui.kylin-nm.switch is not installed!";
}
if (m_devList.count() == 0) {
m_wiredSwitch = false;
}
m_netSwitch->setSwitchStatus(m_wiredSwitch);
connect(m_netSwitch, &SwitchButton::clicked, this, &LanPage::onLanSwitchClicked);
return;
}
void LanPage::onSwithGsettingsChanged(const QString &key)
@ -141,7 +155,11 @@ void LanPage::onLanSwitchClicked()
qDebug()<<"[LanPage] On lan switch button clicked! Status:" <<m_netSwitch->getSwitchStatus();
if (m_netSwitch->getSwitchStatus()) {
m_switchGsettings->set(WIRED_SWITCH, true);
if (m_devList.count() > 0) {
m_switchGsettings->set(WIRED_SWITCH, true);
} else {
this->showDesktopNotify(tr("No ethernet device avaliable"));
}
} else {
m_switchGsettings->set(WIRED_SWITCH, false);
}
@ -403,40 +421,49 @@ void LanPage::initLanArea()
return;
}
bool LanPage::removeConnectionItem(QMap<KyConnectItem *, QListWidgetItem *> &connectMap,
QListWidget *lanListWidget, QString path)
{
QMap<KyConnectItem *, QListWidgetItem *>::iterator iter;
for (iter = connectMap.begin(); iter != connectMap.end(); ++iter) {
KyConnectItem *p_item = iter.key();
if (p_item->m_connectPath == path) {
qDebug()<<"[LanPage] Remove a connection from list";
LanListItem *p_lanItem = (LanListItem *)lanListWidget->itemWidget(iter.value());
lanListWidget->removeItemWidget(iter.value());
delete p_lanItem;
p_lanItem = nullptr;
delete(iter.value());
connectMap.erase(iter);
delete p_item;
p_item = nullptr;
return true;
}
}
return false;
}
void LanPage::onRemoveConnection(QString path) //删除时后端会自动断开激活,将其从未激活列表中删除
{
//for dbus
qDebug() << "[LanPage] emit lanRemove because onRemoveConnection " << path;
emit lanRemove(path);
QEventLoop loop;
QTimer::singleShot(200, &loop, SLOT(quit()));
loop.exec();
QMap<KyConnectItem *, QListWidgetItem *>::iterator iters;
for (iters = m_deactiveMap.begin(); iters != m_deactiveMap.end(); ++iters) {
KyConnectItem *p_item = iters.key();
if (p_item->m_connectPath == path) {
qDebug()<<"[LanPage] Remove a connection from inactive list";
LanListItem *p_lanItem = (LanListItem *)m_inactivatedLanListWidget->itemWidget(iters.value());
m_inactivatedLanListWidget->removeItemWidget(iters.value());
delete p_lanItem;
p_lanItem = nullptr;
delete(iters.value());
m_deactiveMap.erase(iters);
delete p_item;
p_item = nullptr;
break;
if (removeConnectionItem(m_deactiveMap, m_inactivatedLanListWidget, path)) {
return;
} else {
removeConnectionItem(m_activeMap, m_activatedLanListWidget, path);
if (m_activeMap.count() <= 0) {
addEmptyConnectItem(m_activeMap, m_activatedLanListWidget);
}
return;
}
return;
}
void LanPage::onAddConnection(QString uuid) //新增一个有线连接,将其加入到激活列表
@ -505,6 +532,11 @@ void LanPage::onDeviceAdd(QString deviceName, NetworkManager::Device::Type devic
return;
}
if (m_devList.count() == 0) {// 有线网卡从无到有,打开开关
m_wiredSwitch = m_switchGsettings->get(WIRED_SWITCH).toBool();
m_netSwitch->setSwitchStatus(m_wiredSwitch);
}
qDebug() << "[LanPage] Begin add device:" << deviceName;
m_devList << deviceName;
@ -580,6 +612,11 @@ void LanPage::onDeviceRemove(QString deviceName)
qDebug() << "[LanPage] deviceRemove:" << deviceName;
m_devList.removeOne(deviceName);
if (m_devList.count() == 0) {
m_netSwitch->setSwitchStatus(false);
}
QString nowDevice = m_currentDeviceName;
deleteDeviceFromCombox(deviceName);
if (nowDevice == deviceName) {
@ -587,7 +624,6 @@ void LanPage::onDeviceRemove(QString deviceName)
initLanArea();
}
m_devList.removeOne(deviceName);
if (m_enableDeviceList.contains(deviceName)) {
m_enableDeviceList.removeOne(deviceName);
}
@ -677,6 +713,8 @@ void LanPage::initUI()
m_inactivatedLanListWidget->setSpacing(LAN_LIST_SPACING);
m_inactivatedLanListWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
// m_inactivatedLanListWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //用了listwidget的滚动条
// m_inactivatedLanListWidget->setSortingEnabled(true);
// m_inactivatedLanListWidget->sortItems(Qt::AscendingOrder);
inactiveLanListLayout->addWidget(m_inactivatedLanListWidget);
m_settingsLabel->installEventFilter(this);
@ -686,7 +724,8 @@ QListWidgetItem *LanPage::addNewItem(KyConnectItem *itemData, QListWidget *listW
{
QListWidgetItem *p_listWidgetItem = new QListWidgetItem();
p_listWidgetItem->setSizeHint(QSize(listWidget->width(),ITEM_HEIGHT));
listWidget->insertItem(0, p_listWidgetItem);
// listWidget->insertItem(0, p_listWidgetItem);
listWidget->addItem(p_listWidgetItem);
LanListItem *p_lanItem = nullptr;
if (itemData != nullptr) {
@ -730,6 +769,7 @@ void LanPage::updateActivatedConnectionArea(QString uuid)
qDebug()<<"[LanPage]update active connection item"<<p_newItem->m_connectName;
QListWidgetItem *p_listWidgetItem = addNewItem(p_newItem, m_activatedLanListWidget);
m_activeMap.insert(p_newItem, p_listWidgetItem);
this->showDesktopNotify(tr("LAN Connected Successfully"));
} else {
//释放内存
delete p_newItem;
@ -766,6 +806,7 @@ void LanPage::updateConnectionArea(QString uuid)
qDebug()<<"[LanPage] update connection item"<<p_newItem->m_connectName;
QListWidgetItem *p_listWidgetItem = addNewItem(p_newItem, m_inactivatedLanListWidget);
m_deactiveMap.insert(p_newItem, p_listWidgetItem);
this->showDesktopNotify(tr("LAN Disconnected Successfully"));
} else {
delete p_newItem;
p_newItem = nullptr;
@ -780,6 +821,7 @@ void LanPage::onUpdateLanlist(QString uuid,
{
//lanpage函数内持续监听连接状态的变化并记录供其他函数调用获取状态
if (!m_connectResourse->isWiredConnection(uuid)) {
qDebug() << "[LanPage] connection state change signal but not wired";
return;
}

View File

@ -41,6 +41,7 @@ private:
void initUI();
void initLanArea();
void initNetSwitch();
void initLanDeviceState();
void initDeviceCombox();
void updateDeviceCombox(QString oldDeviceName, QString newDeviceName);
@ -48,6 +49,8 @@ private:
void addDeviceForCombox(QString deviceName);
QListWidgetItem *addNewItem(KyConnectItem *itemData, QListWidget *listWidget);
bool removeConnectionItem(QMap<KyConnectItem *, QListWidgetItem *> &connectMap,
QListWidget *lanListWidget, QString path);
void getEnabledDevice(QStringList &enableDeviceList);
void getDisabledDevices(QStringList &disableDeviceList);
@ -118,6 +121,7 @@ private:
QGSettings *m_switchGsettings = nullptr;
bool m_wiredSwitch = true;
QMap<QString, bool> m_deviceStateMap;
};
#endif // LANPAGE_H

Binary file not shown.

View File

@ -35,47 +35,47 @@
<context>
<name>CreatNetPage</name>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="30"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="30"/>
<source>Connection Name</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="31"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="31"/>
<source>Ipv4Config</source>
<translation>Ipv4配置</translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="32"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="32"/>
<source>Address</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="33"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="33"/>
<source>Netmask</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="34"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="34"/>
<source>Default Gateway</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="35"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="35"/>
<source>Prefs DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="36"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="36"/>
<source>Alternative DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="47"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="47"/>
<source>Auto(DHCP)</source>
<translation>(DHCP)</translation>
</message>
<message>
<location filename="frontend/netdetails/creatnetpage.cpp" line="48"/>
<location filename="../src/frontend/netdetails/creatnetpage.cpp" line="48"/>
<source>Manual</source>
<translation></translation>
</message>
@ -83,57 +83,62 @@
<context>
<name>DetailPage</name>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="141"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="159"/>
<source>Auto Connection</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="150"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="117"/>
<source>SSID:</source>
<translation>SSID</translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="151"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="114"/>
<source>Please input SSID:</source>
<translation>SSID:</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="121"/>
<source>Protocol:</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="153"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="125"/>
<source>Security Type:</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="154"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="129"/>
<source>Hz:</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="155"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="133"/>
<source>Chan:</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="157"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="137"/>
<source>BandWidth:</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="158"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="149"/>
<source>IPV6:</source>
<translation>IPV6地址</translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="159"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="141"/>
<source>IPV4:</source>
<translation>IPV4地址</translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="160"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="145"/>
<source>IPV4 Dns:</source>
<translation>IPV4 DNS服务器</translation>
</message>
<message>
<location filename="frontend/netdetails/detailpage.cpp" line="161"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="153"/>
<source>Mac:</source>
<translation></translation>
</message>
@ -371,22 +376,22 @@
<context>
<name>EnterpriseWlanDialog</name>
<message>
<location filename="frontend/enterprise-wlan/enterprisewlandialog.cpp" line="58"/>
<location filename="../src/frontend/enterprise-wlan/enterprisewlandialog.cpp" line="58"/>
<source>Connect Enterprise WLAN</source>
<translation></translation>
</message>
<message>
<location filename="frontend/enterprise-wlan/enterprisewlandialog.cpp" line="61"/>
<location filename="../src/frontend/enterprise-wlan/enterprisewlandialog.cpp" line="61"/>
<source>Close</source>
<translation></translation>
</message>
<message>
<location filename="frontend/enterprise-wlan/enterprisewlandialog.cpp" line="92"/>
<location filename="../src/frontend/enterprise-wlan/enterprisewlandialog.cpp" line="92"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="frontend/enterprise-wlan/enterprisewlandialog.cpp" line="93"/>
<location filename="../src/frontend/enterprise-wlan/enterprisewlandialog.cpp" line="93"/>
<source>Connect</source>
<translation></translation>
</message>
@ -394,42 +399,42 @@
<context>
<name>Ipv4Page</name>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="25"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="26"/>
<source>Ipv4Config</source>
<translation>Ipv4配置</translation>
</message>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="26"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="27"/>
<source>Address</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="27"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="28"/>
<source>Netmask</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="28"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="29"/>
<source>Default Gateway</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="29"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="30"/>
<source>Prefs DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="30"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="31"/>
<source>Alternative DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="40"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="41"/>
<source>Auto(DHCP)</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv4page.cpp" line="41"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="42"/>
<source>Manual</source>
<translation></translation>
</message>
@ -437,42 +442,42 @@
<context>
<name>Ipv6Page</name>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="103"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="108"/>
<source>Ipv6Config</source>
<translation>Ipv6配置</translation>
</message>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="104"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="109"/>
<source>Address</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="105"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="110"/>
<source>Subnet prefix Length</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="106"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="111"/>
<source>Default Gateway</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="107"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="112"/>
<source>Prefs DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="108"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="113"/>
<source>Alternative DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="119"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="124"/>
<source>Auto(DHCP)</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/ipv6page.cpp" line="120"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="125"/>
<source>Manual</source>
<translation></translation>
</message>
@ -480,12 +485,12 @@
<context>
<name>LanListItem</name>
<message>
<location filename="frontend/list-items/lanlistitem.cpp" line="36"/>
<location filename="../src/frontend/list-items/lanlistitem.cpp" line="36"/>
<source>Not connected</source>
<translation></translation>
</message>
<message>
<location filename="frontend/list-items/lanlistitem.cpp" line="67"/>
<location filename="../src/frontend/list-items/lanlistitem.cpp" line="67"/>
<source>Wired Device not carried</source>
<translation>线</translation>
</message>
@ -493,27 +498,32 @@
<context>
<name>LanPage</name>
<message>
<location filename="frontend/tab-pages/lanpage.cpp" line="652"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="161"/>
<source>No ethernet device avaliable</source>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="689"/>
<source>LAN</source>
<translation>线</translation>
</message>
<message>
<location filename="frontend/tab-pages/lanpage.cpp" line="655"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="692"/>
<source>Activated LAN</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/lanpage.cpp" line="663"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="700"/>
<source>Inactivated LAN</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/lanpage.cpp" line="795"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="809"/>
<source>LAN Disconnected Successfully</source>
<translation>线</translation>
</message>
<message>
<location filename="frontend/tab-pages/lanpage.cpp" line="790"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="772"/>
<source>LAN Connected Successfully</source>
<translation>线</translation>
</message>
@ -521,12 +531,12 @@
<context>
<name>ListItem</name>
<message>
<location filename="frontend/list-items/listitem.cpp" line="55"/>
<location filename="../src/frontend/list-items/listitem.cpp" line="57"/>
<source>Kylin NM</source>
<translation></translation>
</message>
<message>
<location filename="frontend/list-items/listitem.cpp" line="58"/>
<location filename="../src/frontend/list-items/listitem.cpp" line="60"/>
<source>kylin network applet desktop message</source>
<translation></translation>
</message>
@ -534,30 +544,30 @@
<context>
<name>MainWindow</name>
<message>
<location filename="frontend/mainwindow.cpp" line="101"/>
<location filename="frontend/mainwindow.cpp" line="148"/>
<location filename="../src/frontend/mainwindow.cpp" line="113"/>
<location filename="../src/frontend/mainwindow.cpp" line="160"/>
<source>kylin-nm</source>
<translation></translation>
</message>
<message>
<location filename="frontend/mainwindow.cpp" line="129"/>
<location filename="../src/frontend/mainwindow.cpp" line="141"/>
<source>LAN</source>
<translatorcomment>线</translatorcomment>
<translation>线</translation>
</message>
<message>
<location filename="frontend/mainwindow.cpp" line="131"/>
<location filename="../src/frontend/mainwindow.cpp" line="143"/>
<source>WLAN</source>
<translatorcomment>线</translatorcomment>
<translation>线</translation>
</message>
<message>
<location filename="frontend/mainwindow.cpp" line="145"/>
<location filename="../src/frontend/mainwindow.cpp" line="157"/>
<source>Show MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="frontend/mainwindow.cpp" line="146"/>
<location filename="../src/frontend/mainwindow.cpp" line="158"/>
<source>Settings</source>
<translatorcomment></translatorcomment>
<translation></translation>
@ -566,94 +576,94 @@
<context>
<name>NetDetail</name>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="30"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="30"/>
<source>Kylin NM</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="33"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="33"/>
<source>kylin network desktop message</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="153"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="174"/>
<source>Detail</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="158"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="179"/>
<source>Ipv4</source>
<translation>Ipv4</translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="162"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="183"/>
<source>Ipv6</source>
<translation>Ipv6</translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="166"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="187"/>
<source>Security</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="186"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="207"/>
<source>Close</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="193"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="214"/>
<source>Confirm</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="196"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="217"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="199"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="220"/>
<source>Forget this network</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="238"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="263"/>
<source>Add Lan Connect</source>
<translation>线</translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="247"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="272"/>
<source>connect hiddin wlan</source>
<translation>WLAN</translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="507"/>
<location filename="frontend/netdetails/netdetail.cpp" line="508"/>
<location filename="frontend/netdetails/netdetail.cpp" line="509"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="530"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="531"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="532"/>
<source>Auto</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="613"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="636"/>
<source>start check ipv4 address conflict</source>
<translation>ipv4地址冲突</translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="630"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="653"/>
<source>start check ipv6 address conflict</source>
<translation>ipv6地址冲突</translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="676"/>
<location filename="frontend/netdetails/netdetail.cpp" line="713"/>
<location filename="frontend/netdetails/netdetail.cpp" line="791"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="699"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="736"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="814"/>
<source>ipv4 address conflict!</source>
<translation>ipv4地址冲突</translation>
</message>
<message>
<location filename="frontend/netdetails/netdetail.cpp" line="721"/>
<location filename="frontend/netdetails/netdetail.cpp" line="799"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="744"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="822"/>
<source>ipv6 address conflict!</source>
<translation>ipv4地址冲突</translation>
<translation>ipv6地址冲突</translation>
</message>
</context>
<context>
@ -674,7 +684,7 @@
<context>
<name>OneConnForm</name>
<message>
<location filename="frontend/list-items/oneconnform.ui" line="14"/>
<location filename="../src/frontend/list-items/oneconnform.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
@ -702,7 +712,7 @@
<context>
<name>OneLancForm</name>
<message>
<location filename="frontend/list-items/onelancform.ui" line="14"/>
<location filename="../src/frontend/list-items/onelancform.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
@ -726,63 +736,63 @@
<context>
<name>SecurityPage</name>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="71"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="71"/>
<source>Security</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="72"/>
<location filename="frontend/netdetails/securitypage.cpp" line="87"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="72"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="87"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="74"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="74"/>
<source>EAP type</source>
<translation>EAP方法</translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="76"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="76"/>
<source>Identity</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="77"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="77"/>
<source>Domain</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="78"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="78"/>
<source>CA certficate</source>
<translation>CA </translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="79"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="79"/>
<source>no need for CA certificate</source>
<translation>CA证书</translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="80"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="80"/>
<source>User certificate</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="81"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="81"/>
<source>User private key</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="82"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="82"/>
<source>User key password</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="85"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="85"/>
<source>Ineer authentication</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="86"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="86"/>
<source>Usename</source>
<translation></translation>
</message>
@ -792,54 +802,54 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="88"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="88"/>
<source>Ask pwd each query</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="90"/>
<location filename="frontend/netdetails/securitypage.cpp" line="100"/>
<location filename="frontend/netdetails/securitypage.cpp" line="103"/>
<location filename="frontend/netdetails/securitypage.cpp" line="106"/>
<location filename="frontend/netdetails/securitypage.cpp" line="726"/>
<location filename="frontend/netdetails/securitypage.cpp" line="748"/>
<location filename="frontend/netdetails/securitypage.cpp" line="771"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="90"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="100"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="103"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="106"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="747"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="769"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="792"/>
<source>None</source>
<translation></translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="91"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="91"/>
<source>WPA&amp;WPA2 Personal</source>
<translation>WPA&amp;WPA2 </translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="92"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="92"/>
<source>WPA&amp;WPA2 Enterprise</source>
<translation>WPA&amp;WPA2 </translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="93"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="93"/>
<source>WPA3 Personal</source>
<translation>WPA3 </translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="101"/>
<location filename="frontend/netdetails/securitypage.cpp" line="104"/>
<location filename="frontend/netdetails/securitypage.cpp" line="107"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="101"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="104"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="107"/>
<source>Choose from file...</source>
<translation>...</translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="716"/>
<location filename="frontend/netdetails/securitypage.cpp" line="739"/>
<location filename="frontend/netdetails/securitypage.cpp" line="761"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="737"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="760"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="782"/>
<source>Choose a CA certificate</source>
<translation>CA证书</translation>
</message>
<message>
<location filename="frontend/netdetails/securitypage.cpp" line="717"/>
<location filename="frontend/netdetails/securitypage.cpp" line="740"/>
<location filename="frontend/netdetails/securitypage.cpp" line="762"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="738"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="761"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="783"/>
<source>CA Files (*.pem *.der *.p12 *.crt *.cer *.pfx)</source>
<translation>CA (*.pem *.der *.p12 *.crt *.cer *.pfx)</translation>
</message>
@ -847,27 +857,27 @@
<context>
<name>TabPage</name>
<message>
<location filename="frontend/tab-pages/tabpage.cpp" line="43"/>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="43"/>
<source>Current Device</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/tabpage.cpp" line="47"/>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="47"/>
<source>Devices Closed!</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/tabpage.cpp" line="85"/>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="85"/>
<source>Settings</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/tabpage.cpp" line="120"/>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="120"/>
<source>Kylin NM</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/tabpage.cpp" line="123"/>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="123"/>
<source>kylin network applet desktop message</source>
<translation></translation>
</message>
@ -875,42 +885,42 @@
<context>
<name>WiFiConfigDialog</name>
<message>
<location filename="frontend/wificonfigdialog.ui" line="14"/>
<location filename="../src/frontend/wificonfigdialog.ui" line="14"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="frontend/wificonfigdialog.cpp" line="21"/>
<location filename="../src/frontend/wificonfigdialog.cpp" line="21"/>
<source>WLAN Authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="frontend/wificonfigdialog.cpp" line="32"/>
<location filename="../src/frontend/wificonfigdialog.cpp" line="32"/>
<source>Input WLAN Information Please</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="frontend/wificonfigdialog.cpp" line="33"/>
<location filename="../src/frontend/wificonfigdialog.cpp" line="33"/>
<source>WLAN ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="frontend/wificonfigdialog.cpp" line="34"/>
<location filename="../src/frontend/wificonfigdialog.cpp" line="34"/>
<source>WLAN Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="frontend/wificonfigdialog.cpp" line="35"/>
<location filename="../src/frontend/wificonfigdialog.cpp" line="35"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="frontend/wificonfigdialog.cpp" line="36"/>
<location filename="../src/frontend/wificonfigdialog.cpp" line="36"/>
<source>Cancl</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="frontend/wificonfigdialog.cpp" line="37"/>
<location filename="../src/frontend/wificonfigdialog.cpp" line="37"/>
<source>Ok</source>
<translation type="unfinished"></translation>
</message>
@ -918,31 +928,31 @@
<context>
<name>WlanListItem</name>
<message>
<location filename="frontend/list-items/wlanlistitem.cpp" line="23"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="23"/>
<source>Not connected</source>
<translation></translation>
</message>
<message>
<location filename="frontend/list-items/wlanlistitem.cpp" line="102"/>
<location filename="frontend/list-items/wlanlistitem.cpp" line="441"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="108"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="453"/>
<source>Disconnect</source>
<translation></translation>
</message>
<message>
<location filename="frontend/list-items/wlanlistitem.cpp" line="104"/>
<location filename="frontend/list-items/wlanlistitem.cpp" line="170"/>
<location filename="frontend/list-items/wlanlistitem.cpp" line="441"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="110"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="176"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="453"/>
<source>Connect</source>
<translation></translation>
</message>
<message>
<location filename="frontend/list-items/wlanlistitem.cpp" line="107"/>
<location filename="frontend/list-items/wlanlistitem.cpp" line="443"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="113"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="455"/>
<source>Forget</source>
<translation></translation>
</message>
<message>
<location filename="frontend/list-items/wlanlistitem.cpp" line="186"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="192"/>
<source>Auto Connect</source>
<translation></translation>
</message>
@ -950,32 +960,32 @@
<context>
<name>WlanPage</name>
<message>
<location filename="frontend/tab-pages/wlanpage.cpp" line="63"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="63"/>
<source>WLAN</source>
<translation>线</translation>
</message>
<message>
<location filename="frontend/tab-pages/wlanpage.cpp" line="64"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="64"/>
<source>Activated WLAN</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/wlanpage.cpp" line="65"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="65"/>
<source>Other WLAN</source>
<translation></translation>
</message>
<message>
<location filename="frontend/tab-pages/wlanpage.cpp" line="87"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="87"/>
<source>More...</source>
<translation>...</translation>
</message>
<message>
<location filename="frontend/tab-pages/wlanpage.cpp" line="510"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="517"/>
<source>WLAN Connected Successfully</source>
<translation>线</translation>
</message>
<message>
<location filename="frontend/tab-pages/wlanpage.cpp" line="520"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="527"/>
<source>WLAN Disconnected Successfully</source>
<translation>线</translation>
</message>