[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