From 4722a5384641692dadd20438b11df17905d358e1 Mon Sep 17 00:00:00 2001 From: jzxc95 <907297917@qq.com> Date: Thu, 24 Feb 2022 14:20:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=89=E5=8F=8ANetworkManger=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E9=87=8D=E5=90=AF=E5=AF=BC=E8=87=B4=E7=9A=84=E5=B4=A9?= =?UTF-8?q?=E6=BA=83=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kylinnetworkresourcemanager.cpp | 3 ++- .../dbus-interface/kywirelessnetresource.cpp | 22 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/backend/dbus-interface/kylinnetworkresourcemanager.cpp b/src/backend/dbus-interface/kylinnetworkresourcemanager.cpp index 1fc88ecd..c0f9cc42 100644 --- a/src/backend/dbus-interface/kylinnetworkresourcemanager.cpp +++ b/src/backend/dbus-interface/kylinnetworkresourcemanager.cpp @@ -144,8 +144,10 @@ void KyNetworkResourceManager::insertActiveConnections() void KyNetworkResourceManager::removeConnection(int pos) { //connections signals + QString path = m_connections.at(pos)->path(); NetworkManager::Connection::Ptr conn = m_connections.takeAt(pos); conn->disconnect(this); + emit connectionRemove(path); } void KyNetworkResourceManager::clearConnections() @@ -969,7 +971,6 @@ void KyNetworkResourceManager::onConnectionRemoved(QString const & path) connectionPtr = m_connections.at(index); if (connectionPtr->path() == path) { removeConnection(index); - emit connectionRemove(path); return; } } diff --git a/src/backend/dbus-interface/kywirelessnetresource.cpp b/src/backend/dbus-interface/kywirelessnetresource.cpp index 6823091b..d991dc9e 100644 --- a/src/backend/dbus-interface/kywirelessnetresource.cpp +++ b/src/backend/dbus-interface/kywirelessnetresource.cpp @@ -364,21 +364,15 @@ QString KyWirelessNetResource::getDeviceIFace(NetworkManager::WirelessNetwork::P void KyWirelessNetResource::onWifiNetworkAdded(QString devIfaceName, QString ssid) { - NetworkManager::WirelessNetwork::Ptr wifi = nullptr; - for (auto const & net : m_networkResourceInstance->m_wifiNets) { - if (net.isNull()) { - continue; - } - NetworkManager::AccessPoint::Ptr accessPointPtr = net->referenceAccessPoint(); - QByteArray rawSsid = accessPointPtr->rawSsid(); - QString wifiSsid = getSsidFromByteArray(rawSsid); - - if (wifiSsid == ssid && m_networkResourceInstance->findDeviceUni(net->device())->interfaceName() == devIfaceName) { - wifi = net; - } + NetworkManager::Device::Ptr dev = m_networkResourceInstance->findDeviceInterface(devIfaceName); + if (dev.isNull()) { + return; } + NetworkManager::WirelessDevice* w_dev = qobject_cast(dev.data()); + NetworkManager::WirelessNetwork::Ptr wifi = w_dev->findNetwork(ssid); + if (wifi.isNull()) { return; } @@ -423,6 +417,10 @@ void KyWirelessNetResource::onWifiNetworkPropertyChange(NetworkManager::Wireless QByteArray rawSsid = accessPointPtr->rawSsid(); QString wifiSsid = getSsidFromByteArray(rawSsid); + if (net->device().isEmpty()) { + return; + } + QString devIface = m_networkResourceInstance->findDeviceUni(net->device())->interfaceName(); if (m_WifiNetworkList.contains(devIface)) { QList::iterator iter = m_WifiNetworkList[devIface].begin();