diff --git a/src/backend/dbus-interface/kylinapconnectitem.cpp b/src/backend/dbus-interface/kylinapconnectitem.cpp index 52906722..2a94b4aa 100644 --- a/src/backend/dbus-interface/kylinapconnectitem.cpp +++ b/src/backend/dbus-interface/kylinapconnectitem.cpp @@ -7,6 +7,7 @@ KyApConnectItem::KyApConnectItem(QObject *parent) : QObject(parent) m_connectUuid = ""; m_ifaceName = ""; m_password = ""; + m_isActivated = false; } diff --git a/src/backend/dbus-interface/kylinapconnectitem.h b/src/backend/dbus-interface/kylinapconnectitem.h index 1e2f79fa..9ead7b6d 100644 --- a/src/backend/dbus-interface/kylinapconnectitem.h +++ b/src/backend/dbus-interface/kylinapconnectitem.h @@ -16,6 +16,7 @@ public: QString m_connectUuid; QString m_ifaceName; QString m_password; + bool m_isActivated; }; #endif // KYLINAPCONNECTITEM_H diff --git a/src/backend/dbus-interface/kylinconnectresource.cpp b/src/backend/dbus-interface/kylinconnectresource.cpp index abf7cf0c..af84c696 100644 --- a/src/backend/dbus-interface/kylinconnectresource.cpp +++ b/src/backend/dbus-interface/kylinconnectresource.cpp @@ -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(); diff --git a/src/backend/dbus-interface/kywirelessconnectoperation.cpp b/src/backend/dbus-interface/kywirelessconnectoperation.cpp index e04c4711..2d136490 100644 --- a/src/backend/dbus-interface/kywirelessconnectoperation.cpp +++ b/src/backend/dbus-interface/kywirelessconnectoperation.cpp @@ -244,6 +244,9 @@ QString KyWirelessConnectOperation::getPsk(const QString &connectUuid) return ""; } QDBusPendingReply reply = connectPtr->secrets(PSK_SETTING_NAME); + if(!reply.isValid()) { + return ""; + } QMap 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(); - 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"<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()<activateConnectionError(errorMessage); } else { diff --git a/src/backend/dbusadaptor.cpp b/src/backend/dbusadaptor.cpp index 030845e5..65b412f0 100644 --- a/src/backend/dbusadaptor.cpp +++ b/src/backend/dbusadaptor.cpp @@ -33,12 +33,16 @@ void saveDeviceEnableState(QString deviceName, bool enable) return; } -bool getDeviceEnableState(QMap &map) +void getDeviceEnableState(int type, QMap &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 &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 &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 DbusAdaptor::getDeviceListAndEnabled() +QMap DbusAdaptor::getDeviceListAndEnabled(int devType) { QMap map; map.clear(); - getDeviceEnableState(map); + getDeviceEnableState(devType, map); return map; } diff --git a/src/backend/dbusadaptor.h b/src/backend/dbusadaptor.h index c1e2bdd1..a9b567ca 100644 --- a/src/backend/dbusadaptor.h +++ b/src/backend/dbusadaptor.h @@ -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 getDeviceListAndEnabled(); + QMap 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 diff --git a/src/frontend/new-mainwindow.cpp b/src/frontend/new-mainwindow.cpp index f0230056..00d7c45c 100644 --- a/src/frontend/new-mainwindow.cpp +++ b/src/frontend/new-mainwindow.cpp @@ -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); } /** diff --git a/src/frontend/new-mainwindow.h b/src/frontend/new-mainwindow.h index 3ba9197f..091b578b 100644 --- a/src/frontend/new-mainwindow.h +++ b/src/frontend/new-mainwindow.h @@ -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: diff --git a/src/frontend/tab-pages/wlanpage.cpp b/src/frontend/tab-pages/wlanpage.cpp index 3c131928..4ae2fcea 100644 --- a/src/frontend/tab-pages/wlanpage.cpp +++ b/src/frontend/tab-pages/wlanpage.cpp @@ -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"); } } diff --git a/src/frontend/tab-pages/wlanpage.h b/src/frontend/tab-pages/wlanpage.h index 48626b7f..f428e4b2 100644 --- a/src/frontend/tab-pages/wlanpage.h +++ b/src/frontend/tab-pages/wlanpage.h @@ -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);