[kde-plasma-nm] Fix storing of vpnc advanced settings
Jan Grulich
jgrulich at fedoraproject.org
Sat Jul 26 08:22:00 UTC 2014
commit 4ced32d4668510b8b79c62bc174bcc5556f45af8
Author: Jan Grulich <jgrulich at redhat.com>
Date: Sat Jul 26 10:21:41 2014 +0200
Fix storing of vpnc advanced settings
fix-storing-vpnc-advanced-settings.patch | 108 ++++++++++++++++++++++++++++++
kde-plasma-nm.spec | 9 ++-
2 files changed, 116 insertions(+), 1 deletions(-)
---
diff --git a/fix-storing-vpnc-advanced-settings.patch b/fix-storing-vpnc-advanced-settings.patch
new file mode 100644
index 0000000..44c5168
--- /dev/null
+++ b/fix-storing-vpnc-advanced-settings.patch
@@ -0,0 +1,108 @@
+diff --git a/vpn/vpnc/vpncadvancedwidget.h b/vpn/vpnc/vpncadvancedwidget.h
+index e0c7614..1018803 100644
+--- a/vpn/vpnc/vpncadvancedwidget.h
++++ b/vpn/vpnc/vpncadvancedwidget.h
+@@ -38,9 +38,9 @@ public:
+ ~VpncAdvancedWidget();
+
+ NMStringMap setting() const;
++ void loadConfig(const NetworkManager::VpnSetting::Ptr &setting);
+
+ private:
+- void loadConfig(const NetworkManager::VpnSetting::Ptr &setting);
+ Ui::VpncAdvancedWidget * m_ui;
+ };
+
+diff --git a/vpn/vpnc/vpncwidget.cpp b/vpn/vpnc/vpncwidget.cpp
+index 4207a00..ae3be74 100644
+--- a/vpn/vpnc/vpncwidget.cpp
++++ b/vpn/vpnc/vpncwidget.cpp
+@@ -44,6 +44,15 @@ VpncWidget::VpncWidget(const NetworkManager::VpnSetting::Ptr &setting, QWidget*
+
+ KAcceleratorManager::manage(this);
+
++ m_advancedWidget = new VpncAdvancedWidget(m_setting, this);
++ NMStringMap advData = m_advancedWidget->setting();
++ if (!advData.isEmpty()) {
++ if (m_tmpSetting.isNull()) {
++ m_tmpSetting = NetworkManager::VpnSetting::Ptr(new NetworkManager::VpnSetting);
++ }
++ m_tmpSetting->setData(advData);
++ }
++
+ if (m_setting)
+ loadConfig(setting);
+ }
+@@ -51,6 +60,7 @@ VpncWidget::VpncWidget(const NetworkManager::VpnSetting::Ptr &setting, QWidget*
+ VpncWidget::~VpncWidget()
+ {
+ m_tmpSetting.clear();
++ m_advancedWidget->deleteLater();
+ delete m_ui;
+ }
+
+@@ -110,10 +120,11 @@ QVariantMap VpncWidget::setting(bool agentOwned) const
+ NetworkManager::VpnSetting setting;
+ setting.setServiceType(QLatin1String(NM_DBUS_SERVICE_VPNC));
+ NMStringMap data;
++ NMStringMap secrets;
++
+ if (!m_tmpSetting.isNull()) {
+ data = m_tmpSetting->data();
+ }
+- NMStringMap secrets;
+
+ if (!m_ui->gateway->text().isEmpty())
+ data.insert(NM_VPNC_KEY_GATEWAY, m_ui->gateway->text());
+@@ -184,25 +195,13 @@ void VpncWidget::showPasswords(bool show)
+
+ void VpncWidget::showAdvanced()
+ {
+- QPointer<VpncAdvancedWidget> adv;
+- if (m_tmpSetting.isNull()) {
+- adv = new VpncAdvancedWidget(m_setting, this);
+- } else {
+- adv = new VpncAdvancedWidget(m_tmpSetting, this);
+- }
+- if (adv->exec() == QDialog::Accepted) {
+- NMStringMap advData = adv->setting();
++ m_advancedWidget->loadConfig(m_tmpSetting);
++ if (m_advancedWidget->exec() == QDialog::Accepted) {
++ NMStringMap advData = m_advancedWidget->setting();
+ if (!advData.isEmpty()) {
+- if (m_tmpSetting.isNull()) {
+- m_tmpSetting = NetworkManager::VpnSetting::Ptr(new NetworkManager::VpnSetting);
+- }
+ m_tmpSetting->setData(advData);
+ }
+ }
+-
+- if (adv) {
+- adv->deleteLater();
+- }
+ }
+
+ bool VpncWidget::isValid() const
+diff --git a/vpn/vpnc/vpncwidget.h b/vpn/vpnc/vpncwidget.h
+index 24cd868..0641506 100644
+--- a/vpn/vpnc/vpncwidget.h
++++ b/vpn/vpnc/vpncwidget.h
+@@ -23,7 +23,10 @@
+
+ #include <NetworkManagerQt/VpnSetting>
+
++#include <QPointer>
++
+ #include "settingwidget.h"
++#include "vpncadvancedwidget.h"
+
+ namespace Ui
+ {
+@@ -53,6 +56,7 @@ private:
+ Ui::VpncWidget * m_ui;
+ NetworkManager::VpnSetting::Ptr m_setting;
+ NetworkManager::VpnSetting::Ptr m_tmpSetting;
++ QPointer<VpncAdvancedWidget> m_advancedWidget;
+ };
+
+ #endif // PLASMA_NM_VPNC_WIDGET_H
diff --git a/kde-plasma-nm.spec b/kde-plasma-nm.spec
index 50e78cb..561def8 100644
--- a/kde-plasma-nm.spec
+++ b/kde-plasma-nm.spec
@@ -1,13 +1,14 @@
%global git_commit 38b75ec
Name: kde-plasma-nm
Version: 0.9.3.4
-Release: 10.201407024git%{git_commit}%{?dist}
+Release: 11.201407024git%{git_commit}%{?dist}
Summary: Plasma applet written in QML for managing network connections
License: LGPLv2+ and GPLv2+
URL: https://projects.kde.org/projects/playground/network/plasma-nm
# Source0: http://download.kde.org/unstable/plasma-nm//plasma-nm-%{version}.tar.xz
# # Package from git snapshots using releaseme scripts
Source0: plasma-nm-%{version}.tar.xz
+Patch0: fix-storing-vpnc-advanced-settings.patch
# Add plasma-nm to default systray if needed, for upgraders...
Source10: 01-fedora-plasma-nm.js
@@ -115,6 +116,8 @@ Provides: kde-plasma-networkmanagement-pptp = 1:%{version}-%{release}
%prep
%setup -qn plasma-nm-%{version}
+%patch0 -p1 -b .fix-storing-vpnc-advanced-settings
+
%build
mkdir -p %{_target_platform}
pushd %{_target_platform}
@@ -231,6 +234,10 @@ fi
%endif
%changelog
+* Sat Jul 26 2014 Jan Grulich <jgrulich at redhat.com> - 0.9.3.4-11.20140724git38b75ec
+- VPNC - fix storing of advaced settings
+ kdebz#337803
+
* Thu Jul 24 2014 Jan Grulich <jgrulich at redhat.com> - 0.9.3.4-10.20140724git38b75ec
- update git snapshot (probably final version)
- drop patches as they are already included in the tarball
More information about the scm-commits
mailing list