fix(netwowrk):fix not searching the wireless network for a long time after the WiFi connection is successful
- 修复wifi连接成功后长时间不搜索无线网络 Close #I5IPVO
This commit is contained in:
parent
a874478c79
commit
d86ccec799
240
0001-fix-netwowrk-fix-not-searching-the-wireless-network-.patch
Normal file
240
0001-fix-netwowrk-fix-not-searching-the-wireless-network-.patch
Normal file
@ -0,0 +1,240 @@
|
||||
From 5f9c85d57d40c7aa9e045c0ba796c29069c525a1 Mon Sep 17 00:00:00 2001
|
||||
From: luoqing <luoqing@kylinsec.com.cn>
|
||||
Date: Mon, 1 Aug 2022 16:48:00 +0800
|
||||
Subject: [PATCH] fix(netwowrk):fix not searching the wireless network for a
|
||||
long time after the WiFi connection is successful
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
- 修复wifi连接成功后长时间不搜索无线网络
|
||||
|
||||
Close #I5IPVO
|
||||
---
|
||||
.../src/plugin/cpanel-network-widget.cpp | 34 ++++++++++++++++---
|
||||
.../src/plugin/cpanel-network-widget.h | 1 +
|
||||
.../src/plugin/manager/wireless-manager.cpp | 2 +-
|
||||
.../disconnect-and-delete-button.cpp | 12 ++++---
|
||||
.../plugin/setting-widget/wireless-widget.cpp | 2 --
|
||||
plugins/network/src/tray/network-tray.cpp | 17 ++++++++++
|
||||
.../network/src/tray/wireless-tray-widget.cpp | 29 ++++++++++++++--
|
||||
7 files changed, 83 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/plugins/network/src/plugin/cpanel-network-widget.cpp b/plugins/network/src/plugin/cpanel-network-widget.cpp
|
||||
index cf0f147..daf3c33 100644
|
||||
--- a/plugins/network/src/plugin/cpanel-network-widget.cpp
|
||||
+++ b/plugins/network/src/plugin/cpanel-network-widget.cpp
|
||||
@@ -46,9 +46,9 @@ void CPanelNetworkWidget::init()
|
||||
{
|
||||
initPage();
|
||||
initConnect();
|
||||
-
|
||||
}
|
||||
|
||||
+//TODO:增加sidebarItem与设备的对应关系
|
||||
void CPanelNetworkWidget::initPage()
|
||||
{
|
||||
getAvailableDeviceList();
|
||||
@@ -218,10 +218,7 @@ void CPanelNetworkWidget::initConnect()
|
||||
|
||||
connect(notifier(), &Notifier::deviceRemoved, this, &CPanelNetworkWidget::handleDeviceRemoved);
|
||||
|
||||
- connect(ui->sidebar, &QListWidget::itemClicked, [this](QListWidgetItem *item)
|
||||
- {
|
||||
- ui->stackedWidget->setCurrentIndex(item->data(Qt::UserRole).toInt());
|
||||
- });
|
||||
+ connect(ui->sidebar, &QListWidget::itemClicked, this,&CPanelNetworkWidget::handleSideBarItemClicked);
|
||||
|
||||
connect(Kiran::StylePalette::instance(), &Kiran::StylePalette::themeChanged, this, &CPanelNetworkWidget::handleThemeChanged);
|
||||
}
|
||||
@@ -282,3 +279,30 @@ void CPanelNetworkWidget::handleThemeChanged(Kiran::PaletteType paletteType)
|
||||
ui->sidebar->item(i)->setIcon(pixmap);
|
||||
}
|
||||
}
|
||||
+
|
||||
+void CPanelNetworkWidget::handleSideBarItemClicked(QListWidgetItem *item)
|
||||
+{
|
||||
+ ui->stackedWidget->setCurrentIndex(item->data(Qt::UserRole).toInt());
|
||||
+
|
||||
+ QString itemText = item->text();
|
||||
+ KLOG_DEBUG() << "item clicked:" << item->text();
|
||||
+ if(itemText.contains(tr("Wireless Network")))
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "item clicked wireless";
|
||||
+ for (auto device : m_wirelessDeviceList)
|
||||
+ {
|
||||
+ WirelessDevice::Ptr wirelessDevice = qobject_cast<WirelessDevice *>(device);
|
||||
+ QDBusPendingReply<> replyRequestScan = wirelessDevice->requestScan();
|
||||
+
|
||||
+ replyRequestScan.waitForFinished();
|
||||
+ if (replyRequestScan.isError())
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "wireless Device name:" << wirelessDevice->interfaceName() << " requestScan error:" << replyRequestScan.error();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "wireless Device name:" << wirelessDevice->interfaceName() << " requestScan reply:" << replyRequestScan.reply();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/plugins/network/src/plugin/cpanel-network-widget.h b/plugins/network/src/plugin/cpanel-network-widget.h
|
||||
index bb7d74e..112cab8 100644
|
||||
--- a/plugins/network/src/plugin/cpanel-network-widget.h
|
||||
+++ b/plugins/network/src/plugin/cpanel-network-widget.h
|
||||
@@ -50,6 +50,7 @@ public slots:
|
||||
void handleDeviceAdded(const QString &devicePath);
|
||||
void handleDeviceRemoved(const QString &devicePath);
|
||||
void handleThemeChanged(Kiran::PaletteType paletteType);
|
||||
+ void handleSideBarItemClicked(QListWidgetItem *item);
|
||||
|
||||
signals:
|
||||
void subItemsChanged();
|
||||
diff --git a/plugins/network/src/plugin/manager/wireless-manager.cpp b/plugins/network/src/plugin/manager/wireless-manager.cpp
|
||||
index 9f004d3..7c2eabb 100644
|
||||
--- a/plugins/network/src/plugin/manager/wireless-manager.cpp
|
||||
+++ b/plugins/network/src/plugin/manager/wireless-manager.cpp
|
||||
@@ -207,7 +207,7 @@ void WirelessManager::handleActiveConnectionAdded(const QString &path)
|
||||
}
|
||||
}
|
||||
|
||||
-//断开网络时,会自动rescan搜索无线网络
|
||||
+//断开网络时,会自动触发rescan搜索无线网络
|
||||
void WirelessManager::handleActiveConnectionRemoved(const QString &path)
|
||||
{
|
||||
ui->connectionShowPage->handleActiveStateDeactivated(path);
|
||||
diff --git a/plugins/network/src/plugin/setting-widget/disconnect-and-delete-button.cpp b/plugins/network/src/plugin/setting-widget/disconnect-and-delete-button.cpp
|
||||
index 75719a5..0833e9b 100644
|
||||
--- a/plugins/network/src/plugin/setting-widget/disconnect-and-delete-button.cpp
|
||||
+++ b/plugins/network/src/plugin/setting-widget/disconnect-and-delete-button.cpp
|
||||
@@ -59,12 +59,16 @@ void DisconnectAndDeleteButton::initButton(SettingConnectionStatus connectionSta
|
||||
break;
|
||||
}
|
||||
m_activeConnectionPath = activeConnectionPath;
|
||||
+
|
||||
auto activeConnectionPtr = NetworkManager::findActiveConnection(m_activeConnectionPath);
|
||||
- ConnectionSettings::ConnectionType connectionType = activeConnectionPtr->connection()->settings()->connectionType();
|
||||
- if (connectionType == ConnectionSettings::Wireless)
|
||||
+ if(activeConnectionPtr != nullptr)
|
||||
{
|
||||
- ui->deleteButton->setVisible(false);
|
||||
- ui->ignoreButton->setVisible(true);
|
||||
+ ConnectionSettings::ConnectionType connectionType = activeConnectionPtr->connection()->settings()->connectionType();
|
||||
+ if (connectionType == ConnectionSettings::Wireless)
|
||||
+ {
|
||||
+ ui->deleteButton->setVisible(false);
|
||||
+ ui->ignoreButton->setVisible(true);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/plugins/network/src/plugin/setting-widget/wireless-widget.cpp b/plugins/network/src/plugin/setting-widget/wireless-widget.cpp
|
||||
index d04cf51..dac2faa 100644
|
||||
--- a/plugins/network/src/plugin/setting-widget/wireless-widget.cpp
|
||||
+++ b/plugins/network/src/plugin/setting-widget/wireless-widget.cpp
|
||||
@@ -49,8 +49,6 @@ void WirelessWidget::initUI()
|
||||
void WirelessWidget::initConnection()
|
||||
{
|
||||
connect(m_mtuButton, &QAbstractButton::toggled, this, &WirelessWidget::handleCustomMTUChanged);
|
||||
- connect(notifier(),&Notifier::deviceAdded,[=](){initMacComboBox();});
|
||||
- connect(notifier(),&Notifier::deviceRemoved,[=](){initMacComboBox();});
|
||||
}
|
||||
|
||||
void WirelessWidget::setWirelessSetting(const WirelessSetting::Ptr &wirelessSetting)
|
||||
diff --git a/plugins/network/src/tray/network-tray.cpp b/plugins/network/src/tray/network-tray.cpp
|
||||
index 800c819..5aeb35d 100644
|
||||
--- a/plugins/network/src/tray/network-tray.cpp
|
||||
+++ b/plugins/network/src/tray/network-tray.cpp
|
||||
@@ -206,6 +206,7 @@ void NetworkTray::getAvailableDeviceList()
|
||||
}
|
||||
}
|
||||
|
||||
+// Note:点击托盘显示页面的同时,让所有无线设备扫描一次网络
|
||||
void NetworkTray::handleTrayClicked(QSystemTrayIcon::ActivationReason reason)
|
||||
{
|
||||
switch (reason)
|
||||
@@ -216,6 +217,22 @@ void NetworkTray::handleTrayClicked(QSystemTrayIcon::ActivationReason reason)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ for (auto device : m_wirelessDeviceList)
|
||||
+ {
|
||||
+ WirelessDevice::Ptr wirelessDevice = qobject_cast<WirelessDevice *>(device);
|
||||
+ QDBusPendingReply<> replyRequestScan = wirelessDevice->requestScan();
|
||||
+
|
||||
+ replyRequestScan.waitForFinished();
|
||||
+ if (replyRequestScan.isError())
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "wireless Device name:" << wirelessDevice->interfaceName() << " requestScan error:" << replyRequestScan.error();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "wireless Device name:" << wirelessDevice->interfaceName() << " requestScan reply:" << replyRequestScan.reply();
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
void NetworkTray::handleNetworkSettingClicked()
|
||||
diff --git a/plugins/network/src/tray/wireless-tray-widget.cpp b/plugins/network/src/tray/wireless-tray-widget.cpp
|
||||
index a9dd141..2a480b1 100644
|
||||
--- a/plugins/network/src/tray/wireless-tray-widget.cpp
|
||||
+++ b/plugins/network/src/tray/wireless-tray-widget.cpp
|
||||
@@ -164,7 +164,7 @@ void WirelessTrayWidget::activateWirelessConnection(const QString &connectionPat
|
||||
StatusNotification::connectitonFailedNotify(connectionPath);
|
||||
}
|
||||
else
|
||||
- KLOG_DEBUG() << "reply.reply():" << reply.reply();
|
||||
+ KLOG_DEBUG() << "reply.reply():" << reply.reply();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,11 +322,23 @@ void WirelessTrayWidget::handleStateActivating(const QString &activatedPath)
|
||||
if (item != nullptr)
|
||||
m_connectionLists->updateItemActivatingStatus(item);
|
||||
}
|
||||
+
|
||||
+ QDBusPendingReply<> replyRequestScan = m_wirelessDevice->requestScan();
|
||||
+ replyRequestScan.waitForFinished();
|
||||
+ KLOG_DEBUG() << "State Activating requestScan";
|
||||
+ if (replyRequestScan.isError())
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "State Activating requestScan error:" << replyRequestScan.error();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "State Activating requestScan reply:" << replyRequestScan.reply();
|
||||
+ }
|
||||
}
|
||||
|
||||
void WirelessTrayWidget::handleStateActivated(const QString &activatedPath)
|
||||
{
|
||||
- KLOG_DEBUG() << "Wireless handleStateActivated";
|
||||
+ KLOG_DEBUG() << "Wireless State: Activated";
|
||||
ActiveConnection::Ptr activeConnection = findActiveConnection(activatedPath);
|
||||
if (activeConnection.isNull())
|
||||
return;
|
||||
@@ -341,6 +353,19 @@ void WirelessTrayWidget::handleStateActivated(const QString &activatedPath)
|
||||
StatusNotification::ActiveConnectionActivatedNotify(connectionInfo);
|
||||
m_connectionLists->sortItems();
|
||||
m_connectionLists->update();
|
||||
+
|
||||
+ //连接成功后手动rescan
|
||||
+ QDBusPendingReply<> replyRequestScan = m_wirelessDevice->requestScan();
|
||||
+ replyRequestScan.waitForFinished();
|
||||
+ KLOG_DEBUG() << "--------------------------StateActivated requestScan";
|
||||
+ if (replyRequestScan.isError())
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "StateActivated requestScan error:" << replyRequestScan.error();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ KLOG_DEBUG() << "StateActivated requestScan reply:" << replyRequestScan.reply();
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: kiran-control-panel
|
||||
Version: 2.3.4
|
||||
Release: 2
|
||||
Release: 3
|
||||
Summary: Kiran Control Panel
|
||||
Summary(zh_CN): Kiran桌面控制面板
|
||||
|
||||
@ -8,6 +8,7 @@ License: MulanPSL-2.0
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Patch0001: 0001-fix-system-buttons-on-the-system-information-page-ar.patch
|
||||
Patch0002: 0002-refactor-systeminfo-update-systeminfo-plugin-dialog-.patch
|
||||
Patch0003: 0001-fix-netwowrk-fix-not-searching-the-wireless-network-.patch
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: cmake >= 3.2
|
||||
@ -166,6 +167,9 @@ make %{?_smp_mflags}
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%changelog
|
||||
* Fri Aug 05 2022 luoqing <luoqing@kylinsec.com.cn> - 2.3.4-3
|
||||
- KYOS-B: fix not searching the wireless network for a long time after the WiFi connection is successful(#I5IPVO)
|
||||
|
||||
* Thu Aug 04 2022 liuxinhao <liuxinhao@kylinsec.com.cn> - 2.3.4-2
|
||||
- KYOS-B: update systeminfo plugin dialog style(#I5H3YX)
|
||||
- KYOS-B: buttons on system information page are not fully dispalyed(#I5H229)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user