add connectionUpdate signal && getWirelessActiveConnection
This commit is contained in:
parent
c8fb25edee
commit
c3b54fafaf
|
@ -36,6 +36,7 @@ KyWirelessNetItem::KyWirelessNetItem(NetworkManager::WirelessNetwork::Ptr net)
|
|||
m_connName = "";
|
||||
m_connDbusPath = "";
|
||||
m_secuType = "";
|
||||
m_device = "";
|
||||
|
||||
init(net);
|
||||
}
|
||||
|
@ -57,6 +58,7 @@ void KyWirelessNetItem::init(NetworkManager::WirelessNetwork::Ptr net)
|
|||
NetworkManager::AccessPoint::WpaFlags rsnFlag = net->referenceAccessPoint()->rsnFlags();
|
||||
m_secuType = enumToQstring(cap, wpaFlag, rsnFlag);
|
||||
m_bssid = net->referenceAccessPoint()->hardwareAddress();
|
||||
m_device = net->device();
|
||||
initInfoBySsid();
|
||||
}
|
||||
|
||||
|
@ -71,19 +73,13 @@ void KyWirelessNetItem::initInfoBySsid()
|
|||
}
|
||||
NetworkManager::WirelessSetting::Ptr wifi_sett
|
||||
= settings->setting(NetworkManager::Setting::Wireless).dynamicCast<NetworkManager::WirelessSetting>();
|
||||
if (wifi_sett->ssid() == m_NetSsid)
|
||||
QString devName = m_networkResourceInstance->findDeviceUni(m_device)->interfaceName();
|
||||
if (wifi_sett->ssid() == m_NetSsid && (settings->interfaceName().compare(devName) == 0 || settings->interfaceName().isEmpty()))
|
||||
{
|
||||
m_connectUuid = settings->uuid();
|
||||
m_connName = conn->name();
|
||||
m_connDbusPath = conn->path();
|
||||
m_isConfigured = true;
|
||||
|
||||
if(wifi_sett->ssid() == "NewWifi")
|
||||
{
|
||||
NetworkManager::WirelessSecuritySetting::Ptr security_sett
|
||||
= settings->setting(NetworkManager::Setting::WirelessSecurity).dynamicCast<NetworkManager::WirelessSecuritySetting>();
|
||||
qDebug() << security_sett->keyMgmt();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ public:
|
|||
|
||||
private:
|
||||
KyNetworkResourceManager *m_networkResourceInstance = nullptr;
|
||||
QString m_device;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ KyWirelessNetResource::KyWirelessNetResource(QObject *parent)
|
|||
{
|
||||
qDebug()<<"KyWirelessNetResource";
|
||||
m_networkResourceInstance = KyNetworkResourceManager::getInstance();
|
||||
m_connectResource = new KyConnectResourse(this);
|
||||
|
||||
kyWirelessNetItemListInit();
|
||||
|
||||
|
@ -14,8 +15,9 @@ KyWirelessNetResource::KyWirelessNetResource(QObject *parent)
|
|||
connect(m_networkResourceInstance, &KyNetworkResourceManager::wifiNetworkPropertyChange, this, &KyWirelessNetResource::onWifiNetworkPropertyChange);
|
||||
connect(m_networkResourceInstance, &KyNetworkResourceManager::wifiNetworkDeviceDisappear, this, &KyWirelessNetResource::onWifiNetworkDeviceDisappear);
|
||||
|
||||
//connect(m_networkResourceInstance, &KyNetworkResourceManager::connectionAdd, this, &KyWirelessNetResource::onConnectionAdd);
|
||||
connect(m_networkResourceInstance, &KyNetworkResourceManager::connectionRemove, this, &KyWirelessNetResource::onConnectionRemove);
|
||||
connect(m_connectResource, &KyConnectResourse::connectionAdd, this, &KyWirelessNetResource::onConnectionAdd);
|
||||
connect(m_connectResource, &KyConnectResourse::connectionRemove, this, &KyWirelessNetResource::onConnectionRemove);
|
||||
connect(m_connectResource, &KyConnectResourse::connectionUpdate, this, &KyWirelessNetResource::onConnectionUpdate);
|
||||
|
||||
}
|
||||
|
||||
|
@ -26,7 +28,7 @@ KyWirelessNetResource::~KyWirelessNetResource()
|
|||
|
||||
bool KyWirelessNetResource::getAllDeviceWifiNetwork(QMap<QString,QList<KyWirelessNetItem> > &map)
|
||||
{
|
||||
onWifiNetworkDeviceDisappear();
|
||||
// onWifiNetworkDeviceDisappear();
|
||||
if (m_WifiNetworkList.isEmpty()) {
|
||||
return false;
|
||||
} else {
|
||||
|
@ -38,7 +40,7 @@ bool KyWirelessNetResource::getAllDeviceWifiNetwork(QMap<QString,QList<KyWireles
|
|||
|
||||
bool KyWirelessNetResource::getDeviceWifiNetwork(QString devIfaceName, QList<KyWirelessNetItem> &wirelessNetResource)
|
||||
{
|
||||
onWifiNetworkDeviceDisappear();
|
||||
// onWifiNetworkDeviceDisappear();
|
||||
|
||||
if (!m_WifiNetworkList.contains(devIfaceName)) {
|
||||
return false;
|
||||
|
@ -50,7 +52,7 @@ bool KyWirelessNetResource::getDeviceWifiNetwork(QString devIfaceName, QList<KyW
|
|||
|
||||
bool KyWirelessNetResource::getWifiNetwork(QString &devIfaceName, QString &ssid, KyWirelessNetItem &wirelessNetResource)
|
||||
{
|
||||
onWifiNetworkDeviceDisappear();
|
||||
// onWifiNetworkDeviceDisappear();
|
||||
|
||||
if (!m_WifiNetworkList.contains(devIfaceName)) {
|
||||
return false;
|
||||
|
@ -66,9 +68,10 @@ bool KyWirelessNetResource::getWifiNetwork(QString &devIfaceName, QString &ssid,
|
|||
return false;
|
||||
}
|
||||
|
||||
bool KyWirelessNetResource::getWirelessActiveConnection(QMap<QString,QStringList> &map)
|
||||
void KyWirelessNetResource::getWirelessActiveConnection(NetworkManager::ActiveConnection::State state, QMap<QString,QStringList> &map)
|
||||
{
|
||||
int index = 0;
|
||||
map.clear();
|
||||
NetworkManager::ActiveConnection::List activeConnectionList;
|
||||
|
||||
map.clear();
|
||||
|
@ -76,8 +79,7 @@ bool KyWirelessNetResource::getWirelessActiveConnection(QMap<QString,QStringList
|
|||
activeConnectionList = m_networkResourceInstance->m_activeConns;
|
||||
if (activeConnectionList.isEmpty())
|
||||
{
|
||||
map.clear();
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
NetworkManager::ActiveConnection::Ptr activeConnectionPtr = nullptr;
|
||||
|
@ -88,7 +90,7 @@ bool KyWirelessNetResource::getWirelessActiveConnection(QMap<QString,QStringList
|
|||
{
|
||||
continue;
|
||||
}
|
||||
if (NetworkManager::ActiveConnection::Activated != activeConnectionPtr->state())
|
||||
if (state != activeConnectionPtr->state())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@ -102,7 +104,7 @@ bool KyWirelessNetResource::getWirelessActiveConnection(QMap<QString,QStringList
|
|||
map.insert(ifaceName,list);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
QString KyWirelessNetResource::getDeviceIFace(NetworkManager::ActiveConnection::Ptr actConn,
|
||||
|
@ -114,7 +116,8 @@ QString KyWirelessNetResource::getDeviceIFace(NetworkManager::ActiveConnection::
|
|||
|
||||
NetworkManager::Connection::Ptr conn = actConn->connection();
|
||||
NetworkManager::ConnectionSettings::Ptr sett = conn->settings();
|
||||
wirelessNetResourcessid = sett->id();
|
||||
NetworkManager::WirelessSetting::Ptr wireless_sett = sett->setting(NetworkManager::Setting::Wireless).dynamicCast<NetworkManager::WirelessSetting>();
|
||||
wirelessNetResourcessid = wireless_sett->ssid();
|
||||
|
||||
return sett->interfaceName();
|
||||
}
|
||||
|
@ -410,13 +413,13 @@ bool KyWirelessNetResource::getEnterPriseInfoTtls(QString &uuid, KyEapMethodTtls
|
|||
}
|
||||
|
||||
|
||||
void KyWirelessNetResource::onConnectionAdd(NetworkManager::Connection::Ptr conn)
|
||||
void KyWirelessNetResource::onConnectionAdd(QString uuid)
|
||||
{
|
||||
qDebug() << "onConnectionAdd add " << conn->name();
|
||||
QString devIfaceName;
|
||||
QString ssid;
|
||||
qDebug() << "onConnectionAdd " << uuid;
|
||||
NetworkManager::Connection::Ptr conn = m_networkResourceInstance->getConnect(uuid);
|
||||
if (conn.isNull())
|
||||
{
|
||||
qDebug() << "onConnectionAdd can not find connection" << uuid;
|
||||
return;
|
||||
}
|
||||
NetworkManager::ConnectionSettings::Ptr sett= conn->settings();
|
||||
|
@ -425,15 +428,14 @@ void KyWirelessNetResource::onConnectionAdd(NetworkManager::Connection::Ptr conn
|
|||
return;
|
||||
}
|
||||
NetworkManager::WirelessSetting::Ptr wireless_sett = sett->setting(NetworkManager::Setting::Wireless).dynamicCast<NetworkManager::WirelessSetting>();
|
||||
bool isFind = false;
|
||||
QMap<QString, QString> map;
|
||||
map.clear();
|
||||
QMap<QString, QList<KyWirelessNetItem> >::iterator iter = m_WifiNetworkList.begin();
|
||||
while (iter != m_WifiNetworkList.end())
|
||||
{
|
||||
for(int i = 0; i < iter.value().size(); i++)
|
||||
{
|
||||
if (iter.value().at(i).m_NetSsid == wireless_sett->ssid())
|
||||
{
|
||||
isFind = true;
|
||||
while (iter != m_WifiNetworkList.end()) {
|
||||
for(int i = 0; i < iter.value().size(); i++) {
|
||||
if (iter.value().at(i).m_NetSsid == wireless_sett->ssid() && (sett->interfaceName() == iter.key() || sett->interfaceName().isEmpty())) {
|
||||
QString devIfaceName;
|
||||
QString ssid;
|
||||
m_WifiNetworkList[iter.key()][i].m_isConfigured = true;
|
||||
m_WifiNetworkList[iter.key()][i].m_connName = conn->name();
|
||||
m_WifiNetworkList[iter.key()][i].m_connectUuid = conn->uuid();
|
||||
|
@ -441,22 +443,27 @@ void KyWirelessNetResource::onConnectionAdd(NetworkManager::Connection::Ptr conn
|
|||
|
||||
devIfaceName = sett->interfaceName();
|
||||
ssid = iter.value().at(i).m_NetSsid;
|
||||
map.insert(devIfaceName, ssid);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
iter++;
|
||||
}
|
||||
if (isFind)
|
||||
{
|
||||
emit connectionAdd(devIfaceName, ssid);
|
||||
if (!map.isEmpty()) {
|
||||
for(auto var = map.cbegin(); var != map.cend(); var++) {
|
||||
QString devIfaceName = var.key();
|
||||
QString ssid = var.value();
|
||||
emit connectionAdd(devIfaceName, ssid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void KyWirelessNetResource::onConnectionRemove(QString path)
|
||||
{
|
||||
qDebug() << "onConnectionRemove remove " << path;
|
||||
bool isFind = false;
|
||||
QString devIfaceName;
|
||||
QString ssid;
|
||||
QMap<QString, QString> map;
|
||||
map.clear();
|
||||
|
||||
QMap<QString, QList<KyWirelessNetItem> >::iterator iter = m_WifiNetworkList.begin();
|
||||
while (iter != m_WifiNetworkList.end())
|
||||
|
@ -467,7 +474,8 @@ void KyWirelessNetResource::onConnectionRemove(QString path)
|
|||
qDebug() << iter.value().at(i).m_connDbusPath;
|
||||
if (iter.value().at(i).m_connDbusPath == path)
|
||||
{
|
||||
isFind = true;
|
||||
QString devIfaceName;
|
||||
QString ssid;
|
||||
m_WifiNetworkList[iter.key()][i].m_isConfigured = false;
|
||||
m_WifiNetworkList[iter.key()][i].m_connName = "";
|
||||
m_WifiNetworkList[iter.key()][i].m_connectUuid = "";
|
||||
|
@ -475,14 +483,38 @@ void KyWirelessNetResource::onConnectionRemove(QString path)
|
|||
|
||||
devIfaceName = iter.key();
|
||||
ssid = iter.value().at(i).m_NetSsid;
|
||||
map.insert(devIfaceName, ssid);
|
||||
break;
|
||||
}
|
||||
}
|
||||
iter++;
|
||||
}
|
||||
if (!map.isEmpty()) {
|
||||
for(auto var = map.cbegin(); var != map.cend(); var++) {
|
||||
QString devIfaceName = var.key();
|
||||
QString ssid = var.value();
|
||||
emit connectionRemove(devIfaceName, ssid);
|
||||
}
|
||||
}
|
||||
|
||||
if (isFind)
|
||||
{
|
||||
emit connectionRemove(devIfaceName, ssid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KyWirelessNetResource::onConnectionUpdate(QString uuid)
|
||||
{
|
||||
qDebug() << "onConnectionUpdate " << uuid;
|
||||
NetworkManager::Connection::Ptr conn = m_networkResourceInstance->getConnect(uuid);
|
||||
if (conn.isNull())
|
||||
{
|
||||
qDebug() << "onConnectionAdd can not find connection" << uuid;
|
||||
return;
|
||||
}
|
||||
NetworkManager::ConnectionSettings::Ptr sett= conn->settings();
|
||||
if (sett->connectionType() != NetworkManager::ConnectionSettings::ConnectionType::Wireless)
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_WifiNetworkList.clear();
|
||||
kyWirelessNetItemListInit();
|
||||
emit wifiNetworkUpadte();
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "kywirelessnetitem.h"
|
||||
#include "kylinnetworkresourcemanager.h"
|
||||
#include "kyenterpricesettinginfo.h"
|
||||
#include "kylinconnectresource.h"
|
||||
|
||||
|
||||
//class KyWirelessNetItem;
|
||||
|
@ -25,7 +26,7 @@ public:
|
|||
bool getEnterPriseInfoPeap(QString &uuid, KyEapMethodPeapInfo &info);
|
||||
bool getEnterPriseInfoTtls(QString &uuid, KyEapMethodTtlsInfo &info);
|
||||
|
||||
bool getWirelessActiveConnection(QMap<QString, QStringList> &map);
|
||||
void getWirelessActiveConnection(NetworkManager::ActiveConnection::State state, QMap<QString, QStringList> &map);
|
||||
|
||||
|
||||
private:
|
||||
|
@ -39,7 +40,8 @@ public slots:
|
|||
void onWifiNetworkPropertyChange(NetworkManager::WirelessNetwork * net);
|
||||
void onWifiNetworkDeviceDisappear();
|
||||
|
||||
void onConnectionAdd(NetworkManager::Connection::Ptr conn);
|
||||
void onConnectionAdd(QString uuid);
|
||||
void onConnectionUpdate(QString uuid);
|
||||
void onConnectionRemove(QString);
|
||||
|
||||
signals:
|
||||
|
@ -48,11 +50,13 @@ signals:
|
|||
void secuTypeChange(QString, QString, QString);
|
||||
void connectionRemove(QString, QString);
|
||||
void connectionAdd(QString, QString);
|
||||
void wifiNetworkUpadte();
|
||||
void wifiNetworkAdd(QString, KyWirelessNetItem&);
|
||||
void wifiNetworkRemove(QString, QString);
|
||||
|
||||
private:
|
||||
KyNetworkResourceManager *m_networkResourceInstance = nullptr;
|
||||
KyConnectResourse *m_connectResource = nullptr;
|
||||
QMap<QString, QList<KyWirelessNetItem> > m_WifiNetworkList;
|
||||
|
||||
};
|
||||
|
|
|
@ -127,8 +127,9 @@ void NmDemo::initConnect()
|
|||
|
||||
//ui button
|
||||
connect(refreshButton, &QPushButton::clicked, [=](){
|
||||
appendDebugLog("init refreshButton clicked...");
|
||||
m_wco->requestWirelessScan();
|
||||
// appendDebugLog("init refreshButton clicked...");
|
||||
// m_wco->requestWirelessScan();
|
||||
getWifiList();
|
||||
});
|
||||
|
||||
connect(connectButton, &QPushButton::clicked, this, &NmDemo::onConnectClicked);
|
||||
|
@ -153,8 +154,11 @@ void NmDemo::initConnect()
|
|||
connect(m_wnr, &KyWirelessNetResource::secuTypeChange, this ,&NmDemo::onSecuTypeChange);
|
||||
connect(m_wnr, &KyWirelessNetResource::signalStrengthChange, this ,&NmDemo::onSignalStrengthChange);
|
||||
|
||||
|
||||
|
||||
connect(m_wnr, &KyWirelessNetResource::connectionRemove, this ,&NmDemo::onConnectionRemove);
|
||||
connect(m_wnr, &KyWirelessNetResource::connectionAdd, this ,&NmDemo::onConnectionAdd);
|
||||
connect(m_wnr, &KyWirelessNetResource::wifiNetworkUpadte, this ,&NmDemo::onWifiNetworkUpdate);
|
||||
connect(m_wnr, &KyWirelessNetResource::wifiNetworkAdd, this ,&NmDemo::onWifiNetworkAdd);
|
||||
connect(m_wnr, &KyWirelessNetResource::wifiNetworkRemove, this ,&NmDemo::onWifiNetworkRemove);
|
||||
|
||||
|
@ -221,6 +225,12 @@ void NmDemo::onWifiNetworkRemove(QString devIface, QString ssid)
|
|||
getWifiList();
|
||||
}
|
||||
|
||||
void NmDemo::onWifiNetworkUpdate()
|
||||
{
|
||||
appendDebugLog("onWifiNetworkUpdate...");
|
||||
getWifiList();
|
||||
}
|
||||
|
||||
void NmDemo::onConnectClicked()
|
||||
{
|
||||
appendDebugLog("onConnectClicked...");
|
||||
|
@ -541,21 +551,44 @@ void NmDemo::getWifiList()
|
|||
qDebug() << "getWifiList";
|
||||
wifiList->clear();
|
||||
QMap<QString,QStringList> actMap;
|
||||
if (!m_wnr->getWirelessActiveConnection(actMap))
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_wnr->getWirelessActiveConnection(NetworkManager::ActiveConnection::State::Activated, actMap);
|
||||
appendDebugLog("getWirelessActiveConnection Activated " +QString::number(actMap.size()));
|
||||
|
||||
QMap<QString,QStringList>::iterator iter1 = actMap.begin();
|
||||
while (iter1 != actMap.end())
|
||||
{
|
||||
wifiList->append(iter1.key());
|
||||
for (int i = 0; i < iter1->size(); i++)
|
||||
{
|
||||
wifiList->append(iter1->at(i));
|
||||
wifiList->append("Activated" + iter1->at(i));
|
||||
}
|
||||
wifiList->append("====================================");
|
||||
iter1++;
|
||||
}
|
||||
|
||||
m_wnr->getWirelessActiveConnection(NetworkManager::ActiveConnection::State::Activating, actMap);
|
||||
appendDebugLog("getWirelessActiveConnection Activating " +QString::number(actMap.size()));
|
||||
|
||||
QMap<QString,QStringList>::iterator iter2 = actMap.begin();
|
||||
while (iter2 != actMap.end())
|
||||
{
|
||||
wifiList->append(iter2.key());
|
||||
for (int i = 0; i < iter2->size(); i++)
|
||||
{
|
||||
wifiList->append("Activating" + iter2->at(i));
|
||||
}
|
||||
wifiList->append("====================================");
|
||||
iter2++;
|
||||
}
|
||||
|
||||
m_wnr->getWirelessActiveConnection(NetworkManager::ActiveConnection::State::Deactivating, actMap);
|
||||
appendDebugLog("getWirelessActiveConnection Deactivating " +QString::number(actMap.size()));
|
||||
|
||||
m_wnr->getWirelessActiveConnection(NetworkManager::ActiveConnection::State::Deactivated, actMap);
|
||||
appendDebugLog("getWirelessActiveConnection Deactivated " +QString::number(actMap.size()));
|
||||
|
||||
return;
|
||||
|
||||
QMap<QString, QList<KyWirelessNetItem> > map;
|
||||
if (!m_wnr->getAllDeviceWifiNetwork(map))
|
||||
{
|
||||
|
@ -564,6 +597,7 @@ void NmDemo::getWifiList()
|
|||
QMap<QString, QList<KyWirelessNetItem> >::iterator iter = map.begin();
|
||||
while (iter != map.end())
|
||||
{
|
||||
qDebug() << iter.key() << iter.value().size();
|
||||
for (int i = 0; i < iter.value().size(); i++)
|
||||
{
|
||||
qDebug() << iter.value().at(i).m_NetSsid;
|
||||
|
|
|
@ -70,6 +70,7 @@ public slots:
|
|||
void onConnectionAdd(QString, QString);
|
||||
void onWifiNetworkAdd(QString, KyWirelessNetItem&);
|
||||
void onWifiNetworkRemove(QString, QString);
|
||||
void onWifiNetworkUpdate();
|
||||
|
||||
void onConnectClicked();
|
||||
void onDisConnectClicked();
|
||||
|
|
Loading…
Reference in New Issue