From 98e0ef5000541adc881dd92e2e163a536a3087b1 Mon Sep 17 00:00:00 2001 From: jzxc95 <907297917@qq.com> Date: Tue, 15 Mar 2022 14:29:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=8A=B6=E6=80=81=E5=8F=98?= =?UTF-8?q?=E5=8C=96=E9=A1=BA=E5=BA=8F=E5=BC=82=E5=B8=B8=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E6=89=98=E7=9B=98=E5=9B=BE=E6=A0=87=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=81=9C=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbus-interface/kylinactiveconnectresource.cpp | 4 ++-- .../dbus-interface/kylinactiveconnectresource.h | 2 +- src/frontend/mainwindow.cpp | 5 ++++- src/frontend/tab-pages/wlanpage.cpp | 11 ++++++++++- src/frontend/tab-pages/wlanpage.h | 1 + 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/backend/dbus-interface/kylinactiveconnectresource.cpp b/src/backend/dbus-interface/kylinactiveconnectresource.cpp index d13caa5d..05526949 100644 --- a/src/backend/dbus-interface/kylinactiveconnectresource.cpp +++ b/src/backend/dbus-interface/kylinactiveconnectresource.cpp @@ -665,7 +665,7 @@ bool KyActiveConnectResourse::wiredConnectIsActived() return false; } -bool KyActiveConnectResourse::wirelessConnectIsActived() +bool KyActiveConnectResourse::checkWirelessStatus(NetworkManager::ActiveConnection::State state) { int index = 0; NetworkManager::ActiveConnection::List activeConnectList; @@ -691,7 +691,7 @@ bool KyActiveConnectResourse::wirelessConnectIsActived() continue; } - if (activeConnectPtr->state() == NetworkManager::ActiveConnection::State::Activated) { + if (activeConnectPtr->state() == state) { return true; } } diff --git a/src/backend/dbus-interface/kylinactiveconnectresource.h b/src/backend/dbus-interface/kylinactiveconnectresource.h index 3bd28cf5..db781917 100644 --- a/src/backend/dbus-interface/kylinactiveconnectresource.h +++ b/src/backend/dbus-interface/kylinactiveconnectresource.h @@ -39,7 +39,7 @@ public: bool connectionIsVirtual(QString uuid); bool wiredConnectIsActived(); - bool wirelessConnectIsActived(); + bool checkWirelessStatus(NetworkManager::ActiveConnection::State state); private: void getActiveConnectIp(NetworkManager::ActiveConnection::Ptr activeConnectPtr, diff --git a/src/frontend/mainwindow.cpp b/src/frontend/mainwindow.cpp index 66bfad43..f100ab2a 100644 --- a/src/frontend/mainwindow.cpp +++ b/src/frontend/mainwindow.cpp @@ -461,7 +461,7 @@ void MainWindow::onRefreshTrayIcon() NetworkManager::Connectivity connecttivity; m_wlanWidget->getConnectivity(connecttivity); - if (connecttivity == NetworkManager::Connectivity::Portal || connecttivity == NetworkManager::Connectivity::Limited) { + if (connecttivity != NetworkManager::Connectivity::Full) { if (iconStatus == IconActiveType::LAN_CONNECTED) { m_trayIcon->setIcon(QIcon::fromTheme("network-error-symbolic")); iconStatus = IconActiveType::LAN_CONNECTED_LIMITED; @@ -504,6 +504,9 @@ void MainWindow::onWlanConnectStatusToChangeTrayIcon(int state) m_wlanIsLoading = true; iconTimer->start(LOADING_TRAYICON_TIMER_MS); } else { + if (m_wlanWidget->wlanIsConnecting()) { + return; + } m_wlanIsLoading = false; if (m_lanIsLoading == false) { onRefreshTrayIcon(); diff --git a/src/frontend/tab-pages/wlanpage.cpp b/src/frontend/tab-pages/wlanpage.cpp index 0ebe0840..f635149a 100644 --- a/src/frontend/tab-pages/wlanpage.cpp +++ b/src/frontend/tab-pages/wlanpage.cpp @@ -1380,7 +1380,16 @@ void WlanPage::showDetailPage(QString devName, QString ssid) bool WlanPage::wlanIsConnected() { - if (m_activatedConnectResource->wirelessConnectIsActived()) { + if (m_activatedConnectResource->checkWirelessStatus(NetworkManager::ActiveConnection::State::Activated)) { + return true; + } else { + return false; + } +} + +bool WlanPage::wlanIsConnecting() +{ + if (m_activatedConnectResource->checkWirelessStatus(NetworkManager::ActiveConnection::State::Activating)) { return true; } else { return false; diff --git a/src/frontend/tab-pages/wlanpage.h b/src/frontend/tab-pages/wlanpage.h index f4880df1..0cc25035 100644 --- a/src/frontend/tab-pages/wlanpage.h +++ b/src/frontend/tab-pages/wlanpage.h @@ -43,6 +43,7 @@ public: void showDetailPage(QString devName, QString uuid); bool wlanIsConnected(); + bool wlanIsConnecting(); void getApInfoBySsid(QString devName, QString ssid, QStringList &list); //无线总开关