From a06103989392882b5693a310b1e1540b5a998af0 Mon Sep 17 00:00:00 2001 From: luoqing 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 #include +#include #include #include #include @@ -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 @@ TrayPage + + + 0 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