From 78bd84e3e5f9626e363e295a1f175c6f2f816ffe Mon Sep 17 00:00:00 2001 From: luoqing Date: Tue, 23 Aug 2022 11:45:12 +0800 Subject: [PATCH 5/7] fix(network):fix invalid configuration created for the first time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复初次创建配置失效的问题 --- .../src/plugin/setting-widget/ipv6-widget.cpp | 27 ++++++++++--------- .../src/plugin/settings/setting-page.cpp | 4 +-- .../src/plugin/settings/setting-page.h | 4 +-- .../plugin/settings/vpn/vpn-l2tp-setting.cpp | 17 ++++++------ .../plugin/settings/vpn/vpn-l2tp-setting.h | 5 ++-- .../plugin/settings/vpn/vpn-pptp-setting.cpp | 18 ++++++------- .../plugin/settings/vpn/vpn-pptp-setting.h | 5 ++-- .../plugin/settings/wired-setting-page.cpp | 9 +++---- .../src/plugin/settings/wired-setting-page.h | 3 +-- .../plugin/settings/wireless-setting-page.cpp | 19 +++++++------ .../plugin/settings/wireless-setting-page.h | 8 +++--- 11 files changed, 54 insertions(+), 65 deletions(-) diff --git a/plugins/network/src/plugin/setting-widget/ipv6-widget.cpp b/plugins/network/src/plugin/setting-widget/ipv6-widget.cpp index a9f1676..a16bff5 100644 --- a/plugins/network/src/plugin/setting-widget/ipv6-widget.cpp +++ b/plugins/network/src/plugin/setting-widget/ipv6-widget.cpp @@ -81,7 +81,6 @@ void Ipv6Widget::saveSettings() { m_ipv6Setting->setMethod(method); m_ipv6Setting->setAddresses(QList()); - return; } else if (method == Ipv6Setting::ConfigMethod::Automatic) { @@ -119,11 +118,13 @@ void Ipv6Widget::showSettings() { if (m_ipv6Setting->method() == Ipv6Setting::ConfigMethod::Ignored) { - resetSettings(); + int ipv6MethodIndex = ui->ipv6Method->findData(Ipv6Setting::ConfigMethod::Ignored); + ui->ipv6Method->setCurrentIndex(ipv6MethodIndex); } else if (m_ipv6Setting->method() == Ipv6Setting::ConfigMethod::Automatic) { - resetSettings(); + int ipv6MethodIndex = ui->ipv6Method->findData(Ipv6Setting::ConfigMethod::Automatic); + ui->ipv6Method->setCurrentIndex(ipv6MethodIndex); } else if (m_ipv6Setting->method() == Ipv6Setting::ConfigMethod::Manual) { @@ -135,24 +136,24 @@ void Ipv6Widget::showSettings() QString ip = ipv6Address.ip().toString(); int prefix = ipv6Address.prefixLength(); QString gateway = ipv6Address.gateway().toString(); - QString preferredDNS = ""; - QString alternateDNS = ""; ui->ipv6Address->setText(ip); ui->ipv6Prefix->setValue(prefix); ui->ipv6Gateway->setText(gateway); + } - if (!m_ipv6Setting->dns().isEmpty()) + QString preferredDNS = ""; + QString alternateDNS = ""; + if (!m_ipv6Setting->dns().isEmpty()) + { + preferredDNS = m_ipv6Setting->dns().at(0).toString(); + if (m_ipv6Setting->dns().count() >= 2) { - preferredDNS = m_ipv6Setting->dns().at(0).toString(); - if (m_ipv6Setting->dns().count() >= 2) - { - alternateDNS = m_ipv6Setting->dns().at(1).toString(); - } + alternateDNS = m_ipv6Setting->dns().at(1).toString(); } - ui->ipv6PreferredDNS->setText(preferredDNS); - ui->ipv6AlternateDNS->setText(alternateDNS); } + ui->ipv6PreferredDNS->setText(preferredDNS); + ui->ipv6AlternateDNS->setText(alternateDNS); } else resetSettings(); diff --git a/plugins/network/src/plugin/settings/setting-page.cpp b/plugins/network/src/plugin/settings/setting-page.cpp index dd84209..512b263 100644 --- a/plugins/network/src/plugin/settings/setting-page.cpp +++ b/plugins/network/src/plugin/settings/setting-page.cpp @@ -81,7 +81,7 @@ void SettingPage::handleSaveButtonClicked(ConnectionSettings::ConnectionType con initConnectionSettings(connectionType); initSettingPage(); saveSettingPage(); - KLOG_DEBUG() << " m_connectionSettings->toMap():" << m_connectionSettings->toMap(); + QDBusPendingReply replyAdd = NetworkManager::addConnection(m_connectionSettings->toMap()); replyAdd.waitForFinished(); if (replyAdd.isError()) @@ -98,7 +98,6 @@ void SettingPage::handleSaveButtonClicked(ConnectionSettings::ConnectionType con saveSettingPage(); //只有无线网络使用自定义settingUpdated信号,因为未连接无线网络前不存在本地Setting,无法在初始化时监听信号 connect(m_connection.data(), &NetworkManager::Connection::updated, this, &SettingPage::settingUpdated, Qt::UniqueConnection); - KLOG_DEBUG() << "m_connectionSettings->toMap():" << m_connectionSettings->toMap(); QDBusPendingReply<> replyUpdate = m_connection->update(m_connectionSettings->toMap()); replyUpdate.waitForFinished(); if (replyUpdate.isError()) @@ -111,7 +110,6 @@ void SettingPage::handleSaveButtonClicked(ConnectionSettings::ConnectionType con void SettingPage::initSettingPage() { initSpecificSettings(); - initWidgets(); } bool SettingPage::isInputValid() diff --git a/plugins/network/src/plugin/settings/setting-page.h b/plugins/network/src/plugin/settings/setting-page.h index ef5a8a7..474751a 100644 --- a/plugins/network/src/plugin/settings/setting-page.h +++ b/plugins/network/src/plugin/settings/setting-page.h @@ -39,7 +39,6 @@ public: virtual void initSettingPage(); virtual void initSpecificSettings() = 0; - virtual void initWidgets() = 0; virtual void saveSettingPage() = 0; virtual bool isInputValid(); @@ -53,7 +52,6 @@ signals: void settingChanged(); void settingUpdated(); - protected: NetworkManager::Connection::Ptr m_connection = nullptr; NetworkManager::ConnectionSettings::Ptr m_connectionSettings = nullptr; @@ -68,4 +66,4 @@ private: bool m_isNewConnection; }; -#endif //KIRAN_CPANEL_NETWORK_SETTINGPAGE_H +#endif // KIRAN_CPANEL_NETWORK_SETTINGPAGE_H diff --git a/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.cpp b/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.cpp index b9c7e84..dc9e4d2 100644 --- a/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.cpp +++ b/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.cpp @@ -13,9 +13,9 @@ */ #include "vpn-l2tp-setting.h" -#include "ui_vpn-l2tp-setting.h" -#include #include +#include +#include "ui_vpn-l2tp-setting.h" #define ServiceTypeL2TP "org.freedesktop.NetworkManager.l2tp" using namespace NetworkManager; @@ -33,25 +33,24 @@ VpnL2tpSetting::~VpnL2tpSetting() void VpnL2tpSetting::initConnection() { - connect(ui->disconnectAndDeleteWidget,&DisconnectAndDeleteButton::disconnectButtonClicked,this,&VpnL2tpSetting::returnPreviousPage); - connect(ui->disconnectAndDeleteWidget,&DisconnectAndDeleteButton::deleteButtonClicked,this,&VpnL2tpSetting::returnPreviousPage); + connect(ui->disconnectAndDeleteWidget, &DisconnectAndDeleteButton::disconnectButtonClicked, this, &VpnL2tpSetting::returnPreviousPage); + connect(ui->disconnectAndDeleteWidget, &DisconnectAndDeleteButton::deleteButtonClicked, this, &VpnL2tpSetting::returnPreviousPage); } void VpnL2tpSetting::initSettingPage() { initSpecificSettings(); - initWidgets(); } void VpnL2tpSetting::initSpecificSettings() { m_vpnSetting = m_connectionSettings->setting(Setting::SettingType::Vpn).dynamicCast(); m_ipv4Setting = m_connectionSettings->setting(Setting::SettingType::Ipv4).dynamicCast(); + m_vpnSetting->setServiceType(ServiceTypeL2TP); -} + m_vpnSetting->setInitialized(true); + m_ipv4Setting->setInitialized(true); -void VpnL2tpSetting::initWidgets() -{ ui->connectioNameWidget->setConnectionSettings(m_connectionSettings); ui->vpnWidget->setVpnSetting(m_vpnSetting); ui->vpnPpp->setVpnSetting(m_vpnSetting); @@ -80,7 +79,7 @@ void VpnL2tpSetting::showSettingPage(QString activeConnectionPath) if (activeConnectionPath.isEmpty()) ui->disconnectAndDeleteWidget->initButton(SETTING_CONNECTION_STATUS_DEACTIVATED); else - ui->disconnectAndDeleteWidget->initButton(SETTING_CONNECTION_STATUS_ACTIVATED,activeConnectionPath); + ui->disconnectAndDeleteWidget->initButton(SETTING_CONNECTION_STATUS_ACTIVATED, activeConnectionPath); } } diff --git a/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.h b/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.h index cda99b6..daefdb8 100644 --- a/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.h +++ b/plugins/network/src/plugin/settings/vpn/vpn-l2tp-setting.h @@ -15,8 +15,8 @@ #ifndef KIRAN_CPANEL_NETWORK_VPN_L2TP_SETTING_H #define KIRAN_CPANEL_NETWORK_VPN_L2TP_SETTING_H -#include #include +#include #include "setting-page.h" QT_BEGIN_NAMESPACE namespace Ui @@ -36,7 +36,6 @@ public: void initConnection(); void initSettingPage() override; void initSpecificSettings() override; - void initWidgets() override; void clearPtr() override; public slots: @@ -49,4 +48,4 @@ private: NetworkManager::VpnSetting::Ptr m_vpnSetting; }; -#endif //KIRAN_CPANEL_NETWORK_VPN_L2TP_SETTING_H +#endif // KIRAN_CPANEL_NETWORK_VPN_L2TP_SETTING_H diff --git a/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.cpp b/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.cpp index c09b2aa..260ae22 100644 --- a/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.cpp +++ b/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.cpp @@ -13,8 +13,8 @@ */ #include "vpn-pptp-setting.h" -#include "ui_vpn-pptp-setting.h" #include +#include "ui_vpn-pptp-setting.h" #define ServiceTypePPTP "org.freedesktop.NetworkManager.pptp" using namespace NetworkManager; @@ -22,8 +22,8 @@ VpnPptpSetting::VpnPptpSetting(QWidget *parent) : SettingPage(parent), ui(new Ui { ui->setupUi(this); ui->generalWidget->setNameLabel(tr("VPN name")); - connect(ui->generalButton,&DisconnectAndDeleteButton::disconnectButtonClicked,this,&VpnPptpSetting::returnPreviousPage); - connect(ui->generalButton,&DisconnectAndDeleteButton::deleteButtonClicked,this,&VpnPptpSetting::returnPreviousPage); + connect(ui->generalButton, &DisconnectAndDeleteButton::disconnectButtonClicked, this, &VpnPptpSetting::returnPreviousPage); + connect(ui->generalButton, &DisconnectAndDeleteButton::deleteButtonClicked, this, &VpnPptpSetting::returnPreviousPage); } VpnPptpSetting::~VpnPptpSetting() @@ -34,19 +34,17 @@ VpnPptpSetting::~VpnPptpSetting() void VpnPptpSetting::initSettingPage() { initSpecificSettings(); - initWidgets(); } - void VpnPptpSetting::initSpecificSettings() { m_vpnSetting = m_connectionSettings->setting(Setting::SettingType::Vpn).dynamicCast(); m_ipv4Setting = m_connectionSettings->setting(Setting::SettingType::Ipv4).dynamicCast(); + m_vpnSetting->setServiceType(ServiceTypePPTP); -} + m_vpnSetting->setInitialized(true); + m_ipv4Setting->setInitialized(true); -void VpnPptpSetting::initWidgets() -{ ui->generalWidget->setConnectionSettings(m_connectionSettings); ui->vpnWidget->setVpnSetting(m_vpnSetting); ui->vpnPpp->setVpnSetting(m_vpnSetting); @@ -81,13 +79,13 @@ void VpnPptpSetting::showSettingPage(QString activeConnectionPath) if (activeConnectionPath.isEmpty()) ui->generalButton->initButton(SETTING_CONNECTION_STATUS_DEACTIVATED); else - ui->generalButton->initButton(SETTING_CONNECTION_STATUS_ACTIVATED,activeConnectionPath); + ui->generalButton->initButton(SETTING_CONNECTION_STATUS_ACTIVATED, activeConnectionPath); } } void VpnPptpSetting::clearPtr() { - KLOG_DEBUG() << "VpnPptpSetting::clearPtr" ; + KLOG_DEBUG() << "VpnPptpSetting::clearPtr"; m_vpnSetting.clear(); SettingPage::clearPtr(); diff --git a/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.h b/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.h index 729d1da..fa179a1 100644 --- a/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.h +++ b/plugins/network/src/plugin/settings/vpn/vpn-pptp-setting.h @@ -15,9 +15,9 @@ #ifndef KIRAN_CPANEL_NETWORK_VPN_PPTP_SETTING_H #define KIRAN_CPANEL_NETWORK_VPN_PPTP_SETTING_H +#include #include #include "setting-page.h" -#include QT_BEGIN_NAMESPACE namespace Ui { @@ -34,7 +34,6 @@ public: ~VpnPptpSetting() override; void initSettingPage() override; void initSpecificSettings() override; - void initWidgets() override; void clearPtr() override; public slots: @@ -47,4 +46,4 @@ private: NetworkManager::VpnSetting::Ptr m_vpnSetting; }; -#endif //KIRAN_CPANEL_NETWORK_VPN_PPTP_SETTING_H +#endif // KIRAN_CPANEL_NETWORK_VPN_PPTP_SETTING_H diff --git a/plugins/network/src/plugin/settings/wired-setting-page.cpp b/plugins/network/src/plugin/settings/wired-setting-page.cpp index 4466468..507aee5 100644 --- a/plugins/network/src/plugin/settings/wired-setting-page.cpp +++ b/plugins/network/src/plugin/settings/wired-setting-page.cpp @@ -37,7 +37,6 @@ WiredSettingPage::~WiredSettingPage() void WiredSettingPage::initSettingPage() { initSpecificSettings(); - initWidgets(); } void WiredSettingPage::initConnecton() @@ -51,11 +50,11 @@ void WiredSettingPage::initSpecificSettings() m_ipv4Setting = m_connectionSettings->setting(Setting::SettingType::Ipv4).dynamicCast(); m_ipv6Setting = m_connectionSettings->setting(Setting::SettingType::Ipv6).dynamicCast(); m_wiredSetting = m_connectionSettings->setting(Setting::SettingType::Wired).dynamicCast(); -} -// TODO:修改命名 -void WiredSettingPage::initWidgets() -{ + m_ipv4Setting->setInitialized(true); + m_ipv6Setting->setInitialized(true); + m_wiredSetting->setInitialized(true); + ui->connectionNameWidget->setConnectionSettings(m_connectionSettings); ui->ipv4Widget->setIpv4Setting(m_ipv4Setting); ui->ipv6Widget->setIpv6Setting(m_ipv6Setting); diff --git a/plugins/network/src/plugin/settings/wired-setting-page.h b/plugins/network/src/plugin/settings/wired-setting-page.h index f90c8a7..335d7a4 100644 --- a/plugins/network/src/plugin/settings/wired-setting-page.h +++ b/plugins/network/src/plugin/settings/wired-setting-page.h @@ -37,7 +37,6 @@ public: void initConnecton(); void initSettingPage() override; void initSpecificSettings() override; - void initWidgets() override; void clearPtr() override; public slots: @@ -50,4 +49,4 @@ private: KiranSwitchButton *m_security; }; -#endif //KIRAN_CPANEL_NETWORK_WIRED_SETTING_PAGE_H +#endif // KIRAN_CPANEL_NETWORK_WIRED_SETTING_PAGE_H diff --git a/plugins/network/src/plugin/settings/wireless-setting-page.cpp b/plugins/network/src/plugin/settings/wireless-setting-page.cpp index efcdbe1..b0d5877 100644 --- a/plugins/network/src/plugin/settings/wireless-setting-page.cpp +++ b/plugins/network/src/plugin/settings/wireless-setting-page.cpp @@ -13,8 +13,8 @@ */ #include "wireless-setting-page.h" -#include "ui_wireless-setting-page.h" #include +#include "ui_wireless-setting-page.h" using namespace NetworkManager; WirelessSettingPage::WirelessSettingPage(QWidget *parent) : SettingPage(parent), ui(new Ui::WirelessSettingPage) @@ -32,14 +32,13 @@ WirelessSettingPage::~WirelessSettingPage() void WirelessSettingPage::initConnection() { - connect(ui->disconnectAndDeleteButton,&DisconnectAndDeleteButton::disconnectButtonClicked,this,&WirelessSettingPage::returnPreviousPage); - connect(ui->disconnectAndDeleteButton,&DisconnectAndDeleteButton::deleteButtonClicked,this,&WirelessSettingPage::returnPreviousPage); + connect(ui->disconnectAndDeleteButton, &DisconnectAndDeleteButton::disconnectButtonClicked, this, &WirelessSettingPage::returnPreviousPage); + connect(ui->disconnectAndDeleteButton, &DisconnectAndDeleteButton::deleteButtonClicked, this, &WirelessSettingPage::returnPreviousPage); } void WirelessSettingPage::initSettingPage() { initSpecificSettings(); - initWidgets(); } void WirelessSettingPage::initSpecificSettings() @@ -48,10 +47,12 @@ void WirelessSettingPage::initSpecificSettings() m_ipv6Setting = m_connectionSettings->setting(Setting::SettingType::Ipv6).dynamicCast(); m_wirelessSetting = m_connectionSettings->setting(Setting::SettingType::Wireless).dynamicCast(); m_wirelessSecuritySetting = m_connectionSettings->setting(Setting::SettingType::WirelessSecurity).dynamicCast(); -} -void WirelessSettingPage::initWidgets() -{ + m_ipv4Setting->setInitialized(true); + m_ipv6Setting->setInitialized(true); + m_wirelessSetting->setInitialized(true); + m_wirelessSecuritySetting->setInitialized(true); + ui->generalWidget->setConnectionSettings(m_connectionSettings); ui->ipv4Widget->setIpv4Setting(m_ipv4Setting); ui->ipv6Widget->setIpv6Setting(m_ipv6Setting); @@ -81,7 +82,7 @@ void WirelessSettingPage::showSettingPage(QString activeConnectionPath) if (activeConnectionPath.isEmpty()) ui->disconnectAndDeleteButton->initButton(SETTING_CONNECTION_STATUS_DEACTIVATED); else - ui->disconnectAndDeleteButton->initButton(SETTING_CONNECTION_STATUS_ACTIVATED,activeConnectionPath); + ui->disconnectAndDeleteButton->initButton(SETTING_CONNECTION_STATUS_ACTIVATED, activeConnectionPath); } } @@ -109,5 +110,3 @@ void WirelessSettingPage::clearPtr() ui->wirelessSecurity->clearPtr(); ui->wireless->clearPtr(); } - - diff --git a/plugins/network/src/plugin/settings/wireless-setting-page.h b/plugins/network/src/plugin/settings/wireless-setting-page.h index d0cf97b..bb963fe 100644 --- a/plugins/network/src/plugin/settings/wireless-setting-page.h +++ b/plugins/network/src/plugin/settings/wireless-setting-page.h @@ -15,10 +15,10 @@ #ifndef KIRAN_CPANEL_NETWORK_WIRELESS_SETTING_PAGE_H #define KIRAN_CPANEL_NETWORK_WIRELESS_SETTING_PAGE_H +#include +#include #include #include "setting-page.h" -#include -#include QT_BEGIN_NAMESPACE namespace Ui { @@ -36,16 +36,16 @@ public: void initConnection(); void initSettingPage() override; void initSpecificSettings() override; - void initWidgets() override; void clearPtr() override; public slots: void saveSettingPage() override; void showSettingPage(QString activeConnectionPath = ""); + private: Ui::WirelessSettingPage *ui; NetworkManager::WirelessSetting::Ptr m_wirelessSetting; NetworkManager::WirelessSecuritySetting::Ptr m_wirelessSecuritySetting; }; -#endif //KIRAN_CPANEL_NETWORK_WIRELESS_SETTING_PAGE_H +#endif // KIRAN_CPANEL_NETWORK_WIRELESS_SETTING_PAGE_H -- 2.33.0