[kde-plasma-networkmanagement] 20120108 snapshot

Rex Dieter rdieter at fedoraproject.org
Sun Jan 8 21:28:06 UTC 2012


commit eb032b7ecedf6eedd0fd46335a391efd021ec5f0
Author: Rex Dieter <rdieter at fedoraproject.org>
Date:   Sun Jan 8 15:28:06 2012 -0600

    20120108 snapshot

 ...ash-if-no-security-type-has-been-detected.patch |   40 +++++
 ...-Correctly-detect-adhoc-WPA-access-points.patch |   52 ++++++
 ...s-to-correctly-identify-ad-hoc-WPA-access.patch |   51 ++++++
 0031-Add-some-checks-to-prevent-crashes.patch      |   75 +++++++++
 ...ctivatable-isShared-to-fix-compilation-er.patch |  151 +++++++++++++++++
 0033-Fix-translatable-string.patch                 |   25 +++
 ...ght-that-m_interfaces-would-never-be-empt.patch |   43 +++++
 ...as-described-in-Qt-s-documenation.-I-not-.patch |  175 ++++++++++++++++++++
 ...-instead-of-QByteArray-to-represent-file-.patch |  158 ++++++++++++++++++
 ...ifi-security-type-icon-in-connection-list.patch |   25 +++
 kde-plasma-networkmanagement.spec                  |   28 +++-
 11 files changed, 820 insertions(+), 3 deletions(-)
---
diff --git a/0028-Do-not-crash-if-no-security-type-has-been-detected.patch b/0028-Do-not-crash-if-no-security-type-has-been-detected.patch
new file mode 100644
index 0000000..73c531b
--- /dev/null
+++ b/0028-Do-not-crash-if-no-security-type-has-been-detected.patch
@@ -0,0 +1,40 @@
+From 3ad43aed91790e0be6feee56d005ba5d26b59a7c Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Fri, 30 Dec 2011 14:10:14 -0200
+Subject: [PATCH 28/37] Do not crash if no security type has been detected.
+
+---
+ libs/ui/security/wirelesssecuritysettingwidget.cpp |   10 ++++++++--
+ 1 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/libs/ui/security/wirelesssecuritysettingwidget.cpp b/libs/ui/security/wirelesssecuritysettingwidget.cpp
+index c3dfe07..dc26ecf 100644
+--- a/libs/ui/security/wirelesssecuritysettingwidget.cpp
++++ b/libs/ui/security/wirelesssecuritysettingwidget.cpp
+@@ -299,7 +299,9 @@ void WirelessSecuritySettingWidget::readSecrets()
+ {
+     Q_D(WirelessSecuritySettingWidget);
+     SecurityWidget * sw = d->currentSecurityWidget();
+-    sw->readSecrets();
++    if (sw) {
++        sw->readSecrets();
++    }
+ }
+ 
+ void WirelessSecuritySettingWidget::writeConfig()
+@@ -354,7 +356,11 @@ void WirelessSecuritySettingWidget::writeConfig()
+ void WirelessSecuritySettingWidget::validate()
+ {
+     Q_D(WirelessSecuritySettingWidget);
+-    emit valid( d->currentSecurityWidget()->validate() );
++    SecurityWidget * sw = d->currentSecurityWidget();
++    if (!sw) {
++        return;
++    }
++    emit valid( sw->validate() );
+ }
+ 
+ // vim: sw=4 sts=4 et tw=100
+-- 
+1.7.7.5
+
diff --git a/0029-Correctly-detect-adhoc-WPA-access-points.patch b/0029-Correctly-detect-adhoc-WPA-access-points.patch
new file mode 100644
index 0000000..3b74d61
--- /dev/null
+++ b/0029-Correctly-detect-adhoc-WPA-access-points.patch
@@ -0,0 +1,52 @@
+From 82dff2170f55957cfc680d2c008543a9d8f4636e Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Fri, 30 Dec 2011 14:42:00 -0200
+Subject: [PATCH 29/37] Correctly detect adhoc WPA access points.
+
+---
+ libs/internals/wirelesssecurityidentifier.cpp |   24 ++++++++++++++++++------
+ 1 files changed, 18 insertions(+), 6 deletions(-)
+
+diff --git a/libs/internals/wirelesssecurityidentifier.cpp b/libs/internals/wirelesssecurityidentifier.cpp
+index 43c63f3..24eb2d9 100644
+--- a/libs/internals/wirelesssecurityidentifier.cpp
++++ b/libs/internals/wirelesssecurityidentifier.cpp
+@@ -132,17 +132,29 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+             }
+             break;
+         case Knm::WirelessSecurity::WpaPsk:
+-            if (!(interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Wpa))
++            if (!(interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Wpa)) {
+                 return false;
++            }
+             if (haveAp) {
+                 /* Ad-Hoc WPA APs won't necessarily have the PSK flag set */
+-                if ((apWpa & Solid::Control::AccessPointNm09::KeyMgmtPsk) || adhoc) {
+-                    if (   (apWpa & Solid::Control::AccessPointNm09::PairTkip)
+-                            && (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Tkip))
++                if (adhoc) {
++                    if ((apWpa & Solid::Control::AccessPointNm09::GroupTkip) &&
++                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Tkip)) {
+                         return true;
+-                    if (   (apWpa & Solid::Control::AccessPointNm09::PairCcmp)
+-                            && (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Ccmp))
++                    }
++                    if ((apWpa & Solid::Control::AccessPointNm09::GroupCcmp) &&
++                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Ccmp)) {
++                        return true;
++                    }
++                } else if (apWpa & Solid::Control::AccessPointNm09::KeyMgmtPsk) {
++                    if ((apWpa & Solid::Control::AccessPointNm09::PairTkip) &&
++                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Tkip)) {
++                        return true;
++                    }
++                    if ((apWpa & Solid::Control::AccessPointNm09::PairCcmp) &&
++                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Ccmp)) {
+                         return true;
++                    }
+                 }
+                 return false;
+             }
+-- 
+1.7.7.5
+
diff --git a/0030-More-changes-to-correctly-identify-ad-hoc-WPA-access.patch b/0030-More-changes-to-correctly-identify-ad-hoc-WPA-access.patch
new file mode 100644
index 0000000..143a6d4
--- /dev/null
+++ b/0030-More-changes-to-correctly-identify-ad-hoc-WPA-access.patch
@@ -0,0 +1,51 @@
+From 38de4d302751d86faa8dd560705bf80f273ccbe6 Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Sat, 31 Dec 2011 21:09:10 -0200
+Subject: [PATCH 30/37] More changes to correctly identify ad-hoc WPA access
+ points.
+
+---
+ applet/wirelessstatus.cpp                          |    2 +-
+ ...wirelessnetworkinterfaceactivatableprovider.cpp |    2 +-
+ plasma_nm_version.h                                |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/applet/wirelessstatus.cpp b/applet/wirelessstatus.cpp
+index c81e9b1..6f14264 100644
+--- a/applet/wirelessstatus.cpp
++++ b/applet/wirelessstatus.cpp
+@@ -67,7 +67,7 @@ public:
+             //adhoc->setIcon(QIcon("nm-adhoc"));
+         }
+         ssid = wobj->ssid();
+-        Knm::WirelessSecurity::Type best = Knm::WirelessSecurity::best(wobj->interfaceCapabilities(), true, (wobj->operationMode() == Solid::Control::WirelessNetworkInterfaceNm09::Adhoc), wobj->apCapabilities(), wobj->wpaFlags(), wobj->rsnFlags());
++        Knm::WirelessSecurity::Type best = Knm::WirelessSecurity::best(wobj->interfaceCapabilities(), !activatable->isShared(), (wobj->operationMode() == Solid::Control::WirelessNetworkInterfaceNm09::Adhoc), wobj->apCapabilities(), wobj->wpaFlags(), wobj->rsnFlags());
+         //security->setToolTip(Knm::WirelessSecurity::shortToolTip(best));
+         securityIcon = Knm::WirelessSecurity::iconName(best);
+         securityTooltip = Knm::WirelessSecurity::shortToolTip(best);
+diff --git a/libs/service/wirelessnetworkinterfaceactivatableprovider.cpp b/libs/service/wirelessnetworkinterfaceactivatableprovider.cpp
+index b00e017..29b00ab 100644
+--- a/libs/service/wirelessnetworkinterfaceactivatableprovider.cpp
++++ b/libs/service/wirelessnetworkinterfaceactivatableprovider.cpp
+@@ -142,7 +142,7 @@ void WirelessNetworkInterfaceActivatableProvider::handleAdd(Knm::Connection * ad
+                 }
+ 
+                 // create WirelessInterfaceConnections only where the network is present
+-                if (!ourWicFound && (d->environment->networks().contains(wirelessSetting->ssid()) || wirelessSetting->mode() == Knm::WirelessSetting::EnumMode::adhoc)) {
++                if (!ourWicFound && (d->environment->networks().contains(wirelessSetting->ssid()) || addedConnection->isShared())) {
+                     kDebug() << "Adding WIC:" << wirelessSetting->ssid() <<  addedConnection->uuid() << addedConnection->name() << d->interface->uni() << wirelessSetting->channel();
+ 
+                     Knm::WirelessInterfaceConnection * ifaceConnection =
+diff --git a/plasma_nm_version.h b/plasma_nm_version.h
+index bf09030..67345af 100644
+--- a/plasma_nm_version.h
++++ b/plasma_nm_version.h
+@@ -1,4 +1,4 @@
+ #ifndef PLASMA_NM_VERSION_H
+ #define PLASMA_NM_VERSION_H
+-static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20111227)";
++static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20111231)";
+ #endif
+-- 
+1.7.7.5
+
diff --git a/0031-Add-some-checks-to-prevent-crashes.patch b/0031-Add-some-checks-to-prevent-crashes.patch
new file mode 100644
index 0000000..f2b866a
--- /dev/null
+++ b/0031-Add-some-checks-to-prevent-crashes.patch
@@ -0,0 +1,75 @@
+From 0c0101648d5543e5142efcc68056e9f426681dd9 Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Sun, 1 Jan 2012 17:59:09 -0200
+Subject: [PATCH 31/37] Add some checks to prevent crashes.
+
+---
+ applet/wirelessstatus.cpp         |    9 +++++++--
+ libs/client/remoteactivatable.cpp |   13 +++++++++++++
+ plasma_nm_version.h               |    2 +-
+ 3 files changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/applet/wirelessstatus.cpp b/applet/wirelessstatus.cpp
+index 6f14264..89490ff 100644
+--- a/applet/wirelessstatus.cpp
++++ b/applet/wirelessstatus.cpp
+@@ -53,7 +53,8 @@ public:
+         strength(-1),
+         adhoc(false),
+         iface(0),
+-        activeAccessPoint(0)
++        activeAccessPoint(0),
++        activatable(0)
+     {
+     }
+ 
+@@ -67,7 +68,11 @@ public:
+             //adhoc->setIcon(QIcon("nm-adhoc"));
+         }
+         ssid = wobj->ssid();
+-        Knm::WirelessSecurity::Type best = Knm::WirelessSecurity::best(wobj->interfaceCapabilities(), !activatable->isShared(), (wobj->operationMode() == Solid::Control::WirelessNetworkInterfaceNm09::Adhoc), wobj->apCapabilities(), wobj->wpaFlags(), wobj->rsnFlags());
++        bool isShared = false;
++        if (activatable) {
++            isShared = activatable->isShared();
++        }
++        Knm::WirelessSecurity::Type best = Knm::WirelessSecurity::best(wobj->interfaceCapabilities(), isShared, (wobj->operationMode() == Solid::Control::WirelessNetworkInterfaceNm09::Adhoc), wobj->apCapabilities(), wobj->wpaFlags(), wobj->rsnFlags());
+         //security->setToolTip(Knm::WirelessSecurity::shortToolTip(best));
+         securityIcon = Knm::WirelessSecurity::iconName(best);
+         securityTooltip = Knm::WirelessSecurity::shortToolTip(best);
+diff --git a/libs/client/remoteactivatable.cpp b/libs/client/remoteactivatable.cpp
+index f23ac9d..ed88aa4 100644
+--- a/libs/client/remoteactivatable.cpp
++++ b/libs/client/remoteactivatable.cpp
+@@ -86,6 +86,19 @@ QString RemoteActivatable::deviceUni() const
+     return d->deviceUni;
+ }
+ 
++bool RemoteActivatable::isShared() const
++{
++    Q_D(const RemoteActivatable);
++    if (!d->activatableIface->isValid()) {
++        return false;
++    }
++    QDBusReply<bool> reply = d->activatableIface->isShared();
++    if (reply.isValid()) {
++        return reply.value();
++    }
++    return false;
++}
++
+ void RemoteActivatable::activate()
+ {
+     Q_D(RemoteActivatable);
+diff --git a/plasma_nm_version.h b/plasma_nm_version.h
+index 67345af..9d79e1c 100644
+--- a/plasma_nm_version.h
++++ b/plasma_nm_version.h
+@@ -1,4 +1,4 @@
+ #ifndef PLASMA_NM_VERSION_H
+ #define PLASMA_NM_VERSION_H
+-static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20111231)";
++static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20120101)";
+ #endif
+-- 
+1.7.7.5
+
diff --git a/0032-Add-RemoveActivatable-isShared-to-fix-compilation-er.patch b/0032-Add-RemoveActivatable-isShared-to-fix-compilation-er.patch
new file mode 100644
index 0000000..6226431
--- /dev/null
+++ b/0032-Add-RemoveActivatable-isShared-to-fix-compilation-er.patch
@@ -0,0 +1,151 @@
+From dfeee8cc56f3ce67061926bfb981d5375a1d91b4 Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Sun, 1 Jan 2012 18:09:55 -0200
+Subject: [PATCH 32/37] Add RemoveActivatable::isShared() to fix compilation
+ error because of the last commit.
+
+---
+ libs/client/remoteactivatable.h                    |    2 ++
+ libs/internals/activatable.cpp                     |   12 +++++++++++-
+ libs/internals/activatable.h                       |    3 +++
+ libs/internals/connection.cpp                      |    6 ++++++
+ libs/internals/connection.h                        |    1 +
+ libs/internals/interfaceconnectionhelpers.cpp      |    2 ++
+ .../org.kde.networkmanagement.activatable.xml      |    3 +++
+ 7 files changed, 28 insertions(+), 1 deletions(-)
+
+diff --git a/libs/client/remoteactivatable.h b/libs/client/remoteactivatable.h
+index 37b83ea..ec41fa7 100644
+--- a/libs/client/remoteactivatable.h
++++ b/libs/client/remoteactivatable.h
+@@ -37,6 +37,7 @@ class KNMCLIENT_EXPORT RemoteActivatable : public QObject
+ Q_OBJECT
+ Q_PROPERTY(QString deviceUni READ deviceUni)
+ Q_PROPERTY(QString type READ activatableType)
++Q_PROPERTY(bool isShared READ isShared)
+ 
+ friend class RemoteActivatableList;
+ 
+@@ -44,6 +45,7 @@ public:
+     virtual ~RemoteActivatable();
+     Knm::Activatable::ActivatableType activatableType() const;
+     QString deviceUni() const;
++    bool isShared() const;
+ public Q_SLOTS:
+     void activate();
+ Q_SIGNALS:
+diff --git a/libs/internals/activatable.cpp b/libs/internals/activatable.cpp
+index 55778ec..19538db 100644
+--- a/libs/internals/activatable.cpp
++++ b/libs/internals/activatable.cpp
+@@ -28,7 +28,7 @@ License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ using namespace Knm;
+ 
+ Activatable::Activatable(ActivatableType type, const QString & deviceUni, QObject * parent)
+-: QObject(parent), m_type(type), m_deviceUni(deviceUni)
++: QObject(parent), m_type(type), m_deviceUni(deviceUni), m_shared(false)
+ {
+ }
+ 
+@@ -51,6 +51,16 @@ QString Activatable::deviceUni() const
+     return m_deviceUni;
+ }
+ 
++bool Activatable::isShared() const
++{
++    return m_shared;
++}
++
++void Activatable::setShared(const bool shared)
++{
++    m_shared = shared;
++}
++
+ void Activatable::activate()
+ {
+     kDebug();
+diff --git a/libs/internals/activatable.h b/libs/internals/activatable.h
+index 999474c..c8a795b 100644
+--- a/libs/internals/activatable.h
++++ b/libs/internals/activatable.h
+@@ -54,6 +54,8 @@ public:
+     ActivatableType activatableType() const;
+     void setDeviceUni(const QString& deviceUni);
+     QString deviceUni() const;
++    bool isShared() const;
++    void setShared(const bool);
+ public Q_SLOTS:
+     void activate();
+ Q_SIGNALS:
+@@ -65,6 +67,7 @@ protected:
+ private:
+     ActivatableType m_type;
+     QString m_deviceUni;
++    bool m_shared;
+ };
+ 
+ } // namespace
+diff --git a/libs/internals/connection.cpp b/libs/internals/connection.cpp
+index 0422f17..c38372e 100644
+--- a/libs/internals/connection.cpp
++++ b/libs/internals/connection.cpp
+@@ -333,6 +333,12 @@ bool Connection::autoConnect() const
+     return m_autoConnect;
+ }
+ 
++bool Connection::isShared() const
++{
++    Ipv4Setting * ipv4 = static_cast<Ipv4Setting *>(setting(Setting::Ipv4));
++    return (ipv4 && ipv4->method() == Ipv4Setting::EnumMethod::Shared);
++}
++
+ QDateTime Connection::timestamp() const
+ {
+     return m_timestamp;
+diff --git a/libs/internals/connection.h b/libs/internals/connection.h
+index 5de931d..485b810 100644
+--- a/libs/internals/connection.h
++++ b/libs/internals/connection.h
+@@ -62,6 +62,7 @@ public:
+     QUuid uuid() const;
+     Connection::Type type() const;
+     bool autoConnect() const;
++    bool isShared() const;
+     QDateTime timestamp() const;
+     QHash<QString,QString> permissions() const;
+ 
+diff --git a/libs/internals/interfaceconnectionhelpers.cpp b/libs/internals/interfaceconnectionhelpers.cpp
+index 80a625d..7859098 100644
+--- a/libs/internals/interfaceconnectionhelpers.cpp
++++ b/libs/internals/interfaceconnectionhelpers.cpp
+@@ -69,6 +69,7 @@ void InterfaceConnectionBuilder::init(InterfaceConnection *ic)
+     ic->setConnectionType(m_connection->type());
+     ic->setConnectionName(m_connection->name());
+     ic->setIconName(m_connection->iconName());
++    ic->setShared(m_connection->isShared());
+ }
+ 
+ InterfaceConnectionSync::InterfaceConnectionSync()
+@@ -84,4 +85,5 @@ void InterfaceConnectionSync::sync(Knm::InterfaceConnection * interfaceConnectio
+ {
+     interfaceConnection->setConnectionName(connection->name());
+     interfaceConnection->setIconName(connection->iconName());
++    interfaceConnection->setShared(connection->isShared());
+ }
+diff --git a/libs/service/interfaces/org.kde.networkmanagement.activatable.xml b/libs/service/interfaces/org.kde.networkmanagement.activatable.xml
+index 79ea4e9..fe2665c 100644
+--- a/libs/service/interfaces/org.kde.networkmanagement.activatable.xml
++++ b/libs/service/interfaces/org.kde.networkmanagement.activatable.xml
+@@ -8,6 +8,9 @@
+     <method name="deviceUni">
+       <arg name="uni" type="s" direction="out" />
+     </method>
++    <method name="isShared">
++      <arg name="shared" type="b" direction="out" />
++    </method>
+     <method name="activate"/>
+     <signal name="activated"/>
+     <signal name="changed"/>
+-- 
+1.7.7.5
+
diff --git a/0033-Fix-translatable-string.patch b/0033-Fix-translatable-string.patch
new file mode 100644
index 0000000..c37dd56
--- /dev/null
+++ b/0033-Fix-translatable-string.patch
@@ -0,0 +1,25 @@
+From 8bbeccaadf39ce632a369a1f51e2f80019929529 Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Tue, 3 Jan 2012 12:07:15 -0200
+Subject: [PATCH 33/37] Fix translatable string.
+
+---
+ vpnplugins/openvpn/openvpnprop.ui |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/vpnplugins/openvpn/openvpnprop.ui b/vpnplugins/openvpn/openvpnprop.ui
+index 933bb0f..7c57fe9 100644
+--- a/vpnplugins/openvpn/openvpnprop.ui
++++ b/vpnplugins/openvpn/openvpnprop.ui
+@@ -322,7 +322,7 @@
+              <item row="0" column="0">
+               <widget class="QLabel" name="textLabel8">
+                <property name="text">
+-                <string>CA file:</string>
++                <string>CA File:</string>
+                </property>
+                <property name="alignment">
+                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+-- 
+1.7.7.5
+
diff --git a/0034-Well-I-thought-that-m_interfaces-would-never-be-empt.patch b/0034-Well-I-thought-that-m_interfaces-would-never-be-empt.patch
new file mode 100644
index 0000000..963df65
--- /dev/null
+++ b/0034-Well-I-thought-that-m_interfaces-would-never-be-empt.patch
@@ -0,0 +1,43 @@
+From d43c5cdad0186b16913023c111ea6ffea0f07734 Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Thu, 5 Jan 2012 19:26:25 -0200
+Subject: [PATCH 34/37] Well, I thought that m_interfaces would never be empty
+ when adding new interfaces. It seems I was wrong.
+
+CCBUG: 290684
+(cherry picked from commit 56d0a3e73bb5c6351ff369cfba5a9098a016d0d7)
+---
+ applet/networkmanager.cpp |    6 +++++-
+ plasma_nm_version.h       |    2 +-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/applet/networkmanager.cpp b/applet/networkmanager.cpp
+index 44a7326..50dd8a4 100644
+--- a/applet/networkmanager.cpp
++++ b/applet/networkmanager.cpp
+@@ -486,7 +486,11 @@ void NetworkManagerApplet::networkInterfaceAdded(const QString & uni)
+     m_interfaces = Solid::Control::NetworkManagerNm09::networkInterfaces();
+ 
+     if (!m_activeInterface) {
+-        setActiveInterface(m_interfaces.first());
++        if (m_interfaces.isEmpty()) {
++            setActiveInterface(0);
++        } else {
++            setActiveInterface(m_interfaces.first());
++        }
+         setActiveSystrayInterface(m_activeInterface);
+     }
+ 
+diff --git a/plasma_nm_version.h b/plasma_nm_version.h
+index 9d79e1c..53abf1e 100644
+--- a/plasma_nm_version.h
++++ b/plasma_nm_version.h
+@@ -1,4 +1,4 @@
+ #ifndef PLASMA_NM_VERSION_H
+ #define PLASMA_NM_VERSION_H
+-static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20120101)";
++static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20120105)";
+ #endif
+-- 
+1.7.7.5
+
diff --git a/0035-Use-QFlags-as-described-in-Qt-s-documenation.-I-not-.patch b/0035-Use-QFlags-as-described-in-Qt-s-documenation.-I-not-.patch
new file mode 100644
index 0000000..1e84d11
--- /dev/null
+++ b/0035-Use-QFlags-as-described-in-Qt-s-documenation.-I-not-.patch
@@ -0,0 +1,175 @@
+From 306d98eb91866ebd60f1692a0bc933d635b9b17c Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Fri, 6 Jan 2012 14:18:42 -0200
+Subject: [PATCH 35/37] Use QFlags as described in Qt's documenation. I not
+ sure if the old way causes any problem but according
+ to the documentation it creates a temporary QFlags
+ object, which is probably not as fast as using
+ testFlag.
+
+---
+ libs/internals/wirelesssecurityidentifier.cpp |   57 +++++++++++++------------
+ plasma_nm_version.h                           |    2 +-
+ 2 files changed, 31 insertions(+), 28 deletions(-)
+
+diff --git a/libs/internals/wirelesssecurityidentifier.cpp b/libs/internals/wirelesssecurityidentifier.cpp
+index 24eb2d9..f9a23b7 100644
+--- a/libs/internals/wirelesssecurityidentifier.cpp
++++ b/libs/internals/wirelesssecurityidentifier.cpp
+@@ -77,18 +77,19 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+         if ((type == Knm::WirelessSecurity::StaticWep)
+                 || ((type == Knm::WirelessSecurity::DynamicWep) && !adhoc)
+                 || ((type == Knm::WirelessSecurity::Leap) && !adhoc)) {
+-            if (interfaceCaps & (Solid::Control::WirelessNetworkInterfaceNm09::Wep40 | Solid::Control::WirelessNetworkInterfaceNm09::Wep104))
++            if (interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Wep40) ||
++                interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Wep104))
+                 return true;
+         }
+         if (type == Knm::WirelessSecurity::WpaPsk
+                 || ((type == Knm::WirelessSecurity::WpaEap) && !adhoc)) {
+-            if (interfaceCaps & (Solid::Control::WirelessNetworkInterfaceNm09::Wpa)) {
++            if (interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Wpa)) {
+                 return true;
+             }
+         }
+         if (type == Knm::WirelessSecurity::Wpa2Psk
+                 || ((type == Knm::WirelessSecurity::Wpa2Eap) && !adhoc)) {
+-            if (interfaceCaps & (Solid::Control::WirelessNetworkInterfaceNm09::Rsn)) {
++            if (interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Rsn)) {
+                 return true;
+             }
+         }
+@@ -98,7 +99,7 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+     switch (type) {
+         case Knm::WirelessSecurity::None:
+             Q_ASSERT (haveAp);
+-            if (apCaps & Solid::Control::AccessPointNm09::Privacy)
++            if (apCaps.testFlag(Solid::Control::AccessPointNm09::Privacy))
+                 return false;
+             if (apWpa || apRsn)
+                 return false;
+@@ -109,7 +110,7 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+             /* Fall through */
+         case Knm::WirelessSecurity::StaticWep:
+             Q_ASSERT (haveAp);
+-            if (!(apCaps & Solid::Control::AccessPointNm09::Privacy))
++            if (!apCaps.testFlag(Solid::Control::AccessPointNm09::Privacy))
+                 return false;
+             if (apWpa || apRsn) {
+                 if (!interfaceSupportsApCiphers (interfaceCaps, apWpa, StaticWep))
+@@ -121,38 +122,38 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+             if (adhoc)
+                 return false;
+             Q_ASSERT (haveAp);
+-            if (apRsn || !(apCaps & Solid::Control::AccessPointNm09::Privacy))
++            if (apRsn || !(apCaps.testFlag(Solid::Control::AccessPointNm09::Privacy)))
+                 return false;
+             /* Some APs broadcast minimal WPA-enabled beacons that must be handled */
+             if (apWpa) {
+-                if (!(apWpa & Solid::Control::AccessPointNm09::KeyMgmt8021x))
++                if (!apWpa.testFlag(Solid::Control::AccessPointNm09::KeyMgmt8021x))
+                     return false;
+                 if (!interfaceSupportsApCiphers (interfaceCaps, apWpa, DynamicWep))
+                     return false;
+             }
+             break;
+         case Knm::WirelessSecurity::WpaPsk:
+-            if (!(interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Wpa)) {
++            if (!interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Wpa)) {
+                 return false;
+             }
+             if (haveAp) {
+                 /* Ad-Hoc WPA APs won't necessarily have the PSK flag set */
+                 if (adhoc) {
+-                    if ((apWpa & Solid::Control::AccessPointNm09::GroupTkip) &&
+-                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Tkip)) {
++                    if (apWpa.testFlag(Solid::Control::AccessPointNm09::GroupTkip) &&
++                        interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Tkip)) {
+                         return true;
+                     }
+-                    if ((apWpa & Solid::Control::AccessPointNm09::GroupCcmp) &&
+-                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Ccmp)) {
++                    if (apWpa.testFlag(Solid::Control::AccessPointNm09::GroupCcmp) &&
++                        interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Ccmp)) {
+                         return true;
+                     }
+-                } else if (apWpa & Solid::Control::AccessPointNm09::KeyMgmtPsk) {
+-                    if ((apWpa & Solid::Control::AccessPointNm09::PairTkip) &&
+-                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Tkip)) {
++                } else if (apWpa.testFlag(Solid::Control::AccessPointNm09::KeyMgmtPsk)) {
++                    if (apWpa.testFlag(Solid::Control::AccessPointNm09::PairTkip) &&
++                        interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Tkip)) {
+                         return true;
+                     }
+-                    if ((apWpa & Solid::Control::AccessPointNm09::PairCcmp) &&
+-                        (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Ccmp)) {
++                    if (apWpa.testFlag(Solid::Control::AccessPointNm09::PairCcmp) &&
++                        interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Ccmp)) {
+                         return true;
+                     }
+                 }
+@@ -160,17 +161,19 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+             }
+             break;
+         case Knm::WirelessSecurity::Wpa2Psk:
+-            if (!(interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Rsn))
++            if (!interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Rsn))
+                 return false;
+             if (haveAp) {
+                 /* Ad-Hoc WPA APs won't necessarily have the PSK flag set */
+-                if ((apRsn & Solid::Control::AccessPointNm09::KeyMgmtPsk) || adhoc) {
+-                    if (   (apRsn & Solid::Control::AccessPointNm09::PairTkip)
+-                            && (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Tkip))
++                if (apRsn.testFlag(Solid::Control::AccessPointNm09::KeyMgmtPsk) || adhoc) {
++                    if (apRsn.testFlag(Solid::Control::AccessPointNm09::PairTkip) &&
++                        interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Tkip)) {
+                         return true;
+-                    if (   (apRsn & Solid::Control::AccessPointNm09::PairCcmp)
+-                            && (interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Ccmp))
++                    }
++                    if (apRsn.testFlag(Solid::Control::AccessPointNm09::PairCcmp) &&
++                        interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Ccmp)) {
+                         return true;
++                    }
+                 }
+                 return false;
+             }
+@@ -178,10 +181,10 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+         case Knm::WirelessSecurity::WpaEap:
+             if (adhoc)
+                 return false;
+-            if (!(interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Wpa))
++            if (!interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Wpa))
+                 return false;
+             if (haveAp) {
+-                if (!(apWpa & Solid::Control::AccessPointNm09::KeyMgmt8021x))
++                if (!apWpa.testFlag(Solid::Control::AccessPointNm09::KeyMgmt8021x))
+                     return false;
+                 /* Ensure at least one WPA cipher is supported */
+                 if (!interfaceSupportsApCiphers (interfaceCaps, apWpa, WpaEap))
+@@ -191,10 +194,10 @@ bool Knm::WirelessSecurity::possible(Knm::WirelessSecurity::Type type, Solid::Co
+         case Knm::WirelessSecurity::Wpa2Eap:
+             if (adhoc)
+                 return false;
+-            if (!(interfaceCaps & Solid::Control::WirelessNetworkInterfaceNm09::Rsn))
++            if (!interfaceCaps.testFlag(Solid::Control::WirelessNetworkInterfaceNm09::Rsn))
+                 return false;
+             if (haveAp) {
+-                if (!(apRsn & Solid::Control::AccessPointNm09::KeyMgmt8021x))
++                if (!apRsn.testFlag(Solid::Control::AccessPointNm09::KeyMgmt8021x))
+                     return false;
+                 /* Ensure at least one WPA cipher is supported */
+                 if (!interfaceSupportsApCiphers (interfaceCaps, apRsn, Wpa2Eap))
+diff --git a/plasma_nm_version.h b/plasma_nm_version.h
+index 53abf1e..f3107ad 100644
+--- a/plasma_nm_version.h
++++ b/plasma_nm_version.h
+@@ -1,4 +1,4 @@
+ #ifndef PLASMA_NM_VERSION_H
+ #define PLASMA_NM_VERSION_H
+-static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20120105)";
++static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20120106)";
+ #endif
+-- 
+1.7.7.5
+
diff --git a/0036-Use-QString-instead-of-QByteArray-to-represent-file-.patch b/0036-Use-QString-instead-of-QByteArray-to-represent-file-.patch
new file mode 100644
index 0000000..7b8131b
--- /dev/null
+++ b/0036-Use-QString-instead-of-QByteArray-to-represent-file-.patch
@@ -0,0 +1,158 @@
+From b4c8891c43f2f12f129352a5996acf3786b8b0f3 Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Sat, 7 Jan 2012 01:26:42 -0200
+Subject: [PATCH 36/37] Use QString instead of QByteArray to represent file
+ paths.
+
+BUG: 290715
+---
+ plasma_nm_version.h                          |    2 +-
+ vpnplugins/novellvpn/novellvpnwidget.cpp     |    2 +-
+ vpnplugins/openconnect/openconnectwidget.cpp |    8 ++++----
+ vpnplugins/openvpn/openvpnwidget.cpp         |   16 ++++++++--------
+ vpnplugins/strongswan/strongswanwidget.cpp   |    8 ++++----
+ vpnplugins/vpnc/vpncwidget.cpp               |    2 +-
+ 6 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/plasma_nm_version.h b/plasma_nm_version.h
+index f3107ad..e9238b4 100644
+--- a/plasma_nm_version.h
++++ b/plasma_nm_version.h
+@@ -1,4 +1,4 @@
+ #ifndef PLASMA_NM_VERSION_H
+ #define PLASMA_NM_VERSION_H
+-static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20120106)";
++static const char * plasmaNmVersion = "0.9.0_rc3 (nm09 20120107)";
+ #endif
+diff --git a/vpnplugins/novellvpn/novellvpnwidget.cpp b/vpnplugins/novellvpn/novellvpnwidget.cpp
+index 233b157..a593dda 100644
+--- a/vpnplugins/novellvpn/novellvpnwidget.cpp
++++ b/vpnplugins/novellvpn/novellvpnwidget.cpp
+@@ -192,7 +192,7 @@ void NovellVpnSettingWidget::writeConfig()
+ void NovellVpnSettingWidget::writeX509Auth(QStringMap & data, QStringMap & secretData)
+ {
+     data.insert(QLatin1String(NM_NOVELLVPN_KEY_AUTHTYPE), QLatin1String(NM_NOVELLVPN_CONTYPE_X509_STRING));
+-    data.insert(NM_NOVELLVPN_KEY_CERTIFICATE, d->ui.x509Cert->url().path().toUtf8());
++    data.insert(NM_NOVELLVPN_KEY_CERTIFICATE, d->ui.x509Cert->url().path());
+     secretData.insert(QLatin1String(NM_NOVELLVPN_KEY_CERT_PWD), d->ui.x509CertPass->text());
+ }
+ 
+diff --git a/vpnplugins/openconnect/openconnectwidget.cpp b/vpnplugins/openconnect/openconnectwidget.cpp
+index 02b73ae..2d28b64 100644
+--- a/vpnplugins/openconnect/openconnectwidget.cpp
++++ b/vpnplugins/openconnect/openconnectwidget.cpp
+@@ -78,16 +78,16 @@ void OpenconnectSettingWidget::writeConfig()
+ 
+     data.insert(QLatin1String(NM_OPENCONNECT_KEY_GATEWAY), d->ui.leGateway->text().toUtf8());
+     if (!d->ui.leCaCertificate->url().isEmpty())
+-        data.insert(QLatin1String(NM_OPENCONNECT_KEY_CACERT), d->ui.leCaCertificate->url().path().toUtf8());
++        data.insert(QLatin1String(NM_OPENCONNECT_KEY_CACERT), d->ui.leCaCertificate->url().path());
+     if (!d->ui.leProxy->text().isEmpty())
+         data.insert(QLatin1String(NM_OPENCONNECT_KEY_PROXY), d->ui.leProxy->text().toUtf8());
+     data.insert(QLatin1String(NM_OPENCONNECT_KEY_CSD_ENABLE), d->ui.chkAllowTrojan->isChecked() ? "yes" : "no");
+     if (!d->ui.leCsdWrapperScript->url().isEmpty())
+-        data.insert(QLatin1String(NM_OPENCONNECT_KEY_CSD_WRAPPER), d->ui.leCsdWrapperScript->url().path().toUtf8());
++        data.insert(QLatin1String(NM_OPENCONNECT_KEY_CSD_WRAPPER), d->ui.leCsdWrapperScript->url().path());
+     if (!d->ui.leUserCert->url().isEmpty())
+-        data.insert(QLatin1String(NM_OPENCONNECT_KEY_USERCERT), d->ui.leUserCert->url().path().toUtf8());
++        data.insert(QLatin1String(NM_OPENCONNECT_KEY_USERCERT), d->ui.leUserCert->url().path());
+     if (!d->ui.leUserPrivateKey->url().isEmpty())
+-        data.insert(QLatin1String(NM_OPENCONNECT_KEY_PRIVKEY), d->ui.leUserPrivateKey->url().path().toUtf8());
++        data.insert(QLatin1String(NM_OPENCONNECT_KEY_PRIVKEY), d->ui.leUserPrivateKey->url().path());
+     data.insert(QLatin1String(NM_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID), d->ui.chkUseFsid->isChecked() ? "yes" : "no");
+ 
+     /* These are different for every login session, and should not be stored */
+diff --git a/vpnplugins/openvpn/openvpnwidget.cpp b/vpnplugins/openvpn/openvpnwidget.cpp
+index 38af08e..497a484 100644
+--- a/vpnplugins/openvpn/openvpnwidget.cpp
++++ b/vpnplugins/openvpn/openvpnwidget.cpp
+@@ -311,9 +311,9 @@ void OpenVpnSettingWidget::writeConfig()
+         case Private::EnumConnectionType::Certificates:
+             contype = QLatin1String(NM_OPENVPN_CONTYPE_TLS);
+             kDebug() << "saving VPN TLS settings as urls:" << d->ui.x509CaFile->url().path() << d->ui.x509Cert->url().path() << d->ui.x509Key->url().path();
+-            data.insert( QLatin1String(NM_OPENVPN_KEY_CA), d->ui.x509CaFile->url().path().toUtf8());
+-            data.insert( QLatin1String(NM_OPENVPN_KEY_CERT), d->ui.x509Cert->url().path().toUtf8());
+-            data.insert( QLatin1String(NM_OPENVPN_KEY_KEY), d->ui.x509Key->url().path().toUtf8());
++            data.insert( QLatin1String(NM_OPENVPN_KEY_CA), d->ui.x509CaFile->url().path());
++            data.insert( QLatin1String(NM_OPENVPN_KEY_CERT), d->ui.x509Cert->url().path());
++            data.insert( QLatin1String(NM_OPENVPN_KEY_KEY), d->ui.x509Key->url().path());
+             // key password
+             if (!d->ui.x509KeyPassword->text().isEmpty()) {
+                 secretData.insert(QLatin1String(NM_OPENVPN_KEY_CERTPASS), d->ui.x509KeyPassword->text());
+@@ -322,7 +322,7 @@ void OpenVpnSettingWidget::writeConfig()
+             break;
+         case Private::EnumConnectionType::Psk:
+             contype = QLatin1String(NM_OPENVPN_CONTYPE_STATIC_KEY);
+-            data.insert( QLatin1String(NM_OPENVPN_KEY_STATIC_KEY), d->ui.pskSharedKey->url().path().toUtf8());
++            data.insert( QLatin1String(NM_OPENVPN_KEY_STATIC_KEY), d->ui.pskSharedKey->url().path());
+             switch (d->ui.cmbKeyDirection->currentIndex())
+             {
+                 case Private::EnumKeyDirection::None:
+@@ -350,7 +350,7 @@ void OpenVpnSettingWidget::writeConfig()
+             }
+             handleOnePasswordType(d->ui.passPasswordStorage, QLatin1String(NM_OPENVPN_KEY_PASSWORD"-flags"), data);
+             // ca
+-            data.insert(QLatin1String(NM_OPENVPN_KEY_CA), d->ui.passCaFile->url().path().toUtf8());
++            data.insert(QLatin1String(NM_OPENVPN_KEY_CA), d->ui.passCaFile->url().path());
+             break;
+         case Private::EnumConnectionType::CertsPassword:
+             contype = QLatin1String(NM_OPENVPN_CONTYPE_PASSWORD_TLS);
+@@ -359,11 +359,11 @@ void OpenVpnSettingWidget::writeConfig()
+                 data.insert(QLatin1String(NM_OPENVPN_KEY_USERNAME), d->ui.x509PassUsername->text());
+             }
+             // ca
+-            data.insert(QLatin1String(NM_OPENVPN_KEY_CA), d->ui.x509PassCaFile->url().path().toUtf8());
++            data.insert(QLatin1String(NM_OPENVPN_KEY_CA), d->ui.x509PassCaFile->url().path());
+             // cert
+-            data.insert(QLatin1String(NM_OPENVPN_KEY_CERT), d->ui.x509PassCert->url().path().toUtf8());
++            data.insert(QLatin1String(NM_OPENVPN_KEY_CERT), d->ui.x509PassCert->url().path());
+             // key file
+-            data.insert(QLatin1String(NM_OPENVPN_KEY_KEY), d->ui.x509PassKey->url().path().toUtf8());
++            data.insert(QLatin1String(NM_OPENVPN_KEY_KEY), d->ui.x509PassKey->url().path());
+             // key password
+             if (!d->ui.x509PassKeyPassword->text().isEmpty()) {
+                 secretData.insert(QLatin1String(NM_OPENVPN_KEY_CERTPASS), d->ui.x509PassKeyPassword->text());
+diff --git a/vpnplugins/strongswan/strongswanwidget.cpp b/vpnplugins/strongswan/strongswanwidget.cpp
+index ff69ef2..2473491 100644
+--- a/vpnplugins/strongswan/strongswanwidget.cpp
++++ b/vpnplugins/strongswan/strongswanwidget.cpp
+@@ -148,19 +148,19 @@ void StrongswanSettingWidget::writeConfig()
+     if (!d->ui.leGateway->text().isEmpty()) {
+         data.insert(NM_STRONGSWAN_GATEWAY, d->ui.leGateway->text());
+     }
+-    data.insert( NM_STRONGSWAN_CERTIFICATE, d->ui.leGatewayCertificate->url().path().toUtf8());
++    data.insert( NM_STRONGSWAN_CERTIFICATE, d->ui.leGatewayCertificate->url().path());
+ 
+     // Authentication
+     switch (d->ui.cmbMethod->currentIndex())
+     {
+         case StrongswanSettingWidgetPrivate::PrivateKey:
+             data.insert(NM_STRONGSWAN_METHOD, NM_STRONGSWAN_AUTH_KEY);
+-            data.insert(NM_STRONGSWAN_USERCERT, d->ui.leAuthPrivatekeyCertificate->url().path().toUtf8());
+-            data.insert(NM_STRONGSWAN_USERKEY, d->ui.leAuthPrivatekeyKey->url().path().toUtf8());
++            data.insert(NM_STRONGSWAN_USERCERT, d->ui.leAuthPrivatekeyCertificate->url().path());
++            data.insert(NM_STRONGSWAN_USERKEY, d->ui.leAuthPrivatekeyKey->url().path());
+             break;
+         case StrongswanSettingWidgetPrivate::SshAgent:
+             data.insert(NM_STRONGSWAN_METHOD, NM_STRONGSWAN_AUTH_AGENT);
+-            data.insert(NM_STRONGSWAN_USERCERT, d->ui.leAuthSshCertificate->url().path().toUtf8());
++            data.insert(NM_STRONGSWAN_USERCERT, d->ui.leAuthSshCertificate->url().path());
+             break;
+         case StrongswanSettingWidgetPrivate::Smartcard:
+             data.insert(NM_STRONGSWAN_METHOD, NM_STRONGSWAN_AUTH_SMARTCARD);
+diff --git a/vpnplugins/vpnc/vpncwidget.cpp b/vpnplugins/vpnc/vpncwidget.cpp
+index da7f7e2..0f5e419 100644
+--- a/vpnplugins/vpnc/vpncwidget.cpp
++++ b/vpnplugins/vpnc/vpncwidget.cpp
+@@ -272,7 +272,7 @@ void VpncSettingWidget::writeConfig()
+     // hybrid auth
+     if (d->ui.cbUseHybridAuth->isChecked()) {
+         data.insert(NM_VPNC_KEY_AUTHMODE, QLatin1String("hybrid"));
+-        data.insert(NM_VPNC_KEY_CA_FILE, d->ui.leCaCertPath->url().path().toUtf8());
++        data.insert(NM_VPNC_KEY_CA_FILE, d->ui.leCaCertPath->url().path());
+     }
+ 
+     // Optional settings
+-- 
+1.7.7.5
+
diff --git a/0037-Fix-wifi-security-type-icon-in-connection-list.patch b/0037-Fix-wifi-security-type-icon-in-connection-list.patch
new file mode 100644
index 0000000..e129931
--- /dev/null
+++ b/0037-Fix-wifi-security-type-icon-in-connection-list.patch
@@ -0,0 +1,25 @@
+From fe016eefe467868c2024f5efce5d2adf72c2fdd6 Mon Sep 17 00:00:00 2001
+From: "Lamarque V. Souza" <lamarque at kde.org>
+Date: Sun, 8 Jan 2012 15:27:22 -0200
+Subject: [PATCH 37/37] Fix wifi security type icon in connection list.
+
+---
+ applet/wirelessstatus.cpp |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/applet/wirelessstatus.cpp b/applet/wirelessstatus.cpp
+index 89490ff..6c95894 100644
+--- a/applet/wirelessstatus.cpp
++++ b/applet/wirelessstatus.cpp
+@@ -72,7 +72,7 @@ public:
+         if (activatable) {
+             isShared = activatable->isShared();
+         }
+-        Knm::WirelessSecurity::Type best = Knm::WirelessSecurity::best(wobj->interfaceCapabilities(), isShared, (wobj->operationMode() == Solid::Control::WirelessNetworkInterfaceNm09::Adhoc), wobj->apCapabilities(), wobj->wpaFlags(), wobj->rsnFlags());
++        Knm::WirelessSecurity::Type best = Knm::WirelessSecurity::best(wobj->interfaceCapabilities(), !isShared, (wobj->operationMode() == Solid::Control::WirelessNetworkInterfaceNm09::Adhoc), wobj->apCapabilities(), wobj->wpaFlags(), wobj->rsnFlags());
+         //security->setToolTip(Knm::WirelessSecurity::shortToolTip(best));
+         securityIcon = Knm::WirelessSecurity::iconName(best);
+         securityTooltip = Knm::WirelessSecurity::shortToolTip(best);
+-- 
+1.7.7.5
+
diff --git a/kde-plasma-networkmanagement.spec b/kde-plasma-networkmanagement.spec
index 2e4cfa8..57b915c 100644
--- a/kde-plasma-networkmanagement.spec
+++ b/kde-plasma-networkmanagement.spec
@@ -1,11 +1,11 @@
 
-%global beta 20111227git
+%global beta 20120108git
 %global tarballversion 0.8.98
 
 Name:           kde-plasma-networkmanagement
 Epoch:          1
 Version:        0.9
-Release:        0.68.%{beta}.nm09%{?dist}
+Release:        0.69.%{beta}.nm09%{?dist}
 Summary:        NetworkManager KDE 4 integration
 
 Group:          Applications/Internet
@@ -44,7 +44,16 @@ Patch122: 0022-Not-all-errors-are-fatal.patch
 Patch123: 0023-Configure-adhoc-WPA-wifi-like-nm-applet-does.patch
 Patch124: 0024-Do-not-set-password-flags-if-password-is-not-set.patch
 Patch126: 0026-Increase-connection-s-row-a-bit.patch
-
+Patch128: 0028-Do-not-crash-if-no-security-type-has-been-detected.patch
+Patch129: 0029-Correctly-detect-adhoc-WPA-access-points.patch
+Patch130: 0030-More-changes-to-correctly-identify-ad-hoc-WPA-access.patch
+Patch131: 0031-Add-some-checks-to-prevent-crashes.patch
+Patch132: 0032-Add-RemoveActivatable-isShared-to-fix-compilation-er.patch
+Patch133: 0033-Fix-translatable-string.patch
+Patch134: 0034-Well-I-thought-that-m_interfaces-would-never-be-empt.patch
+Patch135: 0035-Use-QFlags-as-described-in-Qt-s-documenation.-I-not-.patch
+Patch136: 0036-Use-QString-instead-of-QByteArray-to-represent-file-.patch
+Patch137: 0037-Fix-wifi-security-type-icon-in-connection-list.patch
 
 BuildRequires:  kdelibs4-devel >= 4.5.0
 BuildRequires:  kdebase-workspace-devel
@@ -149,6 +158,16 @@ Requires:       NetworkManager-openconnect
 %patch123 -p1 -b .0023
 %patch124 -p1 -b .0024
 %patch126 -p1 -b .0026
+%patch128 -p1 -b .0028
+%patch129 -p1 -b .0029
+%patch130 -p1 -b .0030
+%patch131 -p1 -b .0031
+%patch132 -p1 -b .0032
+%patch133 -p1 -b .0033
+%patch134 -p1 -b .0034
+%patch135 -p1 -b .0035
+%patch136 -p1 -b .0036
+%patch137 -p1 -b .0037
 
 # nuke monolithic knm bits
 rm -rfv monolithic po/*/knetworkmanager.po
@@ -266,6 +285,9 @@ gtk-update-icon-cache %{_kde4_iconsdir}/oxygen &> /dev/null || :
 
 
 %changelog
+* Sun Jan 08 2012 Rex Dieter <rdieter at fedoraproject.org> 1:0.9-0.69.20120108git.nm09
+- 20120108 snapshot 
+
 * Tue Dec 27 2011 Rex Dieter <rdieter at fedoraproject.org> 1:0.9-0.68.20111227git.nm09
 - 20111227 snapshot
 


More information about the scm-commits mailing list