Merge branch 'dbus-interface' of http://gitlab2.kylin.com/kylin-desktop/kylin-nm into plugin-ui

This commit is contained in:
zhangyuanyuan1 2022-06-30 15:16:33 +08:00
commit b490f07c5a
18 changed files with 609 additions and 275 deletions

View File

@ -1,5 +1,6 @@
#include "mobilehotspotwidget.h"
#include <QDebug>
#include <QFormLayout>
#define LABEL_RECT 17, 0, 105, 23
#define CONTENTS_MARGINS 0, 0, 0, 0
@ -7,11 +8,16 @@
#define FRAME_MIN_SIZE 550, 60
#define FRAME_MAX_SIZE 16777215, 16777215
#define CONTECT_FRAME_MAX_SIZE 16777215, 60
#define HINT_TEXT_MARGINS 8, 0, 0, 0
#define FRAME_MIN_SIZE 550, 60
#define LABLE_MIN_WIDTH 188
#define COMBOBOX_MIN_WIDTH 200
#define LINE_MAX_SIZE 16777215, 1
#define LINE_MIN_SIZE 0, 1
#define ICON_SIZE 24,24
#define PASSWORD_FRAME_MIN_SIZE 550, 86
#define PASSWORD_FRAME_MAX_SIZE 16777215, 86
#define PASSWORD_ITEM_MARGINS 16, 12, 16, 14
#define WIRELESS 1
@ -84,8 +90,9 @@ bool MobileHotspotWidget::eventFilter(QObject *watched, QEvent *event)
return true;
}
if (event->type() == QEvent::MouseButtonRelease) {
if (watched == m_switchBtn) {
if (watched == m_switchBtn) {
if (event->type() == QEvent::MouseButtonRelease) {
if (!m_interface->isValid()) {
return true;
}
@ -112,10 +119,10 @@ bool MobileHotspotWidget::eventFilter(QObject *watched, QEvent *event)
}
showDesktopNotify(tr("start to open hotspot ") + m_apNameLine->text());
QDBusReply<void> reply = m_interface->call("activeWirelessAp",
m_apNameLine->text(),
m_pwdNameLine->text(),
m_freqBandComboBox->currentText(),
m_interfaceComboBox->currentText());
m_apNameLine->text(),
m_pwdNameLine->text(),
m_freqBandComboBox->currentText(),
m_interfaceComboBox->currentText());
if (!reply.isValid()) {
qDebug() << "[MobileHotspotWidget] call deactiveWirelessAp failed ";
return true;
@ -123,6 +130,12 @@ bool MobileHotspotWidget::eventFilter(QObject *watched, QEvent *event)
}
return true;
}
} else if (watched == m_pwdNameLine) {
if (m_pwdNameLine->text().length() < 8) {
m_pwdHintLabel->setText(tr("Contains at least 8 characters")); //至少包含8个字符
} else {
m_pwdHintLabel->clear();
}
}
return QWidget::eventFilter(watched, event);
}
@ -394,22 +407,35 @@ void MobileHotspotWidget::setPasswordFrame()
/* Password */
m_passwordFrame = new QFrame(this);
m_passwordFrame->setFrameShape(QFrame::Shape::NoFrame);
m_passwordFrame->setMinimumSize(FRAME_MIN_SIZE);
m_passwordFrame->setMaximumSize(CONTECT_FRAME_MAX_SIZE);
QHBoxLayout *passwordHLayout = new QHBoxLayout();
m_passwordFrame->setMinimumSize(PASSWORD_FRAME_MIN_SIZE);
m_passwordFrame->setMaximumSize(PASSWORD_FRAME_MAX_SIZE);
m_pwdLabel = new QLabel(tr("Password"), this);
m_pwdLabel->setMinimumWidth(LABLE_MIN_WIDTH);
m_pwdNameLine = new KPasswordEdit(this);
m_pwdNameLine->setClearButtonEnabled(false);//禁用ClearBtn按钮X
m_pwdNameLine->setMinimumWidth(COMBOBOX_MIN_WIDTH);
passwordHLayout->setContentsMargins(ITEM_MARGINS);
passwordHLayout->setSpacing(0);
passwordHLayout->addWidget(m_pwdLabel);
passwordHLayout->addWidget(m_pwdNameLine);
m_pwdHintLabel= new QLabel(this);
m_pwdHintLabel->setFixedHeight(20);
m_pwdHintLabel->setContentsMargins(HINT_TEXT_MARGINS);
m_passwordFrame->setLayout(passwordHLayout);
QPalette hintTextColor;
hintTextColor.setColor(QPalette::WindowText, Qt::red);
m_pwdHintLabel->setPalette(hintTextColor);
QWidget *pwdInputWidget = new QWidget(this);
QVBoxLayout *pwdInputVLayout = new QVBoxLayout(pwdInputWidget);
pwdInputVLayout->setContentsMargins(CONTENTS_MARGINS);
pwdInputVLayout->setSpacing(0);
pwdInputVLayout->addWidget(m_pwdNameLine);
pwdInputVLayout->addWidget(m_pwdHintLabel);
QFormLayout *pwdLayout = new QFormLayout(m_passwordFrame);
pwdLayout->setContentsMargins(PASSWORD_ITEM_MARGINS);
pwdLayout->setSpacing(0);
pwdLayout->addRow(m_pwdLabel, pwdInputWidget);
m_pwdNameLine->installEventFilter(this);
}
void MobileHotspotWidget::setFreqBandFrame()

View File

@ -46,6 +46,7 @@ private:
QLabel *m_switchLabel;
QLabel *m_apNameLabel;
QLabel *m_pwdLabel;
QLabel *m_pwdHintLabel;
QLabel *m_freqBandLabel;
QLabel *m_interfaceLabel;

View File

@ -24,79 +24,84 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="30"/>
<location filename="../mobilehotspotwidget.cpp" line="36"/>
<source>ukui control center</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="33"/>
<location filename="../mobilehotspotwidget.cpp" line="39"/>
<source>ukui control center desktop message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="102"/>
<location filename="../mobilehotspotwidget.cpp" line="100"/>
<source>wirless switch is close or no wireless device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="106"/>
<location filename="../mobilehotspotwidget.cpp" line="104"/>
<source>start to close hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="115"/>
<location filename="../mobilehotspotwidget.cpp" line="113"/>
<source>hotpots name or device is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="119"/>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<source>can not create hotspot with password length less than eight!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="122"/>
<location filename="../mobilehotspotwidget.cpp" line="120"/>
<source>start to open hotspot </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="155"/>
<location filename="../mobilehotspotwidget.cpp" line="135"/>
<source>Contains at least 8 characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="159"/>
<source>Hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="227"/>
<location filename="../mobilehotspotwidget.cpp" line="532"/>
<location filename="../mobilehotspotwidget.cpp" line="231"/>
<location filename="../mobilehotspotwidget.cpp" line="537"/>
<source>hotspot already close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="367"/>
<location filename="../mobilehotspotwidget.cpp" line="371"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="388"/>
<location filename="../mobilehotspotwidget.cpp" line="392"/>
<source>Wi-Fi Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="410"/>
<location filename="../mobilehotspotwidget.cpp" line="413"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="448"/>
<location filename="../mobilehotspotwidget.cpp" line="451"/>
<source>Frequency band</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="473"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Net card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="548"/>
<location filename="../mobilehotspotwidget.cpp" line="556"/>
<location filename="../mobilehotspotwidget.cpp" line="553"/>
<location filename="../mobilehotspotwidget.cpp" line="561"/>
<source>hotspot already open</source>
<translation type="unfinished"></translation>
</message>

View File

@ -24,79 +24,84 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="30"/>
<location filename="../mobilehotspotwidget.cpp" line="36"/>
<source>ukui control center</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="33"/>
<location filename="../mobilehotspotwidget.cpp" line="39"/>
<source>ukui control center desktop message</source>
<translation>ukui </translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="102"/>
<location filename="../mobilehotspotwidget.cpp" line="100"/>
<source>wirless switch is close or no wireless device</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="106"/>
<location filename="../mobilehotspotwidget.cpp" line="104"/>
<source>start to close hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="115"/>
<location filename="../mobilehotspotwidget.cpp" line="113"/>
<source>hotpots name or device is invalid</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="119"/>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<source>can not create hotspot with password length less than eight!</source>
<translation>!</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="122"/>
<location filename="../mobilehotspotwidget.cpp" line="120"/>
<source>start to open hotspot </source>
<translation> </translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="155"/>
<location filename="../mobilehotspotwidget.cpp" line="135"/>
<source>Contains at least 8 characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="159"/>
<source>Hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="227"/>
<location filename="../mobilehotspotwidget.cpp" line="532"/>
<location filename="../mobilehotspotwidget.cpp" line="231"/>
<location filename="../mobilehotspotwidget.cpp" line="537"/>
<source>hotspot already close</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="367"/>
<location filename="../mobilehotspotwidget.cpp" line="371"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="388"/>
<location filename="../mobilehotspotwidget.cpp" line="392"/>
<source>Wi-Fi Name</source>
<translation>Wi-Fiཡི</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="410"/>
<location filename="../mobilehotspotwidget.cpp" line="413"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="448"/>
<location filename="../mobilehotspotwidget.cpp" line="451"/>
<source>Frequency band</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="473"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Net card</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="548"/>
<location filename="../mobilehotspotwidget.cpp" line="556"/>
<location filename="../mobilehotspotwidget.cpp" line="553"/>
<location filename="../mobilehotspotwidget.cpp" line="561"/>
<source>hotspot already open</source>
<translation></translation>
</message>

View File

@ -24,79 +24,84 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="30"/>
<location filename="../mobilehotspotwidget.cpp" line="36"/>
<source>ukui control center</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="33"/>
<location filename="../mobilehotspotwidget.cpp" line="39"/>
<source>ukui control center desktop message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="102"/>
<location filename="../mobilehotspotwidget.cpp" line="100"/>
<source>wirless switch is close or no wireless device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="106"/>
<location filename="../mobilehotspotwidget.cpp" line="104"/>
<source>start to close hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="115"/>
<location filename="../mobilehotspotwidget.cpp" line="113"/>
<source>hotpots name or device is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="119"/>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<source>can not create hotspot with password length less than eight!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="122"/>
<location filename="../mobilehotspotwidget.cpp" line="120"/>
<source>start to open hotspot </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="155"/>
<location filename="../mobilehotspotwidget.cpp" line="135"/>
<source>Contains at least 8 characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="159"/>
<source>Hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="227"/>
<location filename="../mobilehotspotwidget.cpp" line="532"/>
<location filename="../mobilehotspotwidget.cpp" line="231"/>
<location filename="../mobilehotspotwidget.cpp" line="537"/>
<source>hotspot already close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="367"/>
<location filename="../mobilehotspotwidget.cpp" line="371"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="388"/>
<location filename="../mobilehotspotwidget.cpp" line="392"/>
<source>Wi-Fi Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="410"/>
<location filename="../mobilehotspotwidget.cpp" line="413"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="448"/>
<location filename="../mobilehotspotwidget.cpp" line="451"/>
<source>Frequency band</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="473"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Net card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="548"/>
<location filename="../mobilehotspotwidget.cpp" line="556"/>
<location filename="../mobilehotspotwidget.cpp" line="553"/>
<location filename="../mobilehotspotwidget.cpp" line="561"/>
<source>hotspot already open</source>
<translation type="unfinished"></translation>
</message>

View File

@ -24,79 +24,84 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="30"/>
<location filename="../mobilehotspotwidget.cpp" line="36"/>
<source>ukui control center</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="33"/>
<location filename="../mobilehotspotwidget.cpp" line="39"/>
<source>ukui control center desktop message</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="102"/>
<location filename="../mobilehotspotwidget.cpp" line="100"/>
<source>wirless switch is close or no wireless device</source>
<translation>线线</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="106"/>
<location filename="../mobilehotspotwidget.cpp" line="104"/>
<source>start to close hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="115"/>
<location filename="../mobilehotspotwidget.cpp" line="113"/>
<source>hotpots name or device is invalid</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="119"/>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<source>can not create hotspot with password length less than eight!</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="122"/>
<location filename="../mobilehotspotwidget.cpp" line="120"/>
<source>start to open hotspot </source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="155"/>
<location filename="../mobilehotspotwidget.cpp" line="135"/>
<source>Contains at least 8 characters</source>
<translation>8</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="159"/>
<source>Hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="227"/>
<location filename="../mobilehotspotwidget.cpp" line="532"/>
<location filename="../mobilehotspotwidget.cpp" line="231"/>
<location filename="../mobilehotspotwidget.cpp" line="537"/>
<source>hotspot already close</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="367"/>
<location filename="../mobilehotspotwidget.cpp" line="371"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="388"/>
<location filename="../mobilehotspotwidget.cpp" line="392"/>
<source>Wi-Fi Name</source>
<translation>Wi-Fi名称</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="410"/>
<location filename="../mobilehotspotwidget.cpp" line="413"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="448"/>
<location filename="../mobilehotspotwidget.cpp" line="451"/>
<source>Frequency band</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="473"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Net card</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="548"/>
<location filename="../mobilehotspotwidget.cpp" line="556"/>
<location filename="../mobilehotspotwidget.cpp" line="553"/>
<location filename="../mobilehotspotwidget.cpp" line="561"/>
<source>hotspot already open</source>
<translation></translation>
</message>

View File

@ -10,7 +10,7 @@ extern void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int tran
DetailPage::DetailPage(bool isWlan, bool isCreate, QWidget *parent)
: m_IsWlan(isWlan), m_IsCreate(isCreate), QFrame(parent)
{
this->setFrameShape(QFrame::Shape::StyledPanel);
// this->setFrameShape(QFrame::Shape::StyledPanel);
this->setMaximumWidth(960);
initUI();
if (isCreate) {
@ -133,27 +133,29 @@ QPalette DetailPage::getTheme()
{
//获取当前主题的颜色
QPalette pal = qApp->palette();
QGSettings * styleGsettings = nullptr;
const QByteArray style_id(THEME_SCHAME);
if (QGSettings::isSchemaInstalled(style_id)) {
styleGsettings = new QGSettings(style_id);
QString currentTheme = styleGsettings->get(COLOR_THEME).toString();
if(currentTheme == "ukui-default"){
pal = lightPalette(this);
}
}
if (styleGsettings != nullptr) {
delete styleGsettings;
styleGsettings = nullptr;
}
// QGSettings * styleGsettings = nullptr;
// const QByteArray style_id(THEME_SCHAME);
// if (QGSettings::isSchemaInstalled(style_id)) {
// styleGsettings = new QGSettings(style_id);
// QString currentTheme = styleGsettings->get(COLOR_THEME).toString();
// if(currentTheme == "ukui-default"){
// pal = lightPalette(this);
// }
// }
// if (styleGsettings != nullptr) {
// delete styleGsettings;
// styleGsettings = nullptr;
// }
return pal;
}
void DetailPage::initUI() {
m_layout = new QVBoxLayout(this);
m_layout->setContentsMargins(0,0,0,0);
m_layout->setSpacing(0);
QWidget *mDetailFrame = new QFrame(this);
mDetailFrame->setFixedHeight(362);
m_DetailLayout = new QVBoxLayout(mDetailFrame);
m_DetailLayout->setContentsMargins(0,0,0,0);
@ -163,6 +165,8 @@ void DetailPage::initUI() {
m_listWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus);
m_DetailLayout->addWidget(m_listWidget);
m_listWidget->setFrameShape(QFrame::Shape::StyledPanel);
if (!m_IsCreate) {
m_SSIDLabel = new QLabel(this);
m_SSIDLabel->adjustSize();
@ -241,7 +245,9 @@ void DetailPage::initUI() {
m_forgetNetBox = new QCheckBox(this);
m_autoConnect->setText(tr("Auto Connection"));
m_AutoLayout = new QHBoxLayout(this);
m_autoConWidget = new QWidget(this);
m_AutoLayout = new QHBoxLayout(m_autoConWidget);
QSpacerItem *horizontalSpacer;
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
@ -273,8 +279,10 @@ void DetailPage::initUI() {
m_layout->addWidget(mDetailFrame);
if (m_IsWlan) {
m_layout->addLayout(m_AutoLayout);
// m_layout->addLayout(m_AutoLayout);
m_layout->addWidget(m_autoConWidget);
}
m_layout->addStretch();
}
void DetailPage::setEnableOfSaveBtn() {

View File

@ -87,6 +87,8 @@ private:
bool m_IsWlan;
bool m_IsCreate;
QWidget *m_autoConWidget;
QString m_formerSSID;
QString m_formerIPV6;

View File

@ -2,12 +2,32 @@
#include "netdetail.h"
#include "math.h"
#define LAYOUT_MARGINS 0,0,0,0
#define LAYOUT_SPACING 0
#define HINT_TEXT_MARGINS 8, 1, 0, 3
#define LABEL_HEIGHT 24
Ipv4Page::Ipv4Page(QWidget *parent):QFrame(parent)
{
initUI();
initComponent();
}
bool Ipv4Page::eventFilter(QObject *w, QEvent *e)
{
if (w == ipv4addressEdit) {
if (ipv4addressEdit->text().isEmpty() || getTextEditState(ipv4addressEdit->text())) {
m_addressHintLabel->clear();
}
} else if (w == netMaskEdit) {
if (netMaskEdit->text().isEmpty() || netMaskIsValide(netMaskEdit->text())) {
m_maskHintLabel->clear();
}
}
return QObject::eventFilter(w,e);
}
void Ipv4Page::initUI() {
ipv4ConfigCombox = new QComboBox(this);
ipv4addressEdit = new LineEdit(this);
@ -23,6 +43,24 @@ void Ipv4Page::initUI() {
m_dnsLabel = new QLabel(this);
m_secDnsLabel = new QLabel(this);
m_configEmptyLabel = new QLabel(this);
m_configEmptyLabel->setFixedHeight(LABEL_HEIGHT);
m_addressHintLabel = new QLabel(this);
m_addressHintLabel->setFixedHeight(LABEL_HEIGHT);
m_addressHintLabel->setContentsMargins(HINT_TEXT_MARGINS);
m_maskHintLabel = new QLabel(this);
m_maskHintLabel->setFixedHeight(LABEL_HEIGHT);
m_maskHintLabel->setContentsMargins(HINT_TEXT_MARGINS);
m_gateWayEmptyLabel = new QLabel(this);
m_gateWayEmptyLabel->setFixedHeight(LABEL_HEIGHT);
m_firstDnsEmptyLabel = new QLabel(this);
m_firstDnsEmptyLabel->setFixedHeight(LABEL_HEIGHT);
m_configLabel->setText(tr("Ipv4Config"));
m_addressLabel->setText(tr("Address"));
m_maskLabel->setText(tr("Netmask"));
@ -30,12 +68,36 @@ void Ipv4Page::initUI() {
m_dnsLabel->setText(tr("Prefs DNS"));
m_secDnsLabel->setText(tr("Alternative DNS"));
QPalette hintTextColor;
hintTextColor.setColor(QPalette::WindowText, Qt::red);
m_addressHintLabel->setPalette(hintTextColor);
m_maskHintLabel->setPalette(hintTextColor);
QWidget *addressWidget = new QWidget(this);
QVBoxLayout *addressLayout = new QVBoxLayout(addressWidget);
addressLayout->setContentsMargins(LAYOUT_MARGINS);
addressLayout->setSpacing(LAYOUT_SPACING);
addressLayout->addWidget(ipv4addressEdit);
addressLayout->addWidget(m_addressHintLabel);
QWidget *maskWidget = new QWidget(this);
QVBoxLayout *maskLayout = new QVBoxLayout(maskWidget);
maskLayout->setContentsMargins(LAYOUT_MARGINS);
maskLayout->setSpacing(LAYOUT_SPACING);
maskLayout->addWidget(netMaskEdit);
maskLayout->addWidget(m_maskHintLabel);
m_detailLayout = new QFormLayout(this);
m_detailLayout->setVerticalSpacing(0);
m_detailLayout->setContentsMargins(LAYOUT_MARGINS);
m_detailLayout->addRow(m_configLabel,ipv4ConfigCombox);
m_detailLayout->addRow(m_addressLabel,ipv4addressEdit);
m_detailLayout->addRow(m_maskLabel,netMaskEdit);
m_detailLayout->addRow(m_configEmptyLabel);
m_detailLayout->addRow(m_addressLabel,addressWidget);
m_detailLayout->addRow(m_maskLabel,maskWidget);
m_detailLayout->addRow(m_gateWayLabel,gateWayEdit);
m_detailLayout->addRow(m_gateWayEmptyLabel);
m_detailLayout->addRow(m_dnsLabel,firstDnsEdit);
m_detailLayout->addRow(m_firstDnsEmptyLabel);
m_detailLayout->addRow(m_secDnsLabel,secondDnsEdit);
ipv4ConfigCombox->addItem(tr("Auto(DHCP)")); //"自动(DHCP)"
@ -57,6 +119,9 @@ void Ipv4Page::initUI() {
netMaskEdit->setValidator(new QRegExpValidator(rx, this));
firstDnsEdit->setValidator(new QRegExpValidator(rx, this));
secondDnsEdit->setValidator(new QRegExpValidator(rx, this));
ipv4addressEdit->installEventFilter(this);
netMaskEdit->installEventFilter(this);
}
void Ipv4Page::initComponent() {
@ -166,13 +231,23 @@ bool Ipv4Page::checkConnectBtnIsEnabled()
if (ipv4ConfigCombox->currentIndex() == AUTO_CONFIG) {
return true;
} else {
if (ipv4addressEdit->text().isEmpty() || !getTextEditState(ipv4addressEdit->text())) {
qDebug() << "ipv4address empty or invalid";
if (ipv4addressEdit->text().isEmpty()) {
qDebug() << "ipv4address empty";
return false;
}
if (!getTextEditState(ipv4addressEdit->text())) {
m_addressHintLabel->setText(tr("Invalid address"));
qDebug() << "ipv4address invalid";
return false;
}
if (netMaskEdit->text().isEmpty() || !netMaskIsValide(netMaskEdit->text())) {
qDebug() << "ipv4 netMask empty or invalid";
if (netMaskEdit->text().isEmpty()) {
qDebug() << "ipv4 netMask empty";
return false;
}
if (!netMaskIsValide(netMaskEdit->text())) {
m_maskHintLabel->setText(tr("Invalid subnet mask"));
qDebug() << "ipv4 netMask invalid";
return false;
}
@ -210,19 +285,26 @@ void Ipv4Page::configChanged(int index) {
void Ipv4Page::setLineEnabled(bool check) {
ipv4addressEdit->setEnabled(check);
netMaskEdit->setEnabled(check);
gateWayEdit->setEnabled(check);
firstDnsEdit->setEnabled(check);
secondDnsEdit->setEnabled(check);
if (!check) {
ipv4addressEdit->clear();
netMaskEdit->clear();
gateWayEdit->clear();
firstDnsEdit->clear();
secondDnsEdit->clear();
ipv4addressEdit->setPlaceholderText(" ");
netMaskEdit->setPlaceholderText(" ");
} else {
ipv4addressEdit->setPlaceholderText(tr("Required")); //必填
netMaskEdit->setPlaceholderText(tr("Required")); //必填
}
ipv4addressEdit->setEnabled(check);
netMaskEdit->setEnabled(check);
gateWayEdit->setEnabled(check);
firstDnsEdit->setEnabled(check);
secondDnsEdit->setEnabled(check);
}
void Ipv4Page::setEnableOfSaveBtn() {

View File

@ -28,6 +28,10 @@ public:
void setGateWay(const QString &gateWay);
bool checkIsChanged(const ConInfo info, KyConnectSetting &setting);
protected:
bool eventFilter(QObject *w, QEvent *e);
private:
QComboBox *ipv4ConfigCombox;
LineEdit *ipv4addressEdit;
@ -45,6 +49,12 @@ private:
QLabel *m_gateWayLabel;
QLabel *m_dnsLabel;
QLabel *m_secDnsLabel;
QLabel *m_configEmptyLabel;
QLabel *m_addressHintLabel;
QLabel *m_maskHintLabel;
QLabel *m_gateWayEmptyLabel;
QLabel *m_firstDnsEmptyLabel;
private:
void initUI();
void initComponent();

View File

@ -1,12 +1,32 @@
#include "ipv6page.h"
#include "netdetail.h"
#define LAYOUT_MARGINS 0,0,0,0
#define LAYOUT_SPACING 0
#define HINT_TEXT_MARGINS 8, 1, 0, 3
#define LABEL_HEIGHT 24
Ipv6Page::Ipv6Page(QWidget *parent):QFrame(parent)
{
initUI();
initComponent();
}
bool Ipv6Page::eventFilter(QObject *w, QEvent *e)
{
if (w == ipv6AddressEdit) {
if (ipv6AddressEdit->text().isEmpty() || getIpv6EditState(ipv6AddressEdit->text())) {
m_addressHintLabel->clear();
}
} else if (w == gateWayEdit) {
if (gateWayEdit->text().isEmpty() || getIpv6EditState(gateWayEdit->text())) {
m_gateWayHintLabel->clear();
}
}
return QObject::eventFilter(w,e);
}
void Ipv6Page::setIpv6Config(KyIpConfigType ipv6Config)
{
if (ipv6Config == CONFIG_IP_MANUAL) {
@ -104,6 +124,23 @@ void Ipv6Page::initUI() {
m_dnsLabel = new QLabel(this);
m_secDnsLabel = new QLabel(this);
m_configEmptyLabel = new QLabel(this);
m_configEmptyLabel->setFixedHeight(LABEL_HEIGHT);
m_addressHintLabel = new QLabel(this);
m_addressHintLabel->setFixedHeight(LABEL_HEIGHT);
m_addressHintLabel->setContentsMargins(HINT_TEXT_MARGINS);
m_gateWayHintLabel = new QLabel(this);
m_gateWayHintLabel->setFixedHeight(LABEL_HEIGHT);
m_gateWayHintLabel->setContentsMargins(HINT_TEXT_MARGINS);
m_subnetEmptyLabel = new QLabel(this);
m_subnetEmptyLabel->setFixedHeight(LABEL_HEIGHT);
m_firstDnsEmptyLabel = new QLabel(this);
m_firstDnsEmptyLabel->setFixedHeight(LABEL_HEIGHT);
m_configLabel->setText(tr("Ipv6Config"));
m_addressLabel->setText(tr("Address"));
@ -112,13 +149,36 @@ void Ipv6Page::initUI() {
m_dnsLabel->setText(tr("Prefs DNS"));
m_secDnsLabel->setText(tr("Alternative DNS"));
QPalette hintTextColor;
hintTextColor.setColor(QPalette::WindowText, Qt::red);
m_addressHintLabel->setPalette(hintTextColor);
m_gateWayHintLabel->setPalette(hintTextColor);
QWidget *addressWidget = new QWidget(this);
QVBoxLayout *addressLayout = new QVBoxLayout(addressWidget);
addressLayout->setContentsMargins(LAYOUT_MARGINS);
addressLayout->setSpacing(LAYOUT_SPACING);
addressLayout->addWidget(ipv6AddressEdit);
addressLayout->addWidget(m_addressHintLabel);
QWidget *gateWayWidget = new QWidget(this);
QVBoxLayout *gateWayLayout = new QVBoxLayout(gateWayWidget);
gateWayLayout->setContentsMargins(LAYOUT_MARGINS);
gateWayLayout->setSpacing(LAYOUT_SPACING);
gateWayLayout->addWidget(gateWayEdit);
gateWayLayout->addWidget(m_gateWayHintLabel);
m_detailLayout = new QFormLayout(this);
m_detailLayout->setContentsMargins(0, 0, 0, 0);
m_detailLayout->setVerticalSpacing(0);
m_detailLayout->addRow(m_configLabel,ipv6ConfigCombox);
m_detailLayout->addRow(m_addressLabel,ipv6AddressEdit);
m_detailLayout->addRow(m_configEmptyLabel);
m_detailLayout->addRow(m_addressLabel,addressWidget);
m_detailLayout->addRow(m_subnetLabel,lengthEdit);
m_detailLayout->addRow(m_gateWayLabel,gateWayEdit);
m_detailLayout->addRow(m_subnetEmptyLabel);
m_detailLayout->addRow(m_gateWayLabel,gateWayWidget);
m_detailLayout->addRow(m_dnsLabel,firstDnsEdit);
m_detailLayout->addRow(m_firstDnsEmptyLabel);
m_detailLayout->addRow(m_secDnsLabel,secondDnsEdit);
ipv6ConfigCombox->addItem(tr("Auto(DHCP)")); //"自动(DHCP)"
@ -132,6 +192,9 @@ void Ipv6Page::initUI() {
QRegExp prefix_rx("\\b(?:(?:12[0-8]|1[0-1][0-9]|^[1-9][0-9]?$)\\.){3}(?:12[0-8]|1[0-1][0-9]|^[1-9][0-9]?$)\\b");
lengthEdit->setValidator(new QRegExpValidator(prefix_rx,this));
ipv6AddressEdit->installEventFilter(this);
gateWayEdit->installEventFilter(this);
}
void Ipv6Page::initComponent() {
@ -161,19 +224,27 @@ void Ipv6Page::configChanged(int index) {
void Ipv6Page::setControlEnabled(bool check)
{
ipv6AddressEdit->setEnabled(check);
lengthEdit->setEnabled(check);
gateWayEdit->setEnabled(check);
firstDnsEdit->setEnabled(check);
secondDnsEdit->setEnabled(check);
if (!check) {
ipv6AddressEdit->clear();
lengthEdit->clear();
gateWayEdit->clear();
firstDnsEdit->clear();
secondDnsEdit->clear();
ipv6AddressEdit->setPlaceholderText(" ");
lengthEdit->setPlaceholderText(" ");
gateWayEdit->setPlaceholderText(" ");
} else {
ipv6AddressEdit->setPlaceholderText(tr("Required")); //必填
lengthEdit->setPlaceholderText(tr("Required")); //必填
gateWayEdit->setPlaceholderText(tr("Required")); //必填
}
ipv6AddressEdit->setEnabled(check);
lengthEdit->setEnabled(check);
gateWayEdit->setEnabled(check);
firstDnsEdit->setEnabled(check);
secondDnsEdit->setEnabled(check);
}
void Ipv6Page::setEnableOfSaveBtn()
@ -186,8 +257,13 @@ bool Ipv6Page::checkConnectBtnIsEnabled()
if (ipv6ConfigCombox->currentIndex() == AUTO_CONFIG) {
return true;
} else {
if (ipv6AddressEdit->text().isEmpty() || !getIpv6EditState(ipv6AddressEdit->text())) {
qDebug() << "ipv6address empty or invalid";
if (ipv6AddressEdit->text().isEmpty()) {
qDebug() << "ipv6address empty";
return false;
}
if (!getIpv6EditState(ipv6AddressEdit->text())) {
m_addressHintLabel->setText(tr("Invalid address"));
qDebug() << "ipv6address invalid";
return false;
}
@ -196,8 +272,13 @@ bool Ipv6Page::checkConnectBtnIsEnabled()
return false;
}
if (gateWayEdit->text().isEmpty() || !getIpv6EditState(gateWayEdit->text())) {
qDebug() << "ipv6 gateway empty or invalid";
if (gateWayEdit->text().isEmpty()) {
qDebug() << "ipv6 gateway empty";
return false;
}
if (!getIpv6EditState(gateWayEdit->text())) {
m_gateWayHintLabel->setText(tr("Invalid gateway"));
qDebug() << "ipv6 gateway invalid";
return false;
}

View File

@ -31,6 +31,9 @@ public:
int getPerfixLength(QString text);
protected:
bool eventFilter(QObject *w, QEvent *e);
public:
QComboBox *ipv6ConfigCombox;
LineEdit *ipv6AddressEdit;
@ -46,6 +49,12 @@ private:
QLabel *m_gateWayLabel;
QLabel *m_dnsLabel;
QLabel *m_secDnsLabel;
QLabel *m_configEmptyLabel;
QLabel *m_addressHintLabel;
QLabel *m_subnetEmptyLabel;
QLabel *m_gateWayHintLabel;
QLabel *m_firstDnsEmptyLabel;
private:
void initUI();
void initComponent();

View File

@ -14,11 +14,10 @@
#include "windowmanager/windowmanager.h"
#define WINDOW_WIDTH 520
#define WINDOW_HEIGHT 590
#define BUTTON_SIZE 30
#define WINDOW_HEIGHT 562
#define ICON_SIZE 22,22
#define TITLE_LAYOUT_MARGINS 9,9,0,0
#define LAYOUT_MARGINS 24,0,24,0
#define LAYOUT_MARGINS 0,0,0,0
#define BOTTOM_LAYOUT_SPACING 16
#define PAGE_LAYOUT_SPACING 1
#define DETAIL_PAGE_NUM 0
@ -27,8 +26,8 @@
#define SECURITY_PAGE_NUM 3
#define CREATE_NET_PAGE_NUM 4
#define PAGE_MIN_HEIGHT 40
#define LAN_TAB_WIDTH 300
#define WLAN_TAB_WIDTH 400
#define LAN_TAB_WIDTH 180
#define WLAN_TAB_WIDTH 240
//extern void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed);
@ -137,15 +136,15 @@ void NetDetail::onPaletteChanged()
{
QPalette pal = qApp->palette();
QGSettings * styleGsettings = nullptr;
const QByteArray style_id(THEME_SCHAME);
if (QGSettings::isSchemaInstalled(style_id)) {
styleGsettings = new QGSettings(style_id);
QString currentTheme = styleGsettings->get(COLOR_THEME).toString();
if(currentTheme == "ukui-default"){
pal = lightPalette(this);
}
}
// QGSettings * styleGsettings = nullptr;
// const QByteArray style_id(THEME_SCHAME);
// if (QGSettings::isSchemaInstalled(style_id)) {
// styleGsettings = new QGSettings(style_id);
// QString currentTheme = styleGsettings->get(COLOR_THEME).toString();
// if(currentTheme == "ukui-default"){
// pal = lightPalette(this);
// }
// }
this->setPalette(pal);
@ -162,10 +161,10 @@ void NetDetail::onPaletteChanged()
detailPage->m_listWidget->setAlternatingRowColors(true);
detailPage->m_listWidget->setPalette(listwidget_pal);
if (styleGsettings != nullptr) {
delete styleGsettings;
styleGsettings = nullptr;
}
// if (styleGsettings != nullptr) {
// delete styleGsettings;
// styleGsettings = nullptr;
// }
QColor colorTabBar = pal.color(QPalette::Disabled, QPalette::Highlight);
m_netTabBar->setBackgroundColor(colorTabBar);
@ -178,6 +177,12 @@ void NetDetail::currentRowChangeSlot(int row)
void NetDetail::paintEvent(QPaintEvent *event)
{
QPalette pal = qApp->palette();
QPainter painter(this);
painter.setBrush(pal.color(QPalette::Base));
painter.drawRect(this->rect());
painter.fillRect(rect(), QBrush(pal.color(QPalette::Base)));
return QWidget::paintEvent(event);
}
@ -206,7 +211,7 @@ void NetDetail::centerToScreen()
void NetDetail::initUI()
{
QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->setContentsMargins(9,9,14,24);
mainLayout->setContentsMargins(24,9,24,24);
detailPage = new DetailPage(isWlan, m_name.isEmpty(), this);
@ -237,7 +242,9 @@ void NetDetail::initUI()
pageLayout->setSpacing(PAGE_LAYOUT_SPACING);
// TabBar
m_netTabBar = new KTabBar(KTabBarStyle::SegmentDark, this);
// m_netTabBar = new KTabBar(KTabBarStyle::SegmentDark, this);
m_netTabBar = new NetTabBar(this);
m_netTabBar->setTabBarStyle(KTabBarStyle::SegmentDark);
m_netTabBar->addTab(tr("Detail")); //详情
m_netTabBar->addTab(tr("Ipv4"));//Ipv4
m_netTabBar->addTab(tr("Ipv6"));//Ipv6
@ -270,6 +277,7 @@ void NetDetail::initUI()
QVBoxLayout *centerlayout = new QVBoxLayout(centerWidget);
centerlayout->setContentsMargins(LAYOUT_MARGINS);
centerlayout->addWidget(pageFrame);
centerlayout->addSpacing(4);
centerlayout->addWidget(stackWidget);
QHBoxLayout *bottomLayout = new QHBoxLayout(bottomWidget);
@ -956,3 +964,24 @@ bool NetDetail::eventFilter(QObject *w, QEvent *event)
}
return QWidget::eventFilter(w, event);
}
NetTabBar::NetTabBar(QWidget *parent)
{
}
NetTabBar::~NetTabBar()
{
}
QSize NetTabBar::sizeHint() const
{
return QSize(TAB_WIDTH, TAB_HEIGHT);
}
QSize NetTabBar::minimumTabSizeHint(int index) const
{
Q_UNUSED(index)
return QSize(TAB_WIDTH, TAB_HEIGHT);
}

View File

@ -32,6 +32,20 @@
using namespace kdk;
#define TAB_WIDTH 60
#define TAB_HEIGHT 36
class NetTabBar : public KTabBar
{
Q_OBJECT
public:
explicit NetTabBar(QWidget *parent = nullptr);
~NetTabBar();
QSize sizeHint() const;
QSize minimumTabSizeHint(int index) const;
};
class NetDetail : public QWidget
{
Q_OBJECT
@ -104,7 +118,7 @@ private:
QPushButton * confimBtn;
QFrame * pageFrame;
KTabBar *m_netTabBar = nullptr;
NetTabBar *m_netTabBar = nullptr;
QString m_name;
QString m_uuid;

View File

@ -52,6 +52,7 @@ void SecurityPage::initUI()
mSecuLayout = new QFormLayout(this);
mSecuLayout->setContentsMargins(0, 0, 0, 0);
mSecuLayout->addRow(secuTypeLabel, secuTypeCombox);
mSecuLayout->addRow(pwdLabel, pwdEdit);
mSecuLayout->addRow(eapTypeLabel, eapTypeCombox);

Binary file not shown.

View File

@ -98,82 +98,82 @@
<context>
<name>DetailPage</name>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="234"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="247"/>
<source>Auto Connection</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="190"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="283"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="203"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="300"/>
<source>SSID:</source>
<translation>SSID</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="120"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="129"/>
<source>Copied successfully!</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="164"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="177"/>
<source>Copy all</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="184"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="197"/>
<source>Please input SSID:</source>
<translation>SSID:</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="194"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="284"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="207"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="301"/>
<source>Protocol:</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="198"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="285"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="211"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="302"/>
<source>Security Type:</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="202"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="286"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="215"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="303"/>
<source>Hz:</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="206"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="287"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="219"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="304"/>
<source>Chan:</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="210"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="288"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="223"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="305"/>
<source>BandWidth:</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="224"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="291"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="237"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="308"/>
<source>IPV6:</source>
<translation>IPV6地址</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="214"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="289"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="227"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="306"/>
<source>IPV4:</source>
<translation>IPV4地址</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="218"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="290"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="231"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="307"/>
<source>IPV4 Dns:</source>
<translation>IPV4 DNS服务器</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="228"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="292"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="241"/>
<location filename="../src/frontend/netdetails/detailpage.cpp" line="309"/>
<source>Mac:</source>
<translation></translation>
</message>
@ -433,88 +433,121 @@
<context>
<name>Ipv4Page</name>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="26"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="64"/>
<source>Ipv4Config</source>
<translation>Ipv4配置</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="27"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="65"/>
<source>Address</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="28"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="66"/>
<source>Netmask</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="29"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="67"/>
<source>Default Gateway</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="30"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="68"/>
<source>Prefs DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="31"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="69"/>
<source>Alternative DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="41"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="103"/>
<source>Auto(DHCP)</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="42"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="104"/>
<source>Manual</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="239"/>
<source>Invalid address</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="249"/>
<source>Invalid subnet mask</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="299"/>
<location filename="../src/frontend/netdetails/ipv4page.cpp" line="300"/>
<source>Required</source>
<translation></translation>
</message>
</context>
<context>
<name>Ipv6Page</name>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="108"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="145"/>
<source>Ipv6Config</source>
<translation>Ipv6配置</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="109"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="146"/>
<source>Address</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="110"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="147"/>
<source>Subnet prefix Length</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="111"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="148"/>
<source>Default Gateway</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="112"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="149"/>
<source>Prefs DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="113"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="150"/>
<source>Alternative DNS</source>
<translation>DNS</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="124"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="184"/>
<source>Auto(DHCP)</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="125"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="185"/>
<source>Manual</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="238"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="239"/>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="240"/>
<source>Required</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="265"/>
<source>Invalid address</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/ipv6page.cpp" line="280"/>
<source>Invalid gateway</source>
<translation></translation>
</message>
</context>
<context>
<name>LanListItem</name>
@ -544,27 +577,27 @@
<context>
<name>LanPage</name>
<message>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="202"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="1185"/>
<source>No ethernet device avaliable</source>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="756"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="735"/>
<source>LAN</source>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="758"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="737"/>
<source>Activated LAN</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="767"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="746"/>
<source>Inactivated LAN</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="869"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="849"/>
<source>LAN Disconnected Successfully</source>
<translation>线</translation>
</message>
@ -574,7 +607,7 @@
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="845"/>
<location filename="../src/frontend/tab-pages/lanpage.cpp" line="825"/>
<source>LAN Connected Successfully</source>
<translation>线</translation>
</message>
@ -582,12 +615,12 @@
<context>
<name>ListItem</name>
<message>
<location filename="../src/frontend/list-items/listitem.cpp" line="62"/>
<location filename="../src/frontend/list-items/listitem.cpp" line="69"/>
<source>Kylin NM</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/list-items/listitem.cpp" line="65"/>
<location filename="../src/frontend/list-items/listitem.cpp" line="72"/>
<source>kylin network applet desktop message</source>
<translation></translation>
</message>
@ -595,30 +628,30 @@
<context>
<name>MainWindow</name>
<message>
<location filename="../src/frontend/mainwindow.cpp" line="121"/>
<location filename="../src/frontend/mainwindow.cpp" line="237"/>
<location filename="../src/frontend/mainwindow.cpp" line="166"/>
<location filename="../src/frontend/mainwindow.cpp" line="287"/>
<source>kylin-nm</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/mainwindow.cpp" line="199"/>
<location filename="../src/frontend/mainwindow.cpp" line="249"/>
<source>LAN</source>
<translatorcomment>线</translatorcomment>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/mainwindow.cpp" line="201"/>
<location filename="../src/frontend/mainwindow.cpp" line="251"/>
<source>WLAN</source>
<translatorcomment>线</translatorcomment>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/mainwindow.cpp" line="234"/>
<location filename="../src/frontend/mainwindow.cpp" line="284"/>
<source>Show MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/mainwindow.cpp" line="235"/>
<location filename="../src/frontend/mainwindow.cpp" line="285"/>
<source>Settings</source>
<translatorcomment></translatorcomment>
<translation></translation>
@ -627,32 +660,32 @@
<context>
<name>NetDetail</name>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="38"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="48"/>
<source>Kylin NM</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="41"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="51"/>
<source>kylin network desktop message</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="218"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="248"/>
<source>Detail</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="223"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="249"/>
<source>Ipv4</source>
<translation>Ipv4</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="227"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="250"/>
<source>Ipv6</source>
<translation>Ipv6</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="231"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="252"/>
<source>Security</source>
<translation></translation>
</message>
@ -661,84 +694,84 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="250"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="267"/>
<source>Confirm</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="253"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="270"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="256"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="273"/>
<source>Forget this network</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="286"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="304"/>
<source>Add Lan Connect</source>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="295"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="309"/>
<source>connect hiddin wlan</source>
<translation>WLAN</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="453"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="465"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="932"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="455"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="467"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="934"/>
<source>None</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="564"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="565"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="566"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="567"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="568"/>
<source>Auto</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="682"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="684"/>
<source>start check ipv4 address conflict</source>
<translation>ipv4地址冲突</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="699"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="701"/>
<source>start check ipv6 address conflict</source>
<translation>ipv6地址冲突</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="745"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="796"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="884"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="747"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="798"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="886"/>
<source>ipv4 address conflict!</source>
<translation>ipv4地址冲突</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="804"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="892"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="806"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="894"/>
<source>ipv6 address conflict!</source>
<translation>ipv6地址冲突</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="928"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="930"/>
<source>this wifi no support enterprise type</source>
<translation>wifi不支持企业网类型</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="933"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="935"/>
<source>this wifi no support None type</source>
<translation>wifi不支持空类型</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="938"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="940"/>
<source>this wifi no support WPA2 type</source>
<translation>wifi不支持WPA2类型</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="941"/>
<location filename="../src/frontend/netdetails/netdetail.cpp" line="943"/>
<source>this wifi no support WPA3 type</source>
<translation>wifi不支持WPA3类型</translation>
</message>
@ -849,63 +882,63 @@
<context>
<name>SecurityPage</name>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="71"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="72"/>
<source>Security</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="72"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="87"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="73"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="88"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="74"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="75"/>
<source>EAP type</source>
<translation>EAP方法</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="76"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="77"/>
<source>Identity</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="77"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="78"/>
<source>Domain</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="78"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="79"/>
<source>CA certficate</source>
<translation>CA </translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="79"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="80"/>
<source>no need for CA certificate</source>
<translation>CA证书</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="80"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="81"/>
<source>User certificate</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="81"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="82"/>
<source>User private key</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="82"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="83"/>
<source>User key password</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="85"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="86"/>
<source>Ineer authentication</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="86"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="87"/>
<source>Usename</source>
<translation></translation>
</message>
@ -915,56 +948,56 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="88"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="89"/>
<source>Ask pwd each query</source>
<translation></translation>
</message>
<message>
<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="228"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="727"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="782"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="804"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="827"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="91"/>
<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"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="176"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="675"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="696"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="718"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="741"/>
<source>None</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="91"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="92"/>
<source>WPA&amp;WPA2 Personal</source>
<translation>WPA&amp;WPA2 </translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="92"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="93"/>
<source>WPA&amp;WPA2 Enterprise</source>
<translation>WPA&amp;WPA2 </translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="93"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="94"/>
<source>WPA3 Personal</source>
<translation>WPA3 </translation>
</message>
<message>
<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"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="102"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="105"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="108"/>
<source>Choose from file...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="772"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="795"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="817"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="686"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="709"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="731"/>
<source>Choose a CA certificate</source>
<translation>CA证书</translation>
</message>
<message>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="773"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="796"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="818"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="687"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="710"/>
<location filename="../src/frontend/netdetails/securitypage.cpp" line="732"/>
<source>CA Files (*.pem *.der *.p12 *.crt *.cer *.pfx)</source>
<translation>CA (*.pem *.der *.p12 *.crt *.cer *.pfx)</translation>
</message>
@ -987,12 +1020,12 @@
<translation></translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="148"/>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="154"/>
<source>Kylin NM</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="151"/>
<location filename="../src/frontend/tab-pages/tabpage.cpp" line="157"/>
<source>kylin network applet desktop message</source>
<translation></translation>
</message>
@ -1043,31 +1076,31 @@
<context>
<name>WlanListItem</name>
<message>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="42"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="43"/>
<source>Not connected</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="138"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="136"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="565"/>
<source>Disconnect</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="140"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="267"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="138"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="251"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="563"/>
<source>Connect</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="147"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="145"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="570"/>
<source>Forget</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="288"/>
<location filename="../src/frontend/list-items/wlanlistitem.cpp" line="272"/>
<source>Auto Connect</source>
<translation></translation>
</message>
@ -1087,22 +1120,22 @@
<context>
<name>WlanPage</name>
<message>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="74"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="85"/>
<source>WLAN</source>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="127"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="70"/>
<source>No wireless network card detected</source>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="76"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="87"/>
<source>Activated WLAN</source>
<translation></translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="86"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="97"/>
<source>Other WLAN</source>
<translation></translation>
</message>
@ -1111,13 +1144,13 @@
<translation type="vanished">...</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="810"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="797"/>
<source>WLAN Connected Successfully</source>
<translation>线</translation>
</message>
<message>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="554"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="806"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="542"/>
<location filename="../src/frontend/tab-pages/wlanpage.cpp" line="793"/>
<source>WLAN Disconnected Successfully</source>
<translation>线</translation>
</message>
@ -1177,4 +1210,22 @@
<translation type="obsolete">CA证书</translation>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../src/main.cpp" line="96"/>
<source>kylinnm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="100"/>
<source>show kylin-nm wifi page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/main.cpp" line="101"/>
<source>show kylin-nm lan page</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>