247 lines
8.7 KiB
Diff
247 lines
8.7 KiB
Diff
|
|
From a06103989392882b5693a310b1e1540b5a998af0 Mon Sep 17 00:00:00 2001
|
|||
|
|
From: luoqing <luoqing@kylinsec.com.cn>
|
|||
|
|
Date: Thu, 25 Aug 2022 19:28:58 +0800
|
|||
|
|
Subject: [PATCH 2/2] fix(network):Temporarily do not overwrite the
|
|||
|
|
NetworkManager configuration and optimize the code
|
|||
|
|
MIME-Version: 1.0
|
|||
|
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|
|||
|
|
- 暂时不覆盖NetworkManager配置,优化代码
|
|||
|
|
---
|
|||
|
|
plugins/network/CMakeLists.txt | 2 +-
|
|||
|
|
plugins/network/src/tray/network-tray.cpp | 25 ++++++++++++++---------
|
|||
|
|
plugins/network/src/tray/tray-page.cpp | 25 +++++++++++++++--------
|
|||
|
|
plugins/network/src/tray/tray-page.h | 7 +++----
|
|||
|
|
plugins/network/src/tray/tray-page.ui | 3 +++
|
|||
|
|
plugins/network/src/utils.cpp | 0
|
|||
|
|
plugins/network/src/utils.h | 0
|
|||
|
|
7 files changed, 38 insertions(+), 24 deletions(-)
|
|||
|
|
create mode 100644 plugins/network/src/utils.cpp
|
|||
|
|
create mode 100644 plugins/network/src/utils.h
|
|||
|
|
|
|||
|
|
diff --git a/plugins/network/CMakeLists.txt b/plugins/network/CMakeLists.txt
|
|||
|
|
index 02dbe3a..802c52f 100644
|
|||
|
|
--- a/plugins/network/CMakeLists.txt
|
|||
|
|
+++ b/plugins/network/CMakeLists.txt
|
|||
|
|
@@ -117,7 +117,7 @@ SET(link_target ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}-link.desktop)
|
|||
|
|
|
|||
|
|
set(NETWORK_SERVER_CONF /etc/NetworkManager/conf.d)
|
|||
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/data/00-server.conf.in ${CMAKE_CURRENT_BINARY_DIR}/00-server.conf @ONLY)
|
|||
|
|
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/00-server.conf DESTINATION ${NETWORK_SERVER_CONF}/)
|
|||
|
|
+# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/00-server.conf DESTINATION ${NETWORK_SERVER_CONF}/)
|
|||
|
|
|
|||
|
|
#安装插件和二进制文件
|
|||
|
|
install(TARGETS ${TARGET_NAME} DESTINATION ${PLUGIN_LIBS_INSTALL_DIR}/)
|
|||
|
|
diff --git a/plugins/network/src/tray/network-tray.cpp b/plugins/network/src/tray/network-tray.cpp
|
|||
|
|
index 232882b..a282cf9 100644
|
|||
|
|
--- a/plugins/network/src/tray/network-tray.cpp
|
|||
|
|
+++ b/plugins/network/src/tray/network-tray.cpp
|
|||
|
|
@@ -15,6 +15,7 @@
|
|||
|
|
#include "network-tray.h"
|
|||
|
|
#include <qt5-log-i.h>
|
|||
|
|
#include <style-palette.h>
|
|||
|
|
+#include <NetworkManagerQt/Settings>
|
|||
|
|
#include <QMenu>
|
|||
|
|
#include <QPainter>
|
|||
|
|
#include <QPainterPath>
|
|||
|
|
@@ -47,6 +48,8 @@ void NetworkTray::init()
|
|||
|
|
initUI();
|
|||
|
|
initMenu();
|
|||
|
|
initConnect();
|
|||
|
|
+
|
|||
|
|
+ NetworkManager::Connection::List listConnections();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void NetworkTray::initUI()
|
|||
|
|
@@ -127,6 +130,7 @@ void NetworkTray::initConnect()
|
|||
|
|
} });
|
|||
|
|
|
|||
|
|
connect(notifier(), &Notifier::deviceRemoved, this, &NetworkTray::handleDeviceRemoved);
|
|||
|
|
+
|
|||
|
|
connect(notifier(), &Notifier::statusChanged, this, &NetworkTray::handleNetworkManagerStatusChanged);
|
|||
|
|
|
|||
|
|
connect(notifier(), &Notifier::primaryConnectionChanged, this, &NetworkTray::handlePrimaryConnectionChanged);
|
|||
|
|
@@ -152,6 +156,7 @@ void NetworkTray::initTrayIcon()
|
|||
|
|
{
|
|||
|
|
m_systemTray = new QSystemTrayIcon();
|
|||
|
|
setTrayIcon(NetworkManager::status());
|
|||
|
|
+ KLOG_DEBUG() << " NetworkManager::status():" << NetworkManager::status();
|
|||
|
|
m_systemTray->show();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@@ -187,9 +192,8 @@ void NetworkTray::getAvailableDeviceList()
|
|||
|
|
KLOG_DEBUG() << "dev->interfaceName():" << dev->interfaceName();
|
|||
|
|
KLOG_DEBUG() << "dev->state():" << dev->state();
|
|||
|
|
KLOG_DEBUG() << "dev->isValid():" << dev->isValid();
|
|||
|
|
+ KLOG_DEBUG() << "dev->managed():" << dev->managed();
|
|||
|
|
|
|||
|
|
- if (dev->state() == Device::Unavailable)
|
|||
|
|
- continue;
|
|||
|
|
if (dev->state() == Device::Unmanaged)
|
|||
|
|
continue;
|
|||
|
|
|
|||
|
|
@@ -317,21 +321,24 @@ void NetworkTray::setTrayIcon(NetworkManager::Status status)
|
|||
|
|
// int signalStrength = wirelessNetwork->signalStrength();
|
|||
|
|
|
|||
|
|
m_systemTray->setIcon(trayIconColorSwitch(":/kcp-network-images/wireless-4.svg"));
|
|||
|
|
+ KLOG_DEBUG() << "setIcon kcp-network-images/wireless-4.svg";
|
|||
|
|
+ }
|
|||
|
|
+ else
|
|||
|
|
+ {
|
|||
|
|
+ m_systemTray->setIcon(trayIconColorSwitch(":/kcp-network-images/wired-connection.svg"));
|
|||
|
|
+ KLOG_DEBUG() << "setIcon kcp-network-images/wireless-connection.svg";
|
|||
|
|
}
|
|||
|
|
- }
|
|||
|
|
- else
|
|||
|
|
- {
|
|||
|
|
- // 可用
|
|||
|
|
- m_systemTray->setIcon(trayIconColorSwitch(":/kcp-network-images/wired-connection.svg"));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
- else if (status == NetworkManager::Status::Disconnecting || NetworkManager::Status::Connecting)
|
|||
|
|
+ else if ((status == NetworkManager::Status::Disconnecting) || (status == NetworkManager::Status::Connecting))
|
|||
|
|
{
|
|||
|
|
// TODO:加载动画
|
|||
|
|
+ KLOG_DEBUG() << "setIcon null";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_systemTray->setIcon(trayIconColorSwitch(":/kcp-network-images/wired-disconnected.svg"));
|
|||
|
|
+ KLOG_DEBUG() << "setIcon kcp-network-images/wireless-disconnected.svg";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@@ -396,8 +403,6 @@ void NetworkTray::handleDeviceManagedChanged()
|
|||
|
|
* XXX:由于在禁用和开启wifi时,并没有发出Wireless设备的deviceRemoved和deviceAdded信号
|
|||
|
|
* 并且当WirelessEnabledChanged信号发送时,device state 还处在unavailbel 不可用状态,需要处理
|
|||
|
|
*/
|
|||
|
|
-
|
|||
|
|
-// TODO:托盘对不可用状态进行提示
|
|||
|
|
void NetworkTray::handleWirelessEnabledChanged(bool enable)
|
|||
|
|
{
|
|||
|
|
KLOG_DEBUG() << "-----------------------handleWirelessEnabledChanged:" << enable;
|
|||
|
|
diff --git a/plugins/network/src/tray/tray-page.cpp b/plugins/network/src/tray/tray-page.cpp
|
|||
|
|
index c854d36..fd986fd 100644
|
|||
|
|
--- a/plugins/network/src/tray/tray-page.cpp
|
|||
|
|
+++ b/plugins/network/src/tray/tray-page.cpp
|
|||
|
|
@@ -35,28 +35,33 @@ void TrayPage::init()
|
|||
|
|
{
|
|||
|
|
if (m_deviceList.count() != 0)
|
|||
|
|
{
|
|||
|
|
- Device::Type deviceType = m_deviceList.value(0)->type();
|
|||
|
|
- initUI(deviceType);
|
|||
|
|
+ initUI();
|
|||
|
|
initConnection();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// XXX:修改初始化
|
|||
|
|
-void TrayPage::initUI(Device::Type deviceType)
|
|||
|
|
+void TrayPage::initUI()
|
|||
|
|
{
|
|||
|
|
setFixedWidth(240);
|
|||
|
|
setMaximumHeight(434);
|
|||
|
|
ui->stackedWidget->setContentsMargins(0, 0, 0, 0);
|
|||
|
|
|
|||
|
|
// if (m_deviceList.count() > 1)
|
|||
|
|
- // setMultiDeviceWidget(deviceType);
|
|||
|
|
+ // setMultiDeviceWidget();
|
|||
|
|
// else if (m_deviceList.count() == 1)
|
|||
|
|
// {
|
|||
|
|
- // setSingleDeviceWidget(deviceType);
|
|||
|
|
+ // setSingleDeviceWidget();
|
|||
|
|
// }
|
|||
|
|
+ // else
|
|||
|
|
+ // {
|
|||
|
|
+ // // m_deviceeList.count == 0
|
|||
|
|
+ // return;
|
|||
|
|
+ // }
|
|||
|
|
+
|
|||
|
|
if (m_deviceList.count() != 0)
|
|||
|
|
{
|
|||
|
|
- setMultiDeviceWidget(deviceType);
|
|||
|
|
+ setMultiDeviceWidget();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
@@ -69,12 +74,13 @@ void TrayPage::initConnection()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-void TrayPage::setMultiDeviceWidget(Device::Type deviceType)
|
|||
|
|
+void TrayPage::setMultiDeviceWidget()
|
|||
|
|
{
|
|||
|
|
for (Device::Ptr dev : m_deviceList)
|
|||
|
|
{
|
|||
|
|
QString devicePath = dev->uni();
|
|||
|
|
QString deviceName = dev->interfaceName();
|
|||
|
|
+ Device::Type deviceType = dev->type();
|
|||
|
|
ui->deviceComboBox->addItem(deviceName, devicePath);
|
|||
|
|
|
|||
|
|
if (deviceType == Device::Ethernet)
|
|||
|
|
@@ -111,10 +117,11 @@ void TrayPage::setMultiDeviceWidget(Device::Type deviceType)
|
|||
|
|
ui->selectDevicewidget->setVisible(true);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-void TrayPage::setSingleDeviceWidget(Device::Type deviceType)
|
|||
|
|
+void TrayPage::setSingleDeviceWidget()
|
|||
|
|
{
|
|||
|
|
ui->selectDevicewidget->setVisible(false);
|
|||
|
|
- QString devicePath = m_deviceList.at(0)->uni();
|
|||
|
|
+ QString devicePath = m_deviceList.value(0)->uni();
|
|||
|
|
+ Device::Type deviceType = m_deviceList.value(0)->type();
|
|||
|
|
if (deviceType == Device::Ethernet)
|
|||
|
|
{
|
|||
|
|
WiredTrayWidget *wiredTrayWidget = new WiredTrayWidget(devicePath, this);
|
|||
|
|
diff --git a/plugins/network/src/tray/tray-page.h b/plugins/network/src/tray/tray-page.h
|
|||
|
|
index 20cacd0..d49e670 100644
|
|||
|
|
--- a/plugins/network/src/tray/tray-page.h
|
|||
|
|
+++ b/plugins/network/src/tray/tray-page.h
|
|||
|
|
@@ -24,7 +24,6 @@ class TrayPage;
|
|||
|
|
}
|
|||
|
|
QT_END_NAMESPACE
|
|||
|
|
|
|||
|
|
-
|
|||
|
|
class TrayPage : public QWidget
|
|||
|
|
{
|
|||
|
|
Q_OBJECT
|
|||
|
|
@@ -34,11 +33,11 @@ public:
|
|||
|
|
~TrayPage() override;
|
|||
|
|
|
|||
|
|
void init();
|
|||
|
|
- void initUI(NetworkManager::Device::Type deviceType);
|
|||
|
|
+ void initUI();
|
|||
|
|
void initConnection();
|
|||
|
|
|
|||
|
|
- void setMultiDeviceWidget(NetworkManager::Device::Type deviceType);
|
|||
|
|
- void setSingleDeviceWidget(NetworkManager::Device::Type deviceType);
|
|||
|
|
+ void setMultiDeviceWidget();
|
|||
|
|
+ void setSingleDeviceWidget();
|
|||
|
|
QStringList devicePathList();
|
|||
|
|
|
|||
|
|
public slots:
|
|||
|
|
diff --git a/plugins/network/src/tray/tray-page.ui b/plugins/network/src/tray/tray-page.ui
|
|||
|
|
index f922c84..7a089ca 100644
|
|||
|
|
--- a/plugins/network/src/tray/tray-page.ui
|
|||
|
|
+++ b/plugins/network/src/tray/tray-page.ui
|
|||
|
|
@@ -31,6 +31,9 @@
|
|||
|
|
<property name="windowTitle">
|
|||
|
|
<string>TrayPage</string>
|
|||
|
|
</property>
|
|||
|
|
+ <property name="styleSheet">
|
|||
|
|
+ <string notr="true"/>
|
|||
|
|
+ </property>
|
|||
|
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|||
|
|
<property name="spacing">
|
|||
|
|
<number>0</number>
|
|||
|
|
diff --git a/plugins/network/src/utils.cpp b/plugins/network/src/utils.cpp
|
|||
|
|
new file mode 100644
|
|||
|
|
index 0000000..e69de29
|
|||
|
|
diff --git a/plugins/network/src/utils.h b/plugins/network/src/utils.h
|
|||
|
|
new file mode 100644
|
|||
|
|
index 0000000..e69de29
|
|||
|
|
--
|
|||
|
|
2.33.0
|
|||
|
|
|