hotpot connect && disconnect signal
This commit is contained in:
parent
22bf3af64b
commit
6b972e007d
|
@ -670,10 +670,10 @@ NetworkManager::ConnectionSettings::Ptr
|
||||||
|
|
||||||
NetworkManager::WirelessSecuritySetting::Ptr wirelessSecuritySetting
|
NetworkManager::WirelessSecuritySetting::Ptr wirelessSecuritySetting
|
||||||
= connectionSettings->setting(NetworkManager::Setting::WirelessSecurity).dynamicCast<NetworkManager::WirelessSecuritySetting>();
|
= connectionSettings->setting(NetworkManager::Setting::WirelessSecurity).dynamicCast<NetworkManager::WirelessSecuritySetting>();
|
||||||
wirelessSecuritySetting->setInitialized(true);
|
|
||||||
if (apPassword.isEmpty()) {
|
if (apPassword.isEmpty()) {
|
||||||
wirelessSecuritySetting->setKeyMgmt(NetworkManager::WirelessSecuritySetting::WpaNone);
|
wirelessSecuritySetting->setInitialized(false);
|
||||||
} else {
|
} else {
|
||||||
|
wirelessSecuritySetting->setInitialized(true);
|
||||||
wirelessSecuritySetting->setKeyMgmt(NetworkManager::WirelessSecuritySetting::WpaPsk);
|
wirelessSecuritySetting->setKeyMgmt(NetworkManager::WirelessSecuritySetting::WpaPsk);
|
||||||
wirelessSecuritySetting->setPsk(apPassword);
|
wirelessSecuritySetting->setPsk(apPassword);
|
||||||
}
|
}
|
||||||
|
@ -715,7 +715,7 @@ void KyWirelessConnectOperation::activeWirelessAp(const QString apUuid, const QS
|
||||||
if (nullptr == connectPtr) {
|
if (nullptr == connectPtr) {
|
||||||
NetworkManager::Device::Ptr devicePtr = m_networkResourceInstance->findDeviceInterface(apDevice);
|
NetworkManager::Device::Ptr devicePtr = m_networkResourceInstance->findDeviceInterface(apDevice);
|
||||||
if (devicePtr.isNull()) {
|
if (devicePtr.isNull()) {
|
||||||
QString errorMsg ="active wifi ap failed," + apDevice + "is not existed";
|
QString errorMsg ="Create hotpot faild. " + apDevice + " is not existed";
|
||||||
qWarning()<< errorMsg;
|
qWarning()<< errorMsg;
|
||||||
emit addAndActivateConnectionError(errorMsg);
|
emit addAndActivateConnectionError(errorMsg);
|
||||||
return;
|
return;
|
||||||
|
@ -730,15 +730,15 @@ void KyWirelessConnectOperation::activeWirelessAp(const QString apUuid, const QS
|
||||||
watcher = new QDBusPendingCallWatcher{NetworkManager::addAndActivateConnection(apConnectSettingPtr->toMap(), deviceIdentifier, specificObject), this};
|
watcher = new QDBusPendingCallWatcher{NetworkManager::addAndActivateConnection(apConnectSettingPtr->toMap(), deviceIdentifier, specificObject), this};
|
||||||
connect(watcher, &QDBusPendingCallWatcher::finished, [&] (QDBusPendingCallWatcher * watcher) {
|
connect(watcher, &QDBusPendingCallWatcher::finished, [&] (QDBusPendingCallWatcher * watcher) {
|
||||||
if (watcher->isError() || !watcher->isValid()) {
|
if (watcher->isError() || !watcher->isValid()) {
|
||||||
QString errorMsg = "activation connection failed," + watcher->error().message();
|
QString errorMsg = "Create hotpot faild. " + watcher->error().message();
|
||||||
qWarning() << errorMsg;
|
qWarning() << errorMsg;
|
||||||
emit addAndActivateConnectionError(errorMsg);
|
emit addAndActivateConnectionError(errorMsg);
|
||||||
}
|
}
|
||||||
watcher->deleteLater();
|
watcher->deleteLater();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
updateWirelessApSetting(connectPtr, apName, apPassword, apDevice);
|
// updateWirelessApSetting(connectPtr, apName, apPassword, apDevice);
|
||||||
activateConnection(apUuid, apDevice);
|
activateApConnectionByUuid(apUuid, apDevice, connectPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -823,3 +823,44 @@ void KyWirelessConnectOperation::setIpv4AndIpv6Setting(NetworkManager::Connectio
|
||||||
NetworkManager::Ipv6Setting::Ptr ipv6Setting = connSetting->setting(NetworkManager::Setting::Ipv6).dynamicCast<NetworkManager::Ipv6Setting>();
|
NetworkManager::Ipv6Setting::Ptr ipv6Setting = connSetting->setting(NetworkManager::Setting::Ipv6).dynamicCast<NetworkManager::Ipv6Setting>();
|
||||||
ipv6SettingSet(ipv6Setting, connSettingInfo);
|
ipv6SettingSet(ipv6Setting, connSettingInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KyWirelessConnectOperation::activateApConnectionByUuid(const QString apUuid, const QString apDevice, NetworkManager::Connection::Ptr connectPtr)
|
||||||
|
{
|
||||||
|
QString connectPath = "";
|
||||||
|
QString deviceIdentifier = "";
|
||||||
|
QString connectName = "";
|
||||||
|
QString specificObject = "";
|
||||||
|
|
||||||
|
qDebug()<<"it will activate hotpot connect"<<apUuid;
|
||||||
|
|
||||||
|
connectPath = connectPtr->path();
|
||||||
|
connectName = connectPtr->name();
|
||||||
|
|
||||||
|
auto dev = m_networkResourceInstance->findDeviceInterface(apDevice);
|
||||||
|
if (!dev.isNull()) {
|
||||||
|
deviceIdentifier = dev->uni();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceIdentifier.isEmpty()) {
|
||||||
|
QString errorMessage = tr("Create hotpot faild.Device Identifier is empty, its name") + apDevice;
|
||||||
|
qWarning() << errorMessage;
|
||||||
|
Q_EMIT activateConnectionError(errorMessage);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDBusPendingCallWatcher * watcher;
|
||||||
|
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();
|
||||||
|
qWarning()<<errorMessage;
|
||||||
|
emit this->activateConnectionError(errorMessage);
|
||||||
|
} else {
|
||||||
|
qWarning()<<"active wired connect complete.";
|
||||||
|
}
|
||||||
|
|
||||||
|
watcher->deleteLater();
|
||||||
|
});
|
||||||
|
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
|
@ -124,6 +124,7 @@ private:
|
||||||
void updateWirelessSecu(NetworkManager::ConnectionSettings::Ptr connSettingPtr, const KyWirelessConnectSetting &connSettingInfo, bool bPwdChange = false);
|
void updateWirelessSecu(NetworkManager::ConnectionSettings::Ptr connSettingPtr, const KyWirelessConnectSetting &connSettingInfo, bool bPwdChange = false);
|
||||||
void setIpv4AndIpv6Setting(NetworkManager::ConnectionSettings::Ptr connSetting, const KyConnectSetting &connSettingInfo);
|
void setIpv4AndIpv6Setting(NetworkManager::ConnectionSettings::Ptr connSetting, const KyConnectSetting &connSettingInfo);
|
||||||
void setWirelessSecuWpaXEap(NetworkManager::ConnectionSettings::Ptr connSettingPtr);
|
void setWirelessSecuWpaXEap(NetworkManager::ConnectionSettings::Ptr connSettingPtr);
|
||||||
|
void activateApConnectionByUuid(const QString apUuid, const QString apDevice, NetworkManager::Connection::Ptr connectPtr);
|
||||||
|
|
||||||
KyNetworkResourceManager *m_networkResourceInstance = nullptr;
|
KyNetworkResourceManager *m_networkResourceInstance = nullptr;
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,10 @@ Q_SIGNALS: // SIGNALS
|
||||||
//设备插拔
|
//设备插拔
|
||||||
void deviceStatusChanged();
|
void deviceStatusChanged();
|
||||||
void deviceNameChanged(QString oldName, QString newName);
|
void deviceNameChanged(QString oldName, QString newName);
|
||||||
|
//热点断开
|
||||||
|
void hotPotDeactivated(QString devName, QString ssid);
|
||||||
|
//热点连接
|
||||||
|
void hotPotActivated(QString devName, QString ssid);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -146,13 +146,16 @@ void MainWindow::initDbusConnnect()
|
||||||
connect(m_wlanWidget, &WlanPage::deviceNameChanged, this, &MainWindow::deviceNameChanged);
|
connect(m_wlanWidget, &WlanPage::deviceNameChanged, this, &MainWindow::deviceNameChanged);
|
||||||
|
|
||||||
connect(m_wlanWidget, &WlanPage::activateFailed, this, &MainWindow::activateFailed);
|
connect(m_wlanWidget, &WlanPage::activateFailed, this, &MainWindow::activateFailed);
|
||||||
connect(m_wlanWidget, &WlanPage::deactivateFailed, this, &MainWindow::activateFailed);
|
connect(m_wlanWidget, &WlanPage::deactivateFailed, this, &MainWindow::deactivateFailed);
|
||||||
|
|
||||||
connect(m_lanWidget, &LanPage::listUpdate, this, &MainWindow::listUpdate);
|
connect(m_lanWidget, &LanPage::listUpdate, this, &MainWindow::listUpdate);
|
||||||
connect(m_wlanWidget, &WlanPage::listUpdate, this, &MainWindow::listUpdate);
|
connect(m_wlanWidget, &WlanPage::listUpdate, this, &MainWindow::listUpdate);
|
||||||
|
|
||||||
connect(m_lanWidget, &LanPage::wiredActivating, this, &MainWindow::wiredActivating);
|
connect(m_lanWidget, &LanPage::wiredActivating, this, &MainWindow::wiredActivating);
|
||||||
connect(m_wlanWidget, &WlanPage::wirelessActivating, this, &MainWindow::wirelessActivating);
|
connect(m_wlanWidget, &WlanPage::wirelessActivating, this, &MainWindow::wirelessActivating);
|
||||||
|
|
||||||
|
connect(m_wlanWidget, &WlanPage::hotPotDeactivated, this, &MainWindow::hotPotDeactivated);
|
||||||
|
connect(m_wlanWidget, &WlanPage::hotPotActivated, this, &MainWindow::hotPotActivated);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -49,7 +49,9 @@ signals:
|
||||||
void wirelessActivating(QString devName, QString ssid);
|
void wirelessActivating(QString devName, QString ssid);
|
||||||
void activateFailed(QString errorMessage);
|
void activateFailed(QString errorMessage);
|
||||||
void deactivateFailed(QString errorMessage);
|
void deactivateFailed(QString errorMessage);
|
||||||
|
//热点断开
|
||||||
|
void hotPotDeactivated(QString devName, QString ssid);
|
||||||
|
void hotPotActivated(QString devName, QString ssid);
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -358,6 +358,34 @@ void WlanPage::onActivatedWlanChanged(QString uuid, NetworkManager::ActiveConnec
|
||||||
emit listUpdate(devName);
|
emit listUpdate(devName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (state == NetworkManager::ActiveConnection::State::Deactivated) {
|
||||||
|
QList<KyApConnectItem *> apConnectItemList;
|
||||||
|
m_apConnectResource->getApConnections(apConnectItemList);
|
||||||
|
if (!apConnectItemList.isEmpty()) {
|
||||||
|
foreach (auto item, apConnectItemList) {
|
||||||
|
if (item->m_connectUuid == uuid) {
|
||||||
|
qDebug() << "[WlanPage] hotpot Deactivated";
|
||||||
|
emit hotPotDeactivated(item->m_ifaceName, ssid);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state == NetworkManager::ActiveConnection::State::Activated) {
|
||||||
|
QList<KyApConnectItem *> apConnectItemList;
|
||||||
|
m_apConnectResource->getApConnections(apConnectItemList);
|
||||||
|
if (!apConnectItemList.isEmpty()) {
|
||||||
|
foreach (auto item, apConnectItemList) {
|
||||||
|
if (item->m_connectUuid == uuid) {
|
||||||
|
qDebug() << "[WlanPage] hotpot Deactivated";
|
||||||
|
emit hotPotActivated(item->m_ifaceName, ssid);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (state == NetworkManager::ActiveConnection::State::Activated) {
|
if (state == NetworkManager::ActiveConnection::State::Activated) {
|
||||||
//onWlanRemoved(m_wlanDevice, ssid);
|
//onWlanRemoved(m_wlanDevice, ssid);
|
||||||
m_activatedNetListWidget->clear();
|
m_activatedNetListWidget->clear();
|
||||||
|
@ -472,6 +500,7 @@ void WlanPage::deactiveWirelessAp(const QString apName, const QString apPassword
|
||||||
m_wirelessConnectOpreation->deactiveWirelessAp(apName, uuid);
|
m_wirelessConnectOpreation->deactiveWirelessAp(apName, uuid);
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "[WlanPage] deactiveWirelessAp can not find apName " << apName;
|
qDebug() << "[WlanPage] deactiveWirelessAp can not find apName " << apName;
|
||||||
|
emit deactivateFailed("invalid info");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,8 @@ public:
|
||||||
signals:
|
signals:
|
||||||
void oneItemExpanded(const QString &ssid);
|
void oneItemExpanded(const QString &ssid);
|
||||||
void wirelessActivating(QString devName, QString ssid);
|
void wirelessActivating(QString devName, QString ssid);
|
||||||
|
void hotPotDeactivated(QString devName, QString ssid);
|
||||||
|
void hotPotActivated(QString devName, QString ssid);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject *watched, QEvent *event);
|
bool eventFilter(QObject *watched, QEvent *event);
|
||||||
|
|
Loading…
Reference in New Issue