kiran-control-panel/0005-fix-network-fix-invalid-configuration-created-for-th.patch

467 lines
19 KiB
Diff
Raw Normal View History

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