modify hotspot

This commit is contained in:
jzxc95 2021-09-03 11:47:11 +08:00
parent 2f8f8a9e4a
commit 4d2eda8529
10 changed files with 53 additions and 40 deletions

View File

@ -7,6 +7,7 @@ KyApConnectItem::KyApConnectItem(QObject *parent) : QObject(parent)
m_connectUuid = "";
m_ifaceName = "";
m_password = "";
m_isActivated = false;
}

View File

@ -16,6 +16,7 @@ public:
QString m_connectUuid;
QString m_ifaceName;
QString m_password;
bool m_isActivated;
};
#endif // KYLINAPCONNECTITEM_H

View File

@ -505,6 +505,7 @@ KyApConnectItem *KyConnectResourse::getApConnectItem(NetworkManager::Connection:
apConnectItem->m_connectName = connectPtr->name();
apConnectItem->m_connectUuid = connectPtr->uuid();
apConnectItem->m_ifaceName = settingPtr->interfaceName();
apConnectItem->m_isActivated = m_networkResourceInstance->isActiveConnection(connectPtr->uuid());
//NetworkManager::WirelessSecuritySetting::Ptr wirelessSecuritySetting
// = settingPtr->setting(NetworkManager::Setting::WirelessSecurity).dynamicCast<NetworkManager::WirelessSecuritySetting>();

View File

@ -244,6 +244,9 @@ QString KyWirelessConnectOperation::getPsk(const QString &connectUuid)
return "";
}
QDBusPendingReply<NMVariantMapMap> reply = connectPtr->secrets(PSK_SETTING_NAME);
if(!reply.isValid()) {
return "";
}
QMap<QString,QVariantMap> map(reply.value());
if (map.contains("802-11-wireless-security") && map.value("802-11-wireless-security").contains("psk"))
{
@ -696,10 +699,10 @@ void KyWirelessConnectOperation::updateWirelessApSetting(
NetworkManager::WirelessSecuritySetting::Ptr wirelessSecuritySetting
= apConnectSettingPtr->setting(NetworkManager::Setting::WirelessSecurity).dynamicCast<NetworkManager::WirelessSecuritySetting>();
wirelessSecuritySetting->setInitialized(true);
if (apPassword.isEmpty()) {
wirelessSecuritySetting->setKeyMgmt(NetworkManager::WirelessSecuritySetting::WpaNone);
wirelessSecuritySetting->setInitialized(false);
} else {
wirelessSecuritySetting->setInitialized(true);
wirelessSecuritySetting->setKeyMgmt(NetworkManager::WirelessSecuritySetting::WpaPsk);
wirelessSecuritySetting->setPsk(apPassword);
}
@ -715,7 +718,7 @@ void KyWirelessConnectOperation::activeWirelessAp(const QString apUuid, const QS
if (nullptr == connectPtr) {
NetworkManager::Device::Ptr devicePtr = m_networkResourceInstance->findDeviceInterface(apDevice);
if (devicePtr.isNull()) {
QString errorMsg ="Create hotpot faild. " + apDevice + " is not existed";
QString errorMsg ="Create hotspot faild. " + apDevice + " is not existed";
qWarning()<< errorMsg;
emit addAndActivateConnectionError(errorMsg);
return;
@ -730,7 +733,7 @@ void KyWirelessConnectOperation::activeWirelessAp(const QString apUuid, const QS
watcher = new QDBusPendingCallWatcher{NetworkManager::addAndActivateConnection(apConnectSettingPtr->toMap(), deviceIdentifier, specificObject), this};
connect(watcher, &QDBusPendingCallWatcher::finished, [&] (QDBusPendingCallWatcher * watcher) {
if (watcher->isError() || !watcher->isValid()) {
QString errorMsg = "Create hotpot faild. " + watcher->error().message();
QString errorMsg = "Create hotspot faild. " + watcher->error().message();
qWarning() << errorMsg;
emit addAndActivateConnectionError(errorMsg);
}
@ -831,7 +834,7 @@ void KyWirelessConnectOperation::activateApConnectionByUuid(const QString apUuid
QString connectName = "";
QString specificObject = "";
qDebug()<<"it will activate hotpot connect"<<apUuid;
qDebug()<<"it will activate hotspot connect"<<apUuid;
connectPath = connectPtr->path();
connectName = connectPtr->name();
@ -842,7 +845,7 @@ void KyWirelessConnectOperation::activateApConnectionByUuid(const QString apUuid
}
if (deviceIdentifier.isEmpty()) {
QString errorMessage = tr("Create hotpot faild.Device Identifier is empty, its name") + apDevice;
QString errorMessage = tr("Create hotspot faild.Device Identifier is empty, its name") + apDevice;
qWarning() << errorMessage;
Q_EMIT activateConnectionError(errorMessage);
return ;
@ -852,7 +855,7 @@ void KyWirelessConnectOperation::activateApConnectionByUuid(const QString apUuid
watcher = new QDBusPendingCallWatcher{NetworkManager::activateConnection(connectPath, deviceIdentifier, specificObject), this};
connect(watcher, &QDBusPendingCallWatcher::finished, [this, connectName, apDevice] (QDBusPendingCallWatcher * watcher) {
if (watcher->isError() || !watcher->isValid()) {
QString errorMessage = tr("Create hotpot faild. ") + watcher->error().message();
QString errorMessage = tr("Create hotspot faild. ") + watcher->error().message();
qWarning()<<errorMessage;
emit this->activateConnectionError(errorMessage);
} else {

View File

@ -33,12 +33,16 @@ void saveDeviceEnableState(QString deviceName, bool enable)
return;
}
bool getDeviceEnableState(QMap<QString, bool> &map)
void getDeviceEnableState(int type, QMap<QString, bool> &map)
{
if (!QFile::exists(CONFIG_FILE_PATH)) {
return false;
}
map.clear();
if (!QFile::exists(CONFIG_FILE_PATH)) {
return;
}
if (type != 0 && type != 1) {
qDebug() << "getDeviceEnableState but wrong type";
return;
}
KyNetworkDeviceResourse * kdr = new KyNetworkDeviceResourse();
QStringList wiredDevList,wirelessDevList;
@ -48,19 +52,21 @@ bool getDeviceEnableState(QMap<QString, bool> &map)
QSettings * m_settings = new QSettings(CONFIG_FILE_PATH, QSettings::IniFormat);
m_settings->beginGroup("CARDEABLE");
kdr->getNetworkDeviceList(NetworkManager::Device::Type::Ethernet, wiredDevList);
if (!wiredDevList.isEmpty()) {
for (int i = 0; i < wiredDevList.size(); ++i) {
bool enable = m_settings->value(wiredDevList.at(i), true).toBool();
map.insert(wiredDevList.at(i), enable);
if (type == 0) {
kdr->getNetworkDeviceList(NetworkManager::Device::Type::Ethernet, wiredDevList);
if (!wiredDevList.isEmpty()) {
for (int i = 0; i < wiredDevList.size(); ++i) {
bool enable = m_settings->value(wiredDevList.at(i), true).toBool();
map.insert(wiredDevList.at(i), enable);
}
}
}
kdr->getNetworkDeviceList(NetworkManager::Device::Type::Wifi, wirelessDevList);
if (!wirelessDevList.isEmpty()) {
for (int i = 0; i < wirelessDevList.size(); ++i) {
bool enable = m_settings->value(wirelessDevList.at(i), true).toBool();
map.insert(wirelessDevList.at(i), enable);
} else if (type == 1) {
kdr->getNetworkDeviceList(NetworkManager::Device::Type::Wifi, wirelessDevList);
if (!wirelessDevList.isEmpty()) {
for (int i = 0; i < wirelessDevList.size(); ++i) {
bool enable = m_settings->value(wirelessDevList.at(i), true).toBool();
map.insert(wirelessDevList.at(i), enable);
}
}
}
@ -69,7 +75,7 @@ bool getDeviceEnableState(QMap<QString, bool> &map)
m_settings = nullptr;
delete kdr;
kdr = nullptr;
return true;
return;
}
//设置默认网卡
@ -258,11 +264,11 @@ void DbusAdaptor::deActivateConnect(int type, QString devName, QString ssid)
}
//获取设备列表和启用/禁用状态
QMap<QString, bool> DbusAdaptor::getDeviceListAndEnabled()
QMap<QString, bool> DbusAdaptor::getDeviceListAndEnabled(int devType)
{
QMap<QString, bool> map;
map.clear();
getDeviceEnableState(map);
getDeviceEnableState(devType, map);
return map;
}

View File

@ -75,7 +75,7 @@ public Q_SLOTS: // METHODS
//断开连接 根据网卡类型 参数1 0:lan 1:wlan 参数3 为ssid/uuid
Q_NOREPLY void deActivateConnect(int type, QString devName, QString ssid);
//获取设备列表和启用/禁用状态
QMap<QString, bool> getDeviceListAndEnabled();
QMap<QString, bool> getDeviceListAndEnabled(int devType);
//唤起属性页 根据网卡类型 参数2 为ssid/uuid
Q_NOREPLY void showPropertyWidget(QString devName, QString ssid);
//唤起新建有线连接界面
@ -97,9 +97,9 @@ Q_SIGNALS: // SIGNALS
void deviceStatusChanged();
void deviceNameChanged(QString oldName, QString newName);
//热点断开
void hotPotDeactivated(QString devName, QString ssid);
void hotspotDeactivated(QString devName, QString ssid);
//热点连接
void hotPotActivated(QString devName, QString ssid);
void hotspotActivated(QString devName, QString ssid);
};
#endif

View File

@ -154,8 +154,8 @@ void MainWindow::initDbusConnnect()
connect(m_lanWidget, &LanPage::wiredActivating, this, &MainWindow::wiredActivating);
connect(m_wlanWidget, &WlanPage::wirelessActivating, this, &MainWindow::wirelessActivating);
connect(m_wlanWidget, &WlanPage::hotPotDeactivated, this, &MainWindow::hotPotDeactivated);
connect(m_wlanWidget, &WlanPage::hotPotActivated, this, &MainWindow::hotPotActivated);
connect(m_wlanWidget, &WlanPage::hotspotDeactivated, this, &MainWindow::hotspotDeactivated);
connect(m_wlanWidget, &WlanPage::hotspotActivated, this, &MainWindow::hotspotActivated);
}
/**

View File

@ -52,8 +52,8 @@ signals:
void activateFailed(QString errorMessage);
void deactivateFailed(QString errorMessage);
//热点断开
void hotPotDeactivated(QString devName, QString ssid);
void hotPotActivated(QString devName, QString ssid);
void hotspotDeactivated(QString devName, QString ssid);
void hotspotActivated(QString devName, QString ssid);
public slots:
protected:

View File

@ -364,8 +364,8 @@ void WlanPage::onActivatedWlanChanged(QString uuid, NetworkManager::ActiveConnec
if (!apConnectItemList.isEmpty()) {
foreach (auto item, apConnectItemList) {
if (item->m_connectUuid == uuid) {
qDebug() << "[WlanPage] hotpot Deactivated";
emit hotPotDeactivated(item->m_ifaceName, ssid);
qDebug() << "[WlanPage] hotspot Deactivated";
emit hotspotDeactivated(item->m_ifaceName, ssid);
break;
}
}
@ -378,8 +378,8 @@ void WlanPage::onActivatedWlanChanged(QString uuid, NetworkManager::ActiveConnec
if (!apConnectItemList.isEmpty()) {
foreach (auto item, apConnectItemList) {
if (item->m_connectUuid == uuid) {
qDebug() << "[WlanPage] hotpot Deactivated";
emit hotPotActivated(item->m_ifaceName, ssid);
qDebug() << "[WlanPage] hotspot Deactivated";
emit hotspotActivated(item->m_ifaceName, ssid);
break;
}
}
@ -514,7 +514,7 @@ void WlanPage::deactiveWirelessAp(const QString apName, const QString apPassword
m_wirelessConnectOpreation->deactiveWirelessAp(apName, uuid);
} else {
qDebug() << "[WlanPage] deactiveWirelessAp can not find apName " << apName;
emit deactivateFailed("Deactivate hotpot failed.Don't exist");
emit deactivateFailed("Deactivate hotspot failed.Don't exist " + apName);
}
}
@ -527,6 +527,7 @@ void WlanPage::getStoredApInfo(QStringList &list)
list << apConnectItemList.at(0)->m_connectName;
list << apConnectItemList.at(0)->m_password;
list << apConnectItemList.at(0)->m_ifaceName;
list << (apConnectItemList.at(0)->m_isActivated? "true":"false");
}
}

View File

@ -33,8 +33,8 @@ public:
signals:
void oneItemExpanded(const QString &ssid);
void wirelessActivating(QString devName, QString ssid);
void hotPotDeactivated(QString devName, QString ssid);
void hotPotActivated(QString devName, QString ssid);
void hotspotDeactivated(QString devName, QString ssid);
void hotspotActivated(QString devName, QString ssid);
protected:
bool eventFilter(QObject *watched, QEvent *event);