0923-jxj-2

This commit is contained in:
jinxujie 2021-09-23 14:23:43 +08:00
parent 7f8b8ad266
commit 0184986b92
5 changed files with 63 additions and 75 deletions

View File

@ -170,7 +170,7 @@ void MainWindow::initDbusConnnect()
connect(m_lanWidget, &LanPage::lanRemove, this, &MainWindow::lanRemove);
connect(m_lanWidget, &LanPage::lanUpdate, this, &MainWindow::lanUpdate);
connect(m_lanWidget, &LanPage::lanActiveConnectionStateChanged, this, &MainWindow::lanActiveConnectionStateChanged);
connect(m_lanWidget, &LanPage::lanConnectChanged, this, &MainWindow::onGetConnectChangedIcon);
connect(m_lanWidget, &LanPage::lanConnectChanged, this, &MainWindow::onRefreshTrayIcon);
connect(m_wlanWidget, &WlanPage::wlanAdd, this, &MainWindow::wlanAdd);
@ -180,7 +180,7 @@ void MainWindow::initDbusConnnect()
connect(m_wlanWidget, &WlanPage::hotspotActivated, this, &MainWindow::hotspotActivated);
connect(m_wlanWidget, &WlanPage::secuTypeChange, this, &MainWindow::secuTypeChange);
connect(m_wlanWidget, &WlanPage::signalStrengthChange, this, &MainWindow::signalStrengthChange);
connect(m_wlanWidget, &WlanPage::wlanConnectChanged, this, &MainWindow::onGetConnectChangedIcon);
connect(m_wlanWidget, &WlanPage::wlanConnectChanged, this, &MainWindow::onRefreshTrayIcon);
}
/**
@ -303,11 +303,10 @@ void MainWindow::resetWindowTheme()
void MainWindow::showControlCenter()
{
QProcess process;
if(m_lanWidget->lanIsConnected == false && m_wlanWidget->wlanIsConnected == true){
process.startDetached("ukui-control-center --wlanconnect");
}
else{
process.startDetached("ukui-control-center --wiredconnect");
if (m_lanWidget->lanIsConnected == false && m_wlanWidget->wlanIsConnected == true){
process.startDetached("ukui-control-center --wlanconnect");
} else {
process.startDetached("ukui-control-center --wiredconnect");
}
}
@ -345,8 +344,9 @@ void MainWindow::onThemeChanged(const QString &key)
}
}
void MainWindow::onGetConnectChangedIcon()
void MainWindow::onRefreshTrayIcon()
{
//更新托盘图标显示
if (m_lanWidget->lanIsConnected == true){
m_trayIcon->setIcon(QIcon::fromTheme("network-wired-signal-excellent-symbolic"));
} else if (m_wlanWidget->wlanIsConnected == true && m_lanWidget->lanIsConnected == false){

View File

@ -117,7 +117,7 @@ private slots:
void onShowMainwindowActionTriggled();
void onShowSettingsActionTriggled();
void onThemeChanged(const QString &key);
void onGetConnectChangedIcon();
void onRefreshTrayIcon();
};
#endif // MAINWINDOW_H

View File

@ -116,12 +116,12 @@ void TabPage::showDesktopNotify(const QString &message)
QList<QVariant> args;
args<<(tr("Kylin NM"))
<<((unsigned int) 0)
<<QString("/usr/share/icons/ukui-icon-theme-default/24x24/devices/gnome-dev-ethernet.png")
<<tr("kylin network applet desktop message") //显示的是什么类型的信息
<<message //显示的具体信息
<<QStringList()
<<QVariantMap()
<<(int)-1;
<<QString("/usr/share/icons/ukui-icon-theme-default/24x24/devices/gnome-dev-ethernet.png")
<<tr("kylin network applet desktop message") //显示的是什么类型的信息
<<message //显示的具体信息
<<QStringList()
<<QVariantMap()
<<(int)-1;
iface.callWithArgumentList(QDBus::AutoDetect,"Notify",args);
}

View File

@ -36,8 +36,7 @@ WlanPage::WlanPage(QWidget *parent) : TabPage(parent)
connect(this, &WlanPage::hiddenWlanClicked, this, &WlanPage::onHiddenWlanClicked);
connect(this, &WlanPage::settingsClicked, this, &WlanPage::showControlCenter);
connect(m_connectResource, &KyActiveConnectResourse::stateChangeReason, this, &WlanPage::onWlanStatusChange);
connect(m_wirelessConnectOpreation, &KyWirelessConnectOperation::wifinEnabledChanged, this, &WlanPage::onWifinEnabledChanged);
connect(m_wirelessConnectOpreation, &KyWirelessConnectOperation::wifinEnabledChanged, this, &WlanPage::onWifiEnabledChanged);
}
//QString WlanPage::getSsidFromUuid(const QString &uuid)
@ -436,8 +435,48 @@ void WlanPage::onActivatedWlanChanged(QString uuid, NetworkManager::ActiveConnec
{
qDebug()<< "Activated wlan changed, uuid = " << uuid << "; state = " << state << "; reason = " << reason << Q_FUNC_INFO <<__LINE__;
QString ssid,devName;
//wlanpage函数内持续监听连接状态的变化并记录供其他函数调用获取状态
QString devName,ssid;
NetworkManager::ConnectionSettings::ConnectionType type;
if(m_apConnectResource->getInterfaceByUuid(devName, type, uuid)) {
if (type != NetworkManager::ConnectionSettings::ConnectionType::Wireless) {
return;
}
}
if(NetworkManager::ActiveConnection::State::Activated == state){
wlanIsConnected = true;
qDebug() << "[wlanpage] wlanIsConnected status : " << wlanIsConnected << Q_FUNC_INFO << __LINE__ ;
} else {
wlanIsConnected = false;
qDebug() << "[wlanpage] wlanIsConnected status : " << wlanIsConnected << Q_FUNC_INFO << __LINE__ ;
}
//弹窗显示wifi连接状况
qDebug() << "[WlanPage] State changed to :" << state << reason << Q_FUNC_INFO <<__LINE__;
//QString ssid;
m_resource->getSsidByUuid(uuid, ssid, m_defaultDevice);
if (m_activatedWlanSSid == ssid && state == NetworkManager::ActiveConnection::State::Activated) {
if(m_activedssid != m_activatedWlanSSid){
m_activedssid = m_activatedWlanSSid;
qDebug() << "[WlanPage] State changed to :" << state << ssid << reason << Q_FUNC_INFO <<__LINE__;
this->showDesktopNotify(tr("WLAN Connected Successfully"));
}
}
if (state == NetworkManager::ActiveConnection::State::Deactivating){
m_disconectuuid = uuid;
m_disconectingflag = true;
}
if (state == NetworkManager::ActiveConnection::State::Deactivated && m_disconectuuid == uuid){
if(m_disconectingflag){
m_disconectingflag = false;
this->showDesktopNotify(tr("WLAN Disconnected Successfully"));
qDebug() << "clear the activessid" << Q_FUNC_INFO <<__LINE__;
m_activedssid = "";
}
}
//QString ssid,devName;
//NetworkManager::ConnectionSettings::ConnectionType type;
if(m_apConnectResource->getInterfaceByUuid(devName, type, uuid)) {
if (type != NetworkManager::ConnectionSettings::ConnectionType::Wireless) {
@ -596,7 +635,7 @@ void WlanPage::showControlCenter()
QProcess process;
process.startDetached("ukui-control-center --wlanconnect");
}
void WlanPage::onWifinEnabledChanged(bool isWifiOn)
void WlanPage::onWifiEnabledChanged(bool isWifiOn)
{
//监听外部命令导致wifi状态变化更新界面
//应该先检测是否有无线网卡可用,才改变开关状态
@ -785,51 +824,3 @@ void WlanPage::showDetailPage(QString devName, QString ssid)
netDetail->show();
}
void WlanPage::onWlanStatusChange(QString uuid, NetworkManager::ActiveConnection::State state, NetworkManager::ActiveConnection::Reason reason)
{
//wlanpage函数内持续监听连接状态的变化并记录供其他函数调用获取状态
QString devName;
NetworkManager::ConnectionSettings::ConnectionType type;
if(m_apConnectResource->getInterfaceByUuid(devName, type, uuid)) {
if (type != NetworkManager::ConnectionSettings::ConnectionType::Wireless) {
return;
}
}
if(NetworkManager::ActiveConnection::State::Activated == state){
wlanIsConnected = true;
qDebug() << "[wlanpage] wlanIsConnected status : " << wlanIsConnected << Q_FUNC_INFO << __LINE__ ;
} else {
wlanIsConnected = false;
qDebug() << "[wlanpage] wlanIsConnected status : " << wlanIsConnected << Q_FUNC_INFO << __LINE__ ;
}
//弹窗显示wifi连接状况
// QString devName;
// NetworkManager::ConnectionSettings::ConnectionType type;
// if(m_apConnectResource->getInterfaceByUuid(devName, type, uuid)) {
// if (type != NetworkManager::ConnectionSettings::ConnectionType::Wireless) {
// return;
// }
// }
qDebug() << "[WlanPage] State changed to :" << state << reason << Q_FUNC_INFO <<__LINE__;
QString ssid;
m_resource->getSsidByUuid(uuid, ssid, m_defaultDevice);
if (m_activatedWlanSSid == ssid && state == NetworkManager::ActiveConnection::State::Activated) {
if(activessid != m_activatedWlanSSid){
activessid = m_activatedWlanSSid;
qDebug() << "[WlanPage] State changed to :" << state << ssid << reason << Q_FUNC_INFO <<__LINE__;
this->showDesktopNotify(tr("WLAN Connected Successfully"));
}
}
if (state == NetworkManager::ActiveConnection::State::Deactivating){
deactinguuid = uuid;
deactingflag = true;
}
if (state == NetworkManager::ActiveConnection::State::Deactivated && deactinguuid == uuid){
if(deactingflag){
deactingflag = false;
this->showDesktopNotify(tr("WLAN Disconnected Successfully"));
qDebug() << "clear the activessid" << Q_FUNC_INFO <<__LINE__;
activessid = "";
}
}
}

View File

@ -53,9 +53,6 @@ signals:
public slots:
void onMainWindowVisibleChanged(const bool &visible);
void onWlanStatusChange(QString uuid,
NetworkManager::ActiveConnection::State state,
NetworkManager::ActiveConnection::Reason reason);
protected:
bool eventFilter(QObject *watched, QEvent *event);
@ -63,10 +60,10 @@ protected:
private:
void initWlanUI();
void initConnections();
QString activessid;
QString deactinguuid;
int deacting;
bool deactingflag = false;
QString m_activedssid;
QString m_disconectuuid;
int m_disconecting;
bool m_disconectingflag = false;
//定时触发扫描的定时器
void initTimer();
@ -120,7 +117,7 @@ private slots:
void requestScan();
void onHiddenWlanClicked();
void showControlCenter();
void onWifinEnabledChanged(bool isWifiOn);
void onWifiEnabledChanged(bool isWifiOn);
};
#endif // WLANPAGE_H