kiran-control-panel/0005-fix-network-fix-invalid-configuration-created-for-th.patch
luoqing fd13947a9a fix(network):fix the problem of network and details corresponding error,Add error prompt box when saving configuration,fix invalid configuration created for the first time,fix crash and wireless network disable function defects
- 保存配置时,增加错误提示框
  修复网络详情页面中网络与详情对应错误
  修复初次创建配置失效的问题
  修复无线网络禁用的缺陷
2022-08-23 17:40:19 +08:00

467 lines
19 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 78bd84e3e5f9626e363e295a1f175c6f2f816ffe Mon Sep 17 00:00:00 2001
From: luoqing <luoqing@kylinsec.com.cn>
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<NetworkManager::IpAddress>());
- 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<QDBusObjectPath> 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 <NetworkManagerQt/Settings>
#include <qt5-log-i.h>
+#include <NetworkManagerQt/Settings>
+#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<VpnSetting>();
m_ipv4Setting = m_connectionSettings->setting(Setting::SettingType::Ipv4).dynamicCast<Ipv4Setting>();
+
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 <QWidget>
#include <NetworkManagerQt/VpnSetting>
+#include <QWidget>
#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 <qt5-log-i.h>
+#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<VpnSetting>();
m_ipv4Setting = m_connectionSettings->setting(Setting::SettingType::Ipv4).dynamicCast<Ipv4Setting>();
+
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 <NetworkManagerQt/VpnSetting>
#include <QWidget>
#include "setting-page.h"
-#include <NetworkManagerQt/VpnSetting>
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<Ipv4Setting>();
m_ipv6Setting = m_connectionSettings->setting(Setting::SettingType::Ipv6).dynamicCast<Ipv6Setting>();
m_wiredSetting = m_connectionSettings->setting(Setting::SettingType::Wired).dynamicCast<WiredSetting>();
-}
-// 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 <qt5-log-i.h>
+#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<Ipv6Setting>();
m_wirelessSetting = m_connectionSettings->setting(Setting::SettingType::Wireless).dynamicCast<WirelessSetting>();
m_wirelessSecuritySetting = m_connectionSettings->setting(Setting::SettingType::WirelessSecurity).dynamicCast<WirelessSecuritySetting>();
-}
-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 <NetworkManagerQt/WirelessSecuritySetting>
+#include <NetworkManagerQt/WirelessSetting>
#include <QWidget>
#include "setting-page.h"
-#include <NetworkManagerQt/WirelessSetting>
-#include <NetworkManagerQt/WirelessSecuritySetting>
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