补充接口 无线开关监听gsetting 修改移动热点状态变化信号
This commit is contained in:
parent
b8b6b8660b
commit
af822db78a
|
@ -14,7 +14,7 @@ public:
|
|||
|
||||
void getApConnections(QList<KyApConnectItem> &apConnectItemList);
|
||||
Q_SIGNALS:
|
||||
void wirelessApConnectStateChange();
|
||||
void wirelessApConnectStateChange(QString devName, QString ssid, QString uuid, KyConnectState state);
|
||||
private:
|
||||
KyApConnectItem getApConnectItem(NetworkManager::Connection::Ptr connectPtr);
|
||||
KyApConnectItem getApConnectionByUuid(QString connectUuid);
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#define LOG_FLAG "[KyNetworkResourceManager]"
|
||||
|
||||
const QString WIRED_SWITCH = "wiredswitch";
|
||||
|
||||
//单例部分
|
||||
KyNetworkResourceManager* KyNetworkResourceManager::m_pInstance = nullptr;
|
||||
|
||||
|
@ -53,6 +55,11 @@ KyNetworkResourceManager::KyNetworkResourceManager(QObject *parent) : QObject(pa
|
|||
qRegisterMetaType<KyConnectState>("KyConnectState");
|
||||
qRegisterMetaType<KyConnectivity>("KyConnectivity");
|
||||
qRegisterMetaType<KyDeviceType>("KyDeviceType");
|
||||
//GSettings
|
||||
const QByteArray id(GSETTINGS_SCHEMA);
|
||||
if (QGSettings::isSchemaInstalled(id)) {
|
||||
m_switchGsettings = new QGSettings(id, QByteArray(), this);
|
||||
}
|
||||
}
|
||||
|
||||
//start后执行 循环检查m_initFinished 非true阻塞
|
||||
|
@ -87,7 +94,7 @@ void KyNetworkResourceManager::onInitNetwork()
|
|||
connect(NetworkManager::notifier(), &NetworkManager::Notifier::networkingEnabledChanged,
|
||||
this, &KyNetworkResourceManager::networkingEnabledChanged);
|
||||
connect(NetworkManager::notifier(), &NetworkManager::Notifier::wirelessEnabledChanged,
|
||||
this, &KyNetworkResourceManager::wifiEnabledChanged);
|
||||
this, &KyNetworkResourceManager::onWirelessEnabledChanged);
|
||||
connect(NetworkManager::notifier(), &NetworkManager::Notifier::primaryConnectionTypeChanged,
|
||||
this, &KyNetworkResourceManager::onPrimaryConnectionTypeChanged);
|
||||
|
||||
|
@ -605,11 +612,22 @@ void KyNetworkResourceManager::onPropertiesChanged(QVariantMap qvm)
|
|||
if (keyStr == "WiredEnabled") {
|
||||
bool wiredEnable = qvm.value("WiredEnabled").toBool();
|
||||
qDebug() << "wiredEnabledChanged" << wiredEnable;
|
||||
if (m_switchGsettings != nullptr && m_switchGsettings->get(WIRED_SWITCH).toBool() != wiredEnable) {
|
||||
m_switchGsettings->set(WIRED_SWITCH, wiredEnable);
|
||||
}
|
||||
Q_EMIT wiredEnabledChanged(wiredEnable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void KyNetworkResourceManager::onWirelessEnabledChanged(bool enable)
|
||||
{
|
||||
if (m_switchGsettings != nullptr && m_switchGsettings->get(WIRELESS_SWITCH).toBool() != enable) {
|
||||
m_switchGsettings->set(WIRELESS_SWITCH, enable);
|
||||
}
|
||||
Q_EMIT wifiEnabledChanged(enable);
|
||||
}
|
||||
|
||||
|
||||
void KyNetworkResourceManager::onConnectionUpdated()
|
||||
{
|
||||
|
@ -675,7 +693,8 @@ void KyNetworkResourceManager::connectActiveStateChange(NetworkManager::Connecti
|
|||
= connectSettingsPtr->setting(NetworkManager::Setting::Wireless).dynamicCast<NetworkManager::WirelessSetting>();
|
||||
if (NetworkManager::WirelessSetting::NetworkMode::Ap
|
||||
== wirelessSetting->mode()) {
|
||||
Q_EMIT wirelessApConnectStateChange();
|
||||
QString ssid = wirelessSetting->ssid();
|
||||
Q_EMIT wirelessApConnectStateChange(deviceName, ssid, uuid, state);
|
||||
}
|
||||
} else if (connectionType == CONNECT_TYPE_WIRED) {
|
||||
wiredActiveStateChange(connectPtr->path(), deviceName, uuid, state);
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
#include "NetworkManagerQt/Security8021xSetting"
|
||||
#include <QDBusPendingCallWatcher>
|
||||
#include <QMetaEnum>
|
||||
#include <QGSettings/QGSettings>
|
||||
|
||||
#include "kylinnetworkresourcetype.h"
|
||||
|
||||
|
@ -126,6 +127,7 @@ private:
|
|||
private Q_SLOTS:
|
||||
void onServiceAppear(QString, QString, QString);
|
||||
void onPropertiesChanged(QVariantMap qvm);
|
||||
void onWirelessEnabledChanged(bool enable);
|
||||
|
||||
Q_SIGNALS:
|
||||
|
||||
|
@ -176,7 +178,7 @@ Q_SIGNALS:
|
|||
|
||||
void wiredConnectStateChange(QString deviceName, QString uuid, KyConnectState state);
|
||||
void wirelessConnectStateChange(QString deviceName, QString ssid, QString uuid, KyConnectState state);
|
||||
void wirelessApConnectStateChange();
|
||||
void wirelessApConnectStateChange(QString devName, QString ssid, QString uuid, KyConnectState state);
|
||||
|
||||
|
||||
//general
|
||||
|
@ -239,6 +241,7 @@ private:
|
|||
NetworkManager::WirelessNetwork::List m_wifiNetList;
|
||||
|
||||
QMap<QString, QString> m_deviceMap;
|
||||
QGSettings *m_switchGsettings;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -593,6 +593,9 @@ void KyWirelessNetResource::onDeviceNameUpdate(QString oldName, QString newName)
|
|||
|
||||
void KyWirelessNetResource::updateList()
|
||||
{
|
||||
QMap<QString, QVector<QStringList> > map;
|
||||
QVector<QStringList> vector;
|
||||
|
||||
for (int i = 0; i< m_WifiNetworkList.keys().size(); ++i) {
|
||||
QString devName = m_WifiNetworkList.keys().at(i);
|
||||
QList<KyActivateItem> connectItemList;
|
||||
|
@ -601,7 +604,39 @@ void KyWirelessNetResource::updateList()
|
|||
QList<KyWirelessNetItem> list = m_WifiNetworkList[devName];
|
||||
wifiListSort(list);
|
||||
Q_EMIT updateWifiList(devName, connectItemList, list);
|
||||
|
||||
QString activeSsid;
|
||||
vector.clear();
|
||||
if (!connectItemList.isEmpty()) {
|
||||
QString secuType = "";
|
||||
int category = 0;
|
||||
activeSsid = connectItemList.at(0).m_ssid;
|
||||
getWirelessConnectInfo(devName, secuType, category);
|
||||
vector.append(QStringList() << activeSsid
|
||||
<< QString::number(actResource.getAcivateWifiSignal())
|
||||
<< secuType
|
||||
<< connectItemList.at(0).m_uuid
|
||||
<< QString::number(isApConnection(connectItemList.at(0).m_uuid))
|
||||
<< QString::number(category));
|
||||
} else {
|
||||
vector.append(QStringList("--"));
|
||||
}
|
||||
if (!list.isEmpty()) {
|
||||
for (const auto itemData : list) {
|
||||
if (itemData.m_NetSsid == activeSsid) {
|
||||
continue;
|
||||
} else {
|
||||
vector.append(QStringList()<<itemData.m_NetSsid
|
||||
<< QString::number(itemData.m_signalStrength)
|
||||
<< itemData.m_secuType
|
||||
<< QString::number(itemData.m_isApConnection)
|
||||
<< QString::number(itemData.m_category));
|
||||
}
|
||||
}
|
||||
}
|
||||
map.insert(devName, vector);
|
||||
}
|
||||
Q_EMIT updateWifiListInCtrlCenter(map);
|
||||
}
|
||||
|
||||
QString KyWirelessNetResource::getDeviceIFace(NetworkManager::WirelessNetwork::Ptr net)
|
||||
|
|
|
@ -78,6 +78,7 @@ Q_SIGNALS:
|
|||
void wirelessDeviceNameUpdate(QString oldName, QString newName);
|
||||
|
||||
void updateWifiList(QString, QList<KyActivateItem>, QList<KyWirelessNetItem>);
|
||||
void updateWifiListInCtrlCenter(QMap<QString, QVector<QStringList>>);
|
||||
|
||||
private:
|
||||
QMap<QString, QList<KyWirelessNetItem>> m_WifiNetworkList;
|
||||
|
|
|
@ -77,9 +77,10 @@ Q_SIGNALS:
|
|||
void wirelessDeviceNameUpdate(QString oldName, QString newName);
|
||||
|
||||
void updateWifiList(QString, QList<KyActivateItem>, QList<KyWirelessNetItem>);
|
||||
void updateWifiListInCtrlCenter(QMap<QString, QVector<QStringList>>);
|
||||
|
||||
//移动热点
|
||||
void wirelessApConnectStateChange();
|
||||
void wirelessApConnectStateChange(QString devName, QString ssid, QString uuid, KyConnectState state);
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -95,6 +95,8 @@ void KyNetworkManager::initConnect()
|
|||
this, &KyNetworkManager::wirelessDeviceNameUpdate);
|
||||
connect(m_wirelessNetResource, &KyWirelessNetResource::updateWifiList,
|
||||
this, &KyNetworkManager::updateWifiList);
|
||||
connect(m_wirelessNetResource, &KyWirelessNetResource::updateWifiListInCtrlCenter,
|
||||
this, &KyNetworkManager::updateWifiListInCtrlCenter);
|
||||
}
|
||||
|
||||
//同步方法
|
||||
|
|
Loading…
Reference in New Issue