安全页复用:隐藏WiFi 企业网弹窗

This commit is contained in:
zhangyuanyuan1 2023-03-03 15:03:30 +08:00
parent 6be128576f
commit f038b8abee
11 changed files with 325 additions and 75 deletions

View File

@ -334,7 +334,7 @@ void NetDetail::initUI()
detailPage = new DetailPage(isWlan, m_name.isEmpty(), this); detailPage = new DetailPage(isWlan, m_name.isEmpty(), this);
ipv4Page = new Ipv4Page(this); ipv4Page = new Ipv4Page(this);
ipv6Page = new Ipv6Page(this); ipv6Page = new Ipv6Page(this);
securityPage = new SecurityPage(this); securityPage = new SecurityPage(false, true, this);
createNetPage = new CreatNetPage(this); createNetPage = new CreatNetPage(this);
configPage = new ConfigPage(this); configPage = new ConfigPage(this);

View File

@ -27,7 +27,8 @@
#define MIN_LABEL_WIDTH 146 #define MIN_LABEL_WIDTH 146
#define MIN_EDIT_WIDTH 286 #define MIN_EDIT_WIDTH 286
SecurityPage::SecurityPage(bool isNetDetailPage, QWidget *parent) : isDetailPage(isNetDetailPage), QFrame(parent) SecurityPage::SecurityPage(bool isLockScreen, bool isNetDetailPage, QWidget *parent)
: m_isLockScreen(isLockScreen), isDetailPage(isNetDetailPage), QFrame(parent)
{ {
initUI(); initUI();
initConnect(); initConnect();
@ -250,13 +251,18 @@ void SecurityPage::initUI()
eapTypeCombox->setCurrentIndex(TLS); eapTypeCombox->setCurrentIndex(TLS);
//TLS //TLS
caCertPathCombox->addItem(tr("None"), QString(tr("None"))); //无 caCertPathCombox->addItem(tr("None"), QString(tr("None"))); //无
caCertPathCombox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择...
clientCertPathCombox->addItem(tr("None"), QString(tr("None"))); //无 clientCertPathCombox->addItem(tr("None"), QString(tr("None"))); //无
clientCertPathCombox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择...
clientPrivateKeyCombox->addItem(tr("None"), QString(tr("None"))); //无 clientPrivateKeyCombox->addItem(tr("None"), QString(tr("None"))); //无
clientPrivateKeyCombox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择... if (!m_isLockScreen) {
caCertPathCombox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择...
clientCertPathCombox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择...
clientPrivateKeyCombox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择...
}
else {
caCertPathCombox->addItem(tr("Please log in to the system first."), QString(tr("Please log in to the system first.")));
clientCertPathCombox->addItem(tr("Please log in to the system first."), QString(tr("Please log in to the system first.")));
clientPrivateKeyCombox->addItem(tr("Please log in to the system first."), QString(tr("Please log in to the system first.")));
}
//仅为该用户存储密码 //仅为该用户存储密码
pwdOptionCombox->addItem(tr("Store passwords only for this user"), QString(tr("Store password only for this user"))); pwdOptionCombox->addItem(tr("Store passwords only for this user"), QString(tr("Store password only for this user")));
@ -276,7 +282,12 @@ void SecurityPage::initUI()
m_pacProvisionComboBox->addItem(tr("Both"), BOTH); //两者兼用 m_pacProvisionComboBox->addItem(tr("Both"), BOTH); //两者兼用
m_pacProvisionComboBox->setCurrentIndex(0); m_pacProvisionComboBox->setCurrentIndex(0);
m_pacFilePathComboBox->addItem(tr("None"), QString(tr("None"))); //无 m_pacFilePathComboBox->addItem(tr("None"), QString(tr("None"))); //无
m_pacFilePathComboBox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择... if (!m_isLockScreen) {
m_pacFilePathComboBox->addItem(tr("Choose from file..."), QString(tr("Choose from file..."))); //从文件中选择...
}
else {
m_pacFilePathComboBox->addItem(tr("Please log in to the system first."), QString(tr("Please log in to the system first.")));
}
//禁用ClearBtn按钮 //禁用ClearBtn按钮
pwdEdit->setClearButtonEnabled(false); pwdEdit->setClearButtonEnabled(false);
@ -588,6 +599,17 @@ void SecurityPage::getSecuType(KySecuType &secuType, KyEapMethodType &enterprise
enterpriseType = (KyEapMethodType)eapTypeCombox->currentData().toInt(); enterpriseType = (KyEapMethodType)eapTypeCombox->currentData().toInt();
} }
void SecurityPage::getEnterpriseType(KyEapMethodType &enterpriseType)
{
enterpriseType = (KyEapMethodType)eapTypeCombox->currentData().toInt();
}
bool SecurityPage::getAutoConnectState()
{
bool state = m_rememberCheckBox->isChecked();
return state;
}
bool SecurityPage::checkIsChanged(const ConInfo info) bool SecurityPage::checkIsChanged(const ConInfo info)
{ {
if (info.secType != secuTypeCombox->currentData().toInt()) { if (info.secType != secuTypeCombox->currentData().toInt()) {
@ -1116,6 +1138,9 @@ void SecurityPage::onPacBoxClicked()
void SecurityPage::onCaCertPathComboxIndexChanged(QString str) void SecurityPage::onCaCertPathComboxIndexChanged(QString str)
{ {
if (m_isLockScreen) {
return;
}
if (str.contains("Choose from file...") || str.contains("从文件选择...")) if (str.contains("Choose from file...") || str.contains("从文件选择..."))
{ {
QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a CA certificate"), "recent:///", QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a CA certificate"), "recent:///",
@ -1139,6 +1164,9 @@ void SecurityPage::onCaCertPathComboxIndexChanged(QString str)
void SecurityPage::onClientCertPathComboxIndexChanged(QString str) void SecurityPage::onClientCertPathComboxIndexChanged(QString str)
{ {
if (m_isLockScreen) {
return;
}
if (str.contains("Choose from file...") || str.contains("从文件选择...")) if (str.contains("Choose from file...") || str.contains("从文件选择..."))
{ {
QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a CA certificate"), "recent:///", QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a CA certificate"), "recent:///",
@ -1161,6 +1189,9 @@ void SecurityPage::onClientCertPathComboxIndexChanged(QString str)
void SecurityPage::onClientPrivateKeyComboxIndexChanged(QString str) void SecurityPage::onClientPrivateKeyComboxIndexChanged(QString str)
{ {
if (m_isLockScreen) {
return;
}
if (str.contains("Choose from file...") || str.contains("从文件选择...")) if (str.contains("Choose from file...") || str.contains("从文件选择..."))
{ {
QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a CA certificate"), "recent:///", QString fileName = QFileDialog::getOpenFileName(this, tr("Choose a CA certificate"), "recent:///",

View File

@ -38,7 +38,7 @@ class SecurityPage : public QFrame
{ {
Q_OBJECT Q_OBJECT
public: public:
SecurityPage(bool isNetDetailPage, QWidget *parent = nullptr); SecurityPage(bool isLockScreen, bool isNetDetailPage, QWidget *parent = nullptr);
void setSecurity(KySecuType index); void setSecurity(KySecuType index);
void setPsk(const QString &psk); void setPsk(const QString &psk);
@ -60,10 +60,20 @@ public:
void updateFastChange(KyEapMethodFastInfo &info); void updateFastChange(KyEapMethodFastInfo &info);
void getSecuType(KySecuType &secuType, KyEapMethodType &enterpriseType); void getSecuType(KySecuType &secuType, KyEapMethodType &enterpriseType);
void getEnterpriseType(KyEapMethodType &enterpriseType);
bool getAutoConnectState();
KyEapMethodTlsInfo assembleTlsInfo();
KyEapMethodPeapInfo assemblePeapInfo();
KyEapMethodTtlsInfo assembleTtlsInfo();
KyEapMethodLeapInfo assembleLeapInfo();
KyEapMethodPwdInfo assemblePwdInfo();
KyEapMethodFastInfo assembleFastInfo();
private: private:
bool m_isLockScreen;
bool isDetailPage; bool isDetailPage;
// QFormLayout *mSecuLayout;
QGridLayout *topLayout; QGridLayout *topLayout;
QGridLayout *bottomLayout; QGridLayout *bottomLayout;
QVBoxLayout *mainLayout; QVBoxLayout *mainLayout;
@ -134,13 +144,6 @@ private:
void initUI(); void initUI();
void initConnect(); void initConnect();
KyEapMethodTlsInfo assembleTlsInfo();
KyEapMethodPeapInfo assemblePeapInfo();
KyEapMethodTtlsInfo assembleTtlsInfo();
KyEapMethodLeapInfo assembleLeapInfo();
KyEapMethodPwdInfo assemblePwdInfo();
KyEapMethodFastInfo assembleFastInfo();
bool checkConnectBtnIsEnabled(); bool checkConnectBtnIsEnabled();

View File

@ -4,13 +4,13 @@
#define MAIN_SIZE_EXPAND 480,550 #define MAIN_SIZE_EXPAND 480,550
#define MAIN_SIZE_NARROW 480,340 #define MAIN_SIZE_NARROW 480,340
#define PAGE_LAYOUT_MARGINS 24,0,24,0 #define PAGE_LAYOUT_MARGINS 24,14,24,24
#define TOP_LAYOUT_MARGINS 0,14,0,0 #define TOP_LAYOUT_MARGINS 0,0,0,0
#define BOTTOM_LAYOUT_MARGINS 0,24,0,24 #define BOTTOM_LAYOUT_MARGINS 0,0,0,0
#define LABEL_MIN_WIDTH 150 #define LABEL_MIN_WIDTH 146
EnterpriseWlanPage::EnterpriseWlanPage(QString ssid, QString device, bool isLockScreen, QWidget *parent) EnterpriseWlanPage::EnterpriseWlanPage(QString ssid, QString device, bool isLockScreen, QWidget *parent)
: m_ssid(ssid), m_deviceName(device), QWidget(parent) : m_ssid(ssid), m_deviceName(device), m_isLockScreen(isLockScreen), QWidget(parent)
{ {
initUI(); initUI();
initConnections(); initConnections();
@ -47,7 +47,9 @@ void EnterpriseWlanPage::initUI()
m_ssidTitleLabel = new QLabel(this); m_ssidTitleLabel = new QLabel(this);
m_ssidTitleLabel->setMinimumWidth(LABEL_MIN_WIDTH); m_ssidTitleLabel->setMinimumWidth(LABEL_MIN_WIDTH);
m_ssidLabel = new QLabel(this); m_ssidLabel = new QLabel(this);
m_entSecurityWidget = new EntSecurityWidget(this); m_entSecurityWidget = new SecurityPage(m_isLockScreen, false, this);
m_entSecurityWidget->setSecurity(KySecuType::WPA_AND_WPA2_ENTERPRISE);
m_entSecurityWidget->setSecurityVisible(false);
m_cancelBtn = new QPushButton(this); m_cancelBtn = new QPushButton(this);
m_connectBtn = new QPushButton(this); m_connectBtn = new QPushButton(this);
m_connectBtn->setEnabled(false); m_connectBtn->setEnabled(false);
@ -57,7 +59,7 @@ void EnterpriseWlanPage::initUI()
m_mainLayout = new QVBoxLayout(this); m_mainLayout = new QVBoxLayout(this);
this->setLayout(m_mainLayout); this->setLayout(m_mainLayout);
m_mainLayout->setContentsMargins(PAGE_LAYOUT_MARGINS); m_mainLayout->setContentsMargins(PAGE_LAYOUT_MARGINS);
m_mainLayout->setSpacing(0); m_mainLayout->setSpacing(8);
m_mainLayout->addWidget(m_ssidWidget); m_mainLayout->addWidget(m_ssidWidget);
m_mainLayout->addWidget(m_entSecurityWidget); m_mainLayout->addWidget(m_entSecurityWidget);
m_mainLayout->addStretch(); m_mainLayout->addStretch();
@ -90,12 +92,12 @@ void EnterpriseWlanPage::initConnections()
{ {
connect(m_cancelBtn, &QPushButton::clicked, this, &EnterpriseWlanPage::close); connect(m_cancelBtn, &QPushButton::clicked, this, &EnterpriseWlanPage::close);
connect(m_connectBtn, &QPushButton::clicked, this, &EnterpriseWlanPage::onBtnConnectClicked); connect(m_connectBtn, &QPushButton::clicked, this, &EnterpriseWlanPage::onBtnConnectClicked);
connect(m_entSecurityWidget, &EntSecurityWidget::eapTypeChanged, this, &EnterpriseWlanPage::onEapTypeChanged); connect(m_entSecurityWidget, &SecurityPage::eapTypeChanged, this, &EnterpriseWlanPage::onEapTypeChanged);
connect(m_entSecurityWidget, &EntSecurityWidget::setSecuPageState, this, [ = ](bool status) { connect(m_entSecurityWidget, &SecurityPage::setSecuPageState, this, [ = ](bool status) {
m_connectBtn->setEnabled(status); m_connectBtn->setEnabled(status);
}); });
connect(m_entSecurityWidget, &EntSecurityWidget::setSecuPageState, this, [=](bool status) { connect(m_entSecurityWidget, &SecurityPage::setSecuPageState, this, [=](bool status) {
m_connectBtn->setEnabled(status); m_connectBtn->setEnabled(status);
}); });
} }
@ -118,7 +120,7 @@ void EnterpriseWlanPage::onBtnConnectClicked()
connSettingInfo.m_ssid = m_ssid; connSettingInfo.m_ssid = m_ssid;
connSettingInfo.setConnectName(m_ssid); connSettingInfo.setConnectName(m_ssid);
connSettingInfo.setIfaceName(m_deviceName); connSettingInfo.setIfaceName(m_deviceName);
connSettingInfo.m_isAutoConnect = true; connSettingInfo.m_isAutoConnect = m_entSecurityWidget->getAutoConnectState();
//ipv4 ipv6 //ipv4 ipv6
connSettingInfo.setIpConfigType(IPADDRESS_V4, CONFIG_IP_DHCP); connSettingInfo.setIpConfigType(IPADDRESS_V4, CONFIG_IP_DHCP);
@ -154,6 +156,18 @@ void EnterpriseWlanPage::onEapTypeChanged(const KyEapMethodType &type)
this->setFixedSize(MAIN_SIZE_NARROW); this->setFixedSize(MAIN_SIZE_NARROW);
centerToScreen(); centerToScreen();
break; break;
case KyEapMethodType::LEAP:
this->setFixedSize(MAIN_SIZE_NARROW);
centerToScreen();
break;
case KyEapMethodType::PWD:
this->setFixedSize(MAIN_SIZE_NARROW);
centerToScreen();
break;
case KyEapMethodType::FAST:
this->setFixedSize(MAIN_SIZE_EXPAND);
centerToScreen();
break;
default: default:
break; break;
} }

View File

@ -6,7 +6,8 @@
#include <QApplication> #include <QApplication>
#include <kylin-nm/kylinnetworkmanager.h> #include <kylin-nm/kylinnetworkmanager.h>
#include "entsecuritywidget.h" //#include "entsecuritywidget.h"
#include "../component/Pages/securitypage.h"
class EnterpriseWlanPage : public QWidget class EnterpriseWlanPage : public QWidget
{ {
@ -29,13 +30,14 @@ private:
QLabel *m_ssidTitleLabel; QLabel *m_ssidTitleLabel;
QLabel *m_ssidLabel; QLabel *m_ssidLabel;
EntSecurityWidget *m_entSecurityWidget = nullptr; SecurityPage *m_entSecurityWidget = nullptr;
QPushButton *m_cancelBtn; QPushButton *m_cancelBtn;
QPushButton *m_connectBtn; QPushButton *m_connectBtn;
QWidget *m_ssidWidget; QWidget *m_ssidWidget;
QWidget *m_btnWidget; QWidget *m_btnWidget;
QVBoxLayout *m_mainLayout; QVBoxLayout *m_mainLayout;
bool m_isLockScreen;
private Q_SLOTS: private Q_SLOTS:
void onBtnConnectClicked(); void onBtnConnectClicked();

View File

@ -3,10 +3,10 @@
SOURCES += \ SOURCES += \
$$PWD/enterprisewlanpage.cpp \ $$PWD/enterprisewlanpage.cpp \
$$PWD/entsecuritywidget.cpp \ # $$PWD/entsecuritywidget.cpp \
$$PWD/hiddenwifipage.cpp \ $$PWD/hiddenwifipage.cpp \
HEADERS += \ HEADERS += \
$$PWD/enterprisewlanpage.h \ $$PWD/enterprisewlanpage.h \
$$PWD/entsecuritywidget.h \ # $$PWD/entsecuritywidget.h \
$$PWD/hiddenwifipage.h \ $$PWD/hiddenwifipage.h \

View File

@ -3,18 +3,19 @@
#include <QDBusInterface> #include <QDBusInterface>
#define WINDOW_WIDTH 480 #define WINDOW_WIDTH 480
#define MIN_WINDOW_HEIGHT 332 #define MIN_WINDOW_HEIGHT 336
#define PEAP_WINDOW_HEIGHT 494 #define PEAP_WINDOW_HEIGHT 494
#define MAX_WINDOW_HEIGHT 540 #define MAX_WINDOW_HEIGHT 540
#define PAGE_LAYOUT_MARGINS 0,0,0,0 #define PAGE_LAYOUT_MARGINS 0,0,0,0
#define TOP_LAYOUT_MARGINS 24,14,24,24 #define TOP_LAYOUT_MARGINS 24,14,24,24
#define CENTER_LAYOUT_MARGINS 24, 0, 24, 8
#define BOTTOM_LAYOUT_MARGINS 24,24,24,24 #define BOTTOM_LAYOUT_MARGINS 24,24,24,24
#define LAYOUT_SPACING 16 #define LAYOUT_SPACING 16
#define LABEL_MIN_WIDTH 150 #define LABEL_MIN_WIDTH 146
#define MAX_NAME_LENGTH 32 #define MAX_NAME_LENGTH 32
#define PSK_SCRO_HEIGHT 182 //#define PSK_SCRO_HEIGHT 182
#define PEAP_SCRO_HEIGHT 348 //#define PEAP_SCRO_HEIGHT 348
#define TLS_SCRO_HEIGHT 540 //#define TLS_SCRO_HEIGHT 540
#define MEDIUM_WEIGHT_VALUE 57 #define MEDIUM_WEIGHT_VALUE 57
HiddenWiFiPage::HiddenWiFiPage(QString interface, bool isSimple, QWidget *parent) HiddenWiFiPage::HiddenWiFiPage(QString interface, bool isSimple, QWidget *parent)
@ -47,7 +48,9 @@ HiddenWiFiPage::~HiddenWiFiPage()
void HiddenWiFiPage::getSecuType(KySecuType &secuType) void HiddenWiFiPage::getSecuType(KySecuType &secuType)
{ {
secuType = (KySecuType)m_secuTypeCombox->currentData().toInt(); // secuType = (KySecuType)m_secuTypeCombox->currentData().toInt();
KyEapMethodType enterpriseType;
m_secuWidget->getSecuType(secuType, enterpriseType);
} }
void HiddenWiFiPage::paintEvent(QPaintEvent *event) void HiddenWiFiPage::paintEvent(QPaintEvent *event)
@ -82,6 +85,212 @@ void HiddenWiFiPage::setBtnEnable(bool on)
m_joinBtn->setEnabled(on); m_joinBtn->setEnabled(on);
} }
void HiddenWiFiPage::initUI()
{
m_topWidget = new QWidget(this);
m_centerWidget = new QWidget(this);
m_bottomWidget = new QWidget(this);
m_secuWidget = new SecurityPage(true, false, this);
m_secuWidget->setSecurity(KySecuType::WPA_AND_WPA2_PERSONAL);
m_descriptionLabel = new QLabel(this);
m_nameLabel = new FixLabel(this);
m_nameLabel->setFixedWidth(LABEL_MIN_WIDTH);
m_nameEdit =new LineEdit(this);
m_bottomDivider = new Divider(this);
m_cancelBtn =new QPushButton(this);
m_joinBtn =new QPushButton(this);
m_scrollArea = new QScrollArea(this);
m_scrollArea->setFrameShape(QFrame::NoFrame);
m_scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
QPalette pa = m_scrollArea->palette();
pa.setBrush(QPalette::Window, Qt::transparent);
m_scrollArea->setPalette(pa);
m_pageLayout = new QVBoxLayout(this);
m_pageLayout->setContentsMargins(0, 0, 0, 0);
m_pageLayout->setSpacing(0);
m_pageLayout->addWidget(m_topWidget);
m_pageLayout->addWidget(m_scrollArea);
m_pageLayout->addWidget(m_bottomDivider);
m_pageLayout->addWidget(m_bottomWidget);
m_topLayout = new QHBoxLayout(m_topWidget);
m_topLayout->setContentsMargins(TOP_LAYOUT_MARGINS);
m_topLayout->setSpacing(0);
m_topLayout->addWidget(m_descriptionLabel);
m_topLayout->addStretch();
QWidget *ssidWidget = new QWidget(this);
QHBoxLayout *ssidLayout = new QHBoxLayout(ssidWidget);
ssidLayout->setContentsMargins(0, 0, 0, 0);
ssidLayout->setSpacing(0);
m_nameLabel->setMinimumWidth(LABEL_MIN_WIDTH);
ssidLayout->addWidget(m_nameLabel);
ssidLayout->addWidget(m_nameEdit);
m_centerVBoxLayout = new QVBoxLayout(m_centerWidget);
m_centerVBoxLayout->setContentsMargins(CENTER_LAYOUT_MARGINS);
m_centerVBoxLayout->setSpacing(0);
m_centerVBoxLayout->addWidget(ssidWidget);
m_centerVBoxLayout->addSpacing(LAYOUT_SPACING);
m_centerVBoxLayout->addWidget(m_secuWidget);
m_centerWidget->setFixedWidth(WINDOW_WIDTH);
m_scrollArea->setFixedWidth(WINDOW_WIDTH);
m_scrollArea->setWidget(m_centerWidget);
m_scrollArea->setWidgetResizable(true);
//底部按钮
m_bottomLayout = new QHBoxLayout(m_bottomWidget);
m_bottomLayout->setContentsMargins(BOTTOM_LAYOUT_MARGINS);
m_bottomLayout->setSpacing(LAYOUT_SPACING);
if (!m_isSimple) {
m_showListBtn = new KBorderlessButton(this);
m_showListBtn->setText(tr("Show Network List")); //显示网络列表
m_bottomLayout->addWidget(m_showListBtn);
connect(m_showListBtn, SIGNAL(clicked()), this, SLOT(onBtnShowListClicked()));
}
m_bottomLayout->addStretch();
m_bottomLayout->addWidget(m_cancelBtn);
m_bottomLayout->addWidget(m_joinBtn);
//请输入您想要加入网络的名称和安全类型
m_descriptionLabel->setText(tr("Please enter the network name and security type"));
QFont font = m_descriptionLabel->font();
font.setWeight(MEDIUM_WEIGHT_VALUE);
m_descriptionLabel->setFont(font);
m_nameLabel->setLabelText(tr("Network name(SSID)")); //网络名(SSID)
m_cancelBtn->setText(tr("Cancel"));
m_joinBtn->setText(tr("Join"));
m_nameEdit->setMaxLength(MAX_NAME_LENGTH);
m_nameEdit->setPlaceholderText(tr("Required")); //必填
this->setWindowTitle(tr("Find and Join Wi-Fi"));
this->setWindowIcon(QIcon::fromTheme("kylin-network"));
this->setFixedWidth(WINDOW_WIDTH);
this->setFixedHeight(MIN_WINDOW_HEIGHT);
}
void HiddenWiFiPage::initComponent()
{
connect(m_cancelBtn, &QPushButton::clicked, this, [=] {
close();
});
connect(m_joinBtn, SIGNAL(clicked()), this, SLOT(onBtnJoinClicked()));
connect(m_secuWidget, &SecurityPage::secuTypeChanged, this, &HiddenWiFiPage::onSecuTypeChanged);
connect(m_secuWidget, &SecurityPage::eapTypeChanged, this, &HiddenWiFiPage::onEapTypeChanged);
connect(m_secuWidget, &SecurityPage::setSecuPageState, this, [ = ](bool status) {
m_isSecuOk = status;
setJoinBtnEnable();
});
connect(m_nameEdit, &LineEdit::textChanged, this, &HiddenWiFiPage::setJoinBtnEnable);
}
void HiddenWiFiPage::setJoinBtnEnable()
{
if (!m_nameEdit->text().isEmpty() && m_isSecuOk) {
m_isJoinBtnEnable = true;
} else {
m_isJoinBtnEnable = false;
}
m_joinBtn->setEnabled(m_isJoinBtnEnable);
}
void HiddenWiFiPage::onBtnShowListClicked()
{
QDBusInterface interface("com.kylin.network",
"/com/kylin/network",
"com.kylin.network",
QDBusConnection::sessionBus());
if(interface.isValid()) {
interface.call(QStringLiteral("showKylinNM"), 1);
}
}
void HiddenWiFiPage::onBtnJoinClicked()
{
qDebug() << "on_btnJoin_clicked";
KyWirelessConnectSetting connSettingInfo;
//基本信息
connSettingInfo.m_ssid = m_nameEdit->text();
connSettingInfo.setConnectName(connSettingInfo.m_ssid);
connSettingInfo.setIfaceName(m_deviceName);
connSettingInfo.isHidden = true;
connSettingInfo.m_isAutoConnect = m_secuWidget->getAutoConnectState();
connSettingInfo.m_secretFlag = 0;
//ipv4 ipv6
connSettingInfo.setIpConfigType(IPADDRESS_V4, CONFIG_IP_DHCP);
connSettingInfo.setIpConfigType(IPADDRESS_V6, CONFIG_IP_DHCP);
KySecuType secuType;
KyEapMethodType eapType;
m_secuWidget->getSecuType(secuType, eapType);
if (secuType == NONE) {
Q_EMIT connectHideNormalConnect(connSettingInfo, NONE);
} else if (secuType == WPA_AND_WPA2_PERSONAL || secuType == WPA3_PERSONAL) {
m_secuWidget->updateSecurityChange(connSettingInfo);
Q_EMIT connectHideNormalConnect(connSettingInfo, secuType);
}else if (secuType == WPA_AND_WPA2_ENTERPRISE) {
if (eapType == PEAP) {
KyEapMethodPeapInfo info = m_secuWidget->assemblePeapInfo();
Q_EMIT connectHidePeapConnect(info, connSettingInfo);
} else if (eapType == TTLS) {
KyEapMethodTtlsInfo info = m_secuWidget->assembleTtlsInfo();
Q_EMIT connectHideTtlsConnect(info, connSettingInfo);
} else if (eapType == LEAP) {
KyEapMethodLeapInfo info = m_secuWidget->assembleLeapInfo();
Q_EMIT connectHideLeapConnect(info, connSettingInfo);
} else if (eapType == PWD) {
KyEapMethodPwdInfo info = m_secuWidget->assemblePwdInfo();
Q_EMIT connectHidePwdConnect(info, connSettingInfo);
} else {
qWarning() << "unsupport now!!!";
}
}
close();
}
void HiddenWiFiPage::onSecuTypeChanged(const KySecuType &type)
{
if (type != KySecuType::WPA_AND_WPA2_ENTERPRISE) {
this->setFixedHeight(MIN_WINDOW_HEIGHT);
}
}
void HiddenWiFiPage::onEapTypeChanged(const KyEapMethodType &type)
{
if (type == KyEapMethodType::TLS || type == KyEapMethodType::FAST) {
this->setFixedHeight(MAX_WINDOW_HEIGHT);
} else if (type == KyEapMethodType::PEAP || type == KyEapMethodType::TTLS || type == KyEapMethodType::LEAP || type == KyEapMethodType::PWD) {
this->setFixedHeight(PEAP_WINDOW_HEIGHT);
}
}
void HiddenWiFiPage::centerToScreen()
{
QDesktopWidget* m = QApplication::desktop();
QRect desk_rect = m->screenGeometry(m->screenNumber(QCursor::pos()));
int desk_x = desk_rect.width();
int desk_y = desk_rect.height();
int x = this->width();
int y = this->height();
this->move((desk_x - x)/ 2 , (desk_y - y)/ 2);
}
#if 0
void HiddenWiFiPage::initUI() void HiddenWiFiPage::initUI()
{ {
m_topWidget = new QWidget(this); m_topWidget = new QWidget(this);
@ -212,17 +421,6 @@ void HiddenWiFiPage::initUI()
showNone(); showNone();
} }
void HiddenWiFiPage::centerToScreen()
{
QDesktopWidget* m = QApplication::desktop();
QRect desk_rect = m->screenGeometry(m->screenNumber(QCursor::pos()));
int desk_x = desk_rect.width();
int desk_y = desk_rect.height();
int x = this->width();
int y = this->height();
this->move((desk_x - x)/ 2 , (desk_y - y)/ 2);
}
void HiddenWiFiPage::initComponent() void HiddenWiFiPage::initComponent()
{ {
connect(m_cancelBtn, &QPushButton::clicked, this, [=] { connect(m_cancelBtn, &QPushButton::clicked, this, [=] {
@ -373,14 +571,4 @@ void HiddenWiFiPage::onSecuTypeComboxIndexChanged()
} }
centerToScreen(); centerToScreen();
} }
#endif
void HiddenWiFiPage::onBtnShowListClicked()
{
QDBusInterface interface("com.kylin.network",
"/com/kylin/network",
"com.kylin.network",
QDBusConnection::sessionBus());
if(interface.isValid()) {
interface.call(QStringLiteral("showKylinNM"), 1);
}
}

View File

@ -16,7 +16,8 @@
#include "kwidget.h" #include "kwidget.h"
#include "kpasswordedit.h" #include "kpasswordedit.h"
#include "kborderlessbutton.h" #include "kborderlessbutton.h"
#include "entsecuritywidget.h" //#include "entsecuritywidget.h"
#include "../component/Pages/securitypage.h"
#include "kylin-nm/depend/kywirelessconnectoperation.h" #include "kylin-nm/depend/kywirelessconnectoperation.h"
#include <../component/FixLabel/fixlabel.h> #include <../component/FixLabel/fixlabel.h>
@ -41,32 +42,32 @@ private:
void centerToScreen(); void centerToScreen();
void initComponent(); void initComponent();
void showNone(); // void showNone();
void showPsk(); // void showPsk();
void showEnt(); // void showEnt();
void setBtnEnable(bool on); void setBtnEnable(bool on);
void setJoinBtnEnable(); void setJoinBtnEnable();
void setWindowWidth(KyEapMethodType eapType); // void setWindowWidth(KyEapMethodType eapType);
private: private:
QWidget *m_topWidget; QWidget *m_topWidget;
QWidget *m_centerWidget; QWidget *m_centerWidget;
QWidget *m_bottomWidget; QWidget *m_bottomWidget;
EntSecurityWidget *m_secuWidget; SecurityPage *m_secuWidget;
QLabel *m_descriptionLabel; QLabel *m_descriptionLabel;
FixLabel *m_nameLabel; FixLabel *m_nameLabel;
QLabel *m_secuTypeLabel; // QLabel *m_secuTypeLabel;
QLabel *m_pwdLabel; // QLabel *m_pwdLabel;
QLabel *m_emptyLabel; // QLabel *m_emptyLabel;
QLabel *m_checkLabel; // QLabel *m_checkLabel;
LineEdit *m_nameEdit; LineEdit *m_nameEdit;
QComboBox *m_secuTypeCombox; // QComboBox *m_secuTypeCombox;
KPasswordEdit *m_pwdEdit = nullptr; // KPasswordEdit *m_pwdEdit = nullptr;
QCheckBox *m_rememberCheckBox = nullptr; // QCheckBox *m_rememberCheckBox = nullptr;
Divider *m_bottomDivider = nullptr; Divider *m_bottomDivider = nullptr;
KBorderlessButton *m_showListBtn = nullptr; KBorderlessButton *m_showListBtn = nullptr;
@ -86,13 +87,18 @@ private:
QString m_deviceName; QString m_deviceName;
private Q_SLOTS: private Q_SLOTS:
void on_btnJoin_clicked(); // void on_btnJoin_clicked();
void onSecuTypeComboxIndexChanged(); // void onSecuTypeComboxIndexChanged();
void onBtnShowListClicked(); void onBtnShowListClicked();
void onBtnJoinClicked();
void onSecuTypeChanged(const KySecuType &type);
void onEapTypeChanged(const KyEapMethodType &type);
Q_SIGNALS: Q_SIGNALS:
void connectHidePeapConnect(KyEapMethodPeapInfo info, KyWirelessConnectSetting connSettingInfo); void connectHidePeapConnect(KyEapMethodPeapInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHideTtlsConnect(KyEapMethodTtlsInfo info, KyWirelessConnectSetting connSettingInfo); void connectHideTtlsConnect(KyEapMethodTtlsInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHideLeapConnect(KyEapMethodLeapInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHidePwdConnect(KyEapMethodPwdInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHideNormalConnect(KyWirelessConnectSetting connSettingInfo, KySecuType type); void connectHideNormalConnect(KyWirelessConnectSetting connSettingInfo, KySecuType type);
}; };
#endif // HIDDENWIFIPAGE_H #endif // HIDDENWIFIPAGE_H

View File

@ -112,6 +112,8 @@ void ItemFrame::showJoinPage(bool isSimple, QWidget *widget)
connect(joinPage, &HiddenWiFiPage::connectHideNormalConnect, this, &ItemFrame::connectHideNormalConnect); connect(joinPage, &HiddenWiFiPage::connectHideNormalConnect, this, &ItemFrame::connectHideNormalConnect);
connect(joinPage, &HiddenWiFiPage::connectHideTtlsConnect, this, &ItemFrame::connectHideTtlsConnect); connect(joinPage, &HiddenWiFiPage::connectHideTtlsConnect, this, &ItemFrame::connectHideTtlsConnect);
connect(joinPage, &HiddenWiFiPage::connectHidePeapConnect, this, &ItemFrame::connectHidePeapConnect); connect(joinPage, &HiddenWiFiPage::connectHidePeapConnect, this, &ItemFrame::connectHidePeapConnect);
connect(joinPage, &HiddenWiFiPage::connectHideLeapConnect, this, &ItemFrame::connectHideLeapConnect);
connect(joinPage, &HiddenWiFiPage::connectHidePwdConnect, this, &ItemFrame::connectHidePwdConnect);
joinPage->show(); joinPage->show();
} }
} }

View File

@ -58,6 +58,8 @@ Q_SIGNALS:
void addNetItemClick(); void addNetItemClick();
void connectHidePeapConnect(KyEapMethodPeapInfo info, KyWirelessConnectSetting connSettingInfo); void connectHidePeapConnect(KyEapMethodPeapInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHideTtlsConnect(KyEapMethodTtlsInfo info, KyWirelessConnectSetting connSettingInfo); void connectHideTtlsConnect(KyEapMethodTtlsInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHideLeapConnect(KyEapMethodLeapInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHidePwdConnect(KyEapMethodPwdInfo info, KyWirelessConnectSetting connSettingInfo);
void connectHideNormalConnect(KyWirelessConnectSetting connSettingInfo, KySecuType type); void connectHideNormalConnect(KyWirelessConnectSetting connSettingInfo, KySecuType type);
}; };

View File

@ -795,6 +795,8 @@ void WlanConnect::addDeviceFrame(QString devName)
connect(itemFrame, &ItemFrame::connectHideNormalConnect, manager, &KyNetworkManager::onAddAndActivateNormalWifi); connect(itemFrame, &ItemFrame::connectHideNormalConnect, manager, &KyNetworkManager::onAddAndActivateNormalWifi);
connect(itemFrame, &ItemFrame::connectHideTtlsConnect, manager, &KyNetworkManager::onAddAndActiveWirelessEnterPriseTtlsConnect); connect(itemFrame, &ItemFrame::connectHideTtlsConnect, manager, &KyNetworkManager::onAddAndActiveWirelessEnterPriseTtlsConnect);
connect(itemFrame, &ItemFrame::connectHidePeapConnect, manager, &KyNetworkManager::onAddAndActiveWirelessEnterPrisePeapConnect); connect(itemFrame, &ItemFrame::connectHidePeapConnect, manager, &KyNetworkManager::onAddAndActiveWirelessEnterPrisePeapConnect);
connect(itemFrame, &ItemFrame::connectHideLeapConnect, manager, &KyNetworkManager::onAddAndActiveWirelessEnterPriseLeapConnect);
connect(itemFrame, &ItemFrame::connectHidePwdConnect, manager, &KyNetworkManager::onAddAndActiveWirelessEnterPrisePwdConnect);
} }
//减少设备 //减少设备