File solid.diff of Package kdebase4-workspace

diff -urN workspace.old//libs/solid/control/backends/fakenet/fakenetworkmanager.cpp workspace/libs/solid/control/backends/fakenet/fakenetworkmanager.cpp
--- workspace.old//libs/solid/control/backends/fakenet/fakenetworkmanager.cpp	2008-05-20 15:19:00.000000000 +0200
+++ libs/solid/control/backends/fakenet/fakenetworkmanager.cpp	2008-10-20 22:58:08.000000000 +0200
@@ -34,7 +34,6 @@
     mUserNetworkingEnabled = true;
     mUserWirelessEnabled = true;
     mRfKillEnabled = false;
-
     mXmlFile = KStandardDirs::locate("data", "solidfakebackend/fakenetworking.xml");
 
 //     QDBusConnection::sessionBus().registerObject("/org/kde/solid/fake", this, QDBusConnection::ExportNonScriptableSlots);
@@ -268,14 +267,19 @@
 
 void FakeNetworkManager::activateConnection(const QString & interfaceUni, const QString & connectionUni, const QVariantMap & connectionParameters)
 {
-
+    mActiveConnections.append(connectionUni);
+    QTimer::singleShot(0, this, SIGNAL(activeConnectionsChanged()));
 }
 
 void FakeNetworkManager::deactivateConnection(const QString & activeConnection)
 {
-
+    mActiveConnections.removeAll(activeConnection);
 }
 
+QStringList FakeNetworkManager::activeConnections() const
+{
+    return mActiveConnections;
+}
 
 #include "fakenetworkmanager.moc"
 
diff -urN workspace.old//libs/solid/control/backends/fakenet/fakenetworkmanager.h workspace/libs/solid/control/backends/fakenet/fakenetworkmanager.h
--- workspace.old//libs/solid/control/backends/fakenet/fakenetworkmanager.h	2008-05-20 15:19:00.000000000 +0200
+++ libs/solid/control/backends/fakenet/fakenetworkmanager.h	2008-10-20 22:58:08.000000000 +0200
@@ -57,6 +57,7 @@
         void activateConnection(const QString & interfaceUni, const QString & connectionUni, const QVariantMap & connectionParameters);
 
         void deactivateConnection(const QString & activeConnection);
+        QStringList activeConnections() const;
 
     public Q_SLOTS:
         void setWirelessEnabled(bool);
@@ -71,6 +72,7 @@
         bool mUserWirelessEnabled;
         bool mRfKillEnabled;
         QMap<QString, FakeNetworkInterface *> mNetworkInterfaces;
+        QStringList mActiveConnections;
         QString mXmlFile;
 };
 
diff -urN workspace.old//libs/solid/control/ifaces/networkgsminterface.h workspace/libs/solid/control/ifaces/networkgsminterface.h
--- workspace.old//libs/solid/control/ifaces/networkgsminterface.h	2008-06-10 01:19:32.000000000 +0200
+++ libs/solid/control/ifaces/networkgsminterface.h	2008-10-20 22:56:54.000000000 +0200
@@ -45,10 +45,6 @@
          * Destroys a GsmNetworkInterface object
          */
         virtual ~GsmNetworkInterface();
-        /**
-         * List of wireless networks currently visible to the hardware
-         */
-
     protected:
     //Q_SIGNALS:
     };
diff -urN workspace.old//libs/solid/control/ifaces/networkmanager.h workspace/libs/solid/control/ifaces/networkmanager.h
--- workspace.old//libs/solid/control/ifaces/networkmanager.h	2008-06-10 01:13:28.000000000 +0200
+++ libs/solid/control/ifaces/networkmanager.h	2008-10-20 22:58:07.000000000 +0200
@@ -21,6 +21,7 @@
 #define SOLID_IFACES_NETWORKMANAGER
 
 #include <QtCore/QObject>
+#include <QStringList>
 #include <solid/networking.h>
 #include "../solid_control_export.h"
 #include "../networkmanager.h"
@@ -102,6 +103,11 @@
 
         virtual void deactivateConnection(const QString & activeConnection) = 0;
 
+        /**
+         * Access the list of active connection UNIs
+         */
+        virtual QStringList activeConnections() const = 0;
+
     public Q_SLOTS:
         /**
          * Activates or deactivates networking (as a whole).
@@ -146,6 +152,11 @@
          * This signal is emitted when the status of the wireless hardware changed
          */
         void wirelessHardwareEnabledChanged(bool enabled);
+
+        /**
+         * This signal is emitted when the set of active connections changes
+         */
+        void activeConnectionsChanged();
     };
 
 } // Ifaces
diff -urN workspace.old//libs/solid/control/ifaces/networkserialinterface.h workspace/libs/solid/control/ifaces/networkserialinterface.h
--- workspace.old//libs/solid/control/ifaces/networkserialinterface.h	2008-06-10 01:19:32.000000000 +0200
+++ libs/solid/control/ifaces/networkserialinterface.h	2008-10-20 22:56:54.000000000 +0200
@@ -46,6 +46,7 @@
 
     protected:
     //Q_SIGNALS:
+        void pppStats(uint in, uint out);
     };
 } //Ifaces
 } //Control
diff -urN workspace.old//libs/solid/control/networkcdmainterface.cpp workspace/libs/solid/control/networkcdmainterface.cpp
--- workspace.old//libs/solid/control/networkcdmainterface.cpp	2008-06-10 01:19:32.000000000 +0200
+++ libs/solid/control/networkcdmainterface.cpp	2008-10-20 22:56:54.000000000 +0200
@@ -1,5 +1,4 @@
-/*
-Copyright 2008 Will Stephenson <wstephenson@kde.org>
+/* Copyright 2008 Will Stephenson <wstephenson@kde.org>
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
@@ -64,18 +63,11 @@
 
 void Solid::Control::CdmaNetworkInterface::makeConnections(QObject * source)
 {
-    connect(source, SIGNAL(accessPointAppeared(const QString &)),
-            this, SLOT(_k_accessPointAdded(const QString &)));
 }
 
 void Solid::Control::CdmaNetworkInterfacePrivate::setBackendObject(QObject *object)
 {
     SerialNetworkInterfacePrivate::setBackendObject(object);
-
-    if (object) {
-        QObject::connect(object, SIGNAL(bitRateChanged(int)),
-                         parent(), SIGNAL(bitRateChanged(int)));
-    }
 }
 
 void Solid::Control::CdmaNetworkInterface::_k_destroyed(QObject *object)
diff -urN workspace.old//libs/solid/control/networkgsminterface.cpp workspace/libs/solid/control/networkgsminterface.cpp
--- workspace.old//libs/solid/control/networkgsminterface.cpp	2008-06-10 01:19:32.000000000 +0200
+++ libs/solid/control/networkgsminterface.cpp	2008-10-20 22:56:54.000000000 +0200
@@ -64,18 +64,11 @@
 
 void Solid::Control::GsmNetworkInterface::makeConnections(QObject * source)
 {
-    connect(source, SIGNAL(accessPointAppeared(const QString &)),
-            this, SLOT(_k_accessPointAdded(const QString &)));
 }
 
 void Solid::Control::GsmNetworkInterfacePrivate::setBackendObject(QObject *object)
 {
     SerialNetworkInterfacePrivate::setBackendObject(object);
-
-    if (object) {
-        QObject::connect(object, SIGNAL(bitRateChanged(int)),
-                         parent(), SIGNAL(bitRateChanged(int)));
-    }
 }
 
 void Solid::Control::GsmNetworkInterface::_k_destroyed(QObject *object)
diff -urN workspace.old//libs/solid/control/networkipv4config.cpp workspace/libs/solid/control/networkipv4config.cpp
--- workspace.old//libs/solid/control/networkipv4config.cpp	2008-06-16 20:07:14.000000000 +0200
+++ libs/solid/control/networkipv4config.cpp	2008-10-20 22:56:09.000000000 +0200
@@ -29,22 +29,17 @@
 {
 public:
     Private(const QList<IPv4Address> &theAddresses,
-        quint32 theBroadcast, const QString &theHostname, const QList<quint32> &theNameservers,
-        const QStringList &theDomains, const QString &theNisDomain, const QList<quint32> &theNisServers)
-        : addresses(theAddresses), broadcast(theBroadcast),
-    hostname(theHostname), nameservers(theNameservers), domains(theDomains),
-    nisDomain(theNisDomain), nisServers(theNisServers)
+        const QList<quint32> &theNameservers,
+        const QStringList &theDomains, const QList<IPv4Route> &theRoutes)
+        : addresses(theAddresses), nameservers(theNameservers),
+        domains(theDomains), routes(theRoutes)
     {}
     Private()
-        : broadcast(0)
     {}
     QList<IPv4Address> addresses;
-    quint32 broadcast;
-    QString hostname;
     QList<quint32> nameservers;
     QStringList domains;
-    QString nisDomain;
-    QList<quint32> nisServers;
+    QList<IPv4Route> routes;
 };
 
 
@@ -61,6 +56,21 @@
     quint32 netMask;
     quint32 gateway;
 };
+
+class IPv4Route::Private
+{
+public:
+    Private(quint32 theRoute, quint32 thePrefix, quint32 theNextHop, quint32 theMetric)
+        : route(theRoute), prefix(thePrefix), nextHop(theNextHop), metric(theMetric)
+    {}
+    Private()
+        : route(0), prefix(0), nextHop(0), metric(0)
+    {}
+    quint32 route;
+    quint32 prefix;
+    quint32 nextHop;
+    quint32 metric;
+};
 }
 }
 
@@ -113,12 +123,66 @@
     return d->address != 0;
 }
 
+Solid::Control::IPv4Route::IPv4Route(quint32 route, quint32 prefix, quint32 nextHop, quint32 metric)
+: d(new Private(route, prefix, nextHop, metric))
+{
+}
+
+Solid::Control::IPv4Route::IPv4Route()
+: d(new Private())
+{
+}
+
+Solid::Control::IPv4Route::~IPv4Route()
+{
+    delete d;
+}
+
+Solid::Control::IPv4Route::IPv4Route(const IPv4Route &other)
+: d(new Private(*other.d))
+{
+}
+
+quint32 Solid::Control::IPv4Route::route() const
+{
+    return d->route;
+}
+
+quint32 Solid::Control::IPv4Route::prefix() const
+{
+    return d->prefix;
+}
+
+quint32 Solid::Control::IPv4Route::nextHop() const
+{
+    return d->nextHop;
+}
+
+quint32 Solid::Control::IPv4Route::metric() const
+{
+    return d->metric;
+}
+
+Solid::Control::IPv4Route &Solid::Control::IPv4Route::operator=(const Solid::Control::IPv4Route &other)
+{
+    if (this == &other)
+        return *this;
+
+    *d = *other.d;
+    return *this;
+}
+
+bool Solid::Control::IPv4Route::isValid() const
+{
+    return d->route != 0;
+}
+
 
 Solid::Control::IPv4Config::IPv4Config(const QList<IPv4Address> &addresses,
-        quint32 broadcast, const QString &hostname, const QList<quint32> &nameservers,
-        const QStringList &domains, const QString &nisDomain, const QList<quint32> &nisServers)
-: d(new Private(addresses, broadcast, hostname, nameservers, domains, 
-            nisDomain, nisServers))
+        const QList<quint32> &nameservers,
+        const QStringList &domains,
+        const QList<IPv4Route> &routes)
+: d(new Private(addresses, nameservers, domains, routes))
 {
 }
 
@@ -142,16 +206,6 @@
     return d->addresses;
 }
 
-quint32 Solid::Control::IPv4Config::broadcast() const
-{
-    return d->broadcast;
-}
-
-QString Solid::Control::IPv4Config::hostname() const
-{
-    return d->hostname;
-}
-
 QList<quint32> Solid::Control::IPv4Config::nameservers() const
 {
     return d->nameservers;
@@ -162,16 +216,6 @@
     return d->domains;
 }
 
-QString Solid::Control::IPv4Config::nisDomain() const
-{
-    return d->nisDomain;
-}
-
-QList<quint32> Solid::Control::IPv4Config::nisServers() const
-{
-    return d->nisServers;
-}
-
 Solid::Control::IPv4Config &Solid::Control::IPv4Config::operator=(const Solid::Control::IPv4Config& other)
 {
     if (this == &other)
diff -urN workspace.old//libs/solid/control/networkipv4config.h workspace/libs/solid/control/networkipv4config.h
--- workspace.old//libs/solid/control/networkipv4config.h	2008-06-16 20:07:14.000000000 +0200
+++ libs/solid/control/networkipv4config.h	2008-10-20 22:56:09.000000000 +0200
@@ -48,12 +48,31 @@
     Private * d;
 };
 
+class SOLIDCONTROL_EXPORT IPv4Route
+{
+public:
+    IPv4Route(quint32 route, quint32 prefix, quint32 nextHop, quint32 metric);
+    IPv4Route();
+    ~IPv4Route();
+    IPv4Route(const IPv4Route&);
+    IPv4Route &operator=(const IPv4Route&);
+    bool isValid() const;
+    quint32 route() const;
+    quint32 prefix() const;
+    quint32 nextHop() const;
+    quint32 metric() const;
+private:
+    class Private;
+    Private * d;
+};
+
 class SOLIDCONTROL_EXPORT IPv4Config
 {
 public:
     IPv4Config(const QList<IPv4Address> &addresses,
-        quint32 broadcast, const QString &hostname, const QList<quint32> &nameservers,
-        const QStringList &domains, const QString &nisDomain, const QList<quint32> &nisServers);
+        const QList<quint32> &nameservers,
+        const QStringList &domains,
+        const QList<IPv4Route> &routes);
     IPv4Config();
     ~IPv4Config();
     IPv4Config(const IPv4Config&);
@@ -61,13 +80,9 @@
      * List of IP addresses related to this configuration. 
      */
     QList<IPv4Address> addresses() const;
-    /** May go away, need to check if the broadcast address is *ALWAYS* .255 */
-    quint32 broadcast() const;
-    QString hostname() const;
     QList<quint32> nameservers() const;
     QStringList domains() const;
-    QString nisDomain() const;
-    QList<quint32> nisServers() const;
+    QList<IPv4Route> routes() const;
     IPv4Config &operator=(const IPv4Config&);
     bool isValid() const;
 private:
diff -urN workspace.old//libs/solid/control/networkmanager.cpp workspace/libs/solid/control/networkmanager.cpp
--- workspace.old//libs/solid/control/networkmanager.cpp	2008-06-10 01:13:28.000000000 +0200
+++ libs/solid/control/networkmanager.cpp	2008-10-20 22:58:08.000000000 +0200
@@ -22,6 +22,8 @@
 #include "ifaces/networkinterface.h"
 #include "ifaces/wirednetworkinterface.h"
 #include "ifaces/wirelessnetworkinterface.h"
+#include "ifaces/networkgsminterface.h"
+#include "ifaces/networkcdmainterface.h"
 
 #include "soliddefs_p.h"
 #include "networkmanager_p.h"
@@ -33,6 +35,8 @@
 
 #include <kglobal.h>
 
+#include <kdebug.h>
+
 K_GLOBAL_STATIC(Solid::Control::NetworkManagerPrivate, globalNetworkManager)
 
 Solid::Control::NetworkManagerPrivate::NetworkManagerPrivate() : m_invalidDevice(0)
@@ -52,6 +56,8 @@
                 this, SIGNAL(wirelessEnabledChanged(bool)));
         connect(managerBackend(), SIGNAL(wirelessHardwareEnabledChanged(bool)),
                 this, SIGNAL(wirelessHardwareEnabledChanged(bool)));
+        connect(managerBackend(), SIGNAL(activeConnectionsChanged()),
+                this, SIGNAL(activeConnectionsChanged()));
     }
 }
 
@@ -224,6 +230,12 @@
                 device = new WirelessNetworkInterface(iface);
             } else if (qobject_cast<Ifaces::WiredNetworkInterface *>(iface) != 0) {
                 device = new WiredNetworkInterface(iface);
+            } else if (qobject_cast<Ifaces::GsmNetworkInterface *>(iface) != 0) {
+                device = new GsmNetworkInterface(iface);
+            } else if (qobject_cast<Ifaces::CdmaNetworkInterface *>(iface) != 0) {
+                device = new CdmaNetworkInterface(iface);
+            } else {
+                kDebug() << "Unhandled network interface: " << uni;
             }
             if (device != 0) {
                 QPair<NetworkInterface *, QObject *> pair(device, iface);
@@ -255,5 +267,10 @@
     SOLID_CALL(Ifaces::NetworkManager *, globalNetworkManager->managerBackend(), deactivateConnection(activeConnectionUni));
 }
 
+QStringList Solid::Control::NetworkManager::activeConnections()
+{
+    return_SOLID_CALL(Ifaces::NetworkManager *, globalNetworkManager->managerBackend(), QStringList(), activeConnections());
+}
+
 #include "networkmanager_p.moc"
 #include "networkmanager.moc"
diff -urN workspace.old//libs/solid/control/networkmanager.h workspace/libs/solid/control/networkmanager.h
--- workspace.old//libs/solid/control/networkmanager.h	2008-06-10 01:13:28.000000000 +0200
+++ libs/solid/control/networkmanager.h	2008-10-20 22:58:07.000000000 +0200
@@ -126,6 +126,11 @@
          */
         SOLIDCONTROL_EXPORT void deactivateConnection(const QString & activeConnectionUni);
 
+        /**
+         * Access the list of any active connections
+         */
+        QStringList SOLIDCONTROL_EXPORT activeConnections();
+
         class SOLIDCONTROL_EXPORT Notifier : public QObject
         {
             Q_OBJECT
@@ -155,6 +160,10 @@
              * This signal is emitted when the status of the wireless hardware changed
              */
             void wirelessHardwareEnabledChanged(bool enabled);
+            /**
+             * This signal is emitted when the set of active connections changes
+             */
+            void activeConnectionsChanged();
         };
 
         SOLIDCONTROL_EXPORT Notifier *notifier();
diff -urN workspace.old//libs/solid/control/networkserialinterface.cpp workspace/libs/solid/control/networkserialinterface.cpp
--- workspace.old//libs/solid/control/networkserialinterface.cpp	2008-06-10 01:19:32.000000000 +0200
+++ libs/solid/control/networkserialinterface.cpp	2008-10-20 22:56:54.000000000 +0200
@@ -64,18 +64,13 @@
 
 void Solid::Control::SerialNetworkInterface::makeConnections(QObject * source)
 {
-    connect(source, SIGNAL(accessPointAppeared(const QString &)),
-            this, SLOT(_k_accessPointAdded(const QString &)));
+    connect(source, SIGNAL(pppStats(uint,uint)),
+            this, SIGNAL(pppStats(uint,uint)));
 }
 
 void Solid::Control::SerialNetworkInterfacePrivate::setBackendObject(QObject *object)
 {
     NetworkInterfacePrivate::setBackendObject(object);
-
-    if (object) {
-        QObject::connect(object, SIGNAL(bitRateChanged(int)),
-                         parent(), SIGNAL(bitRateChanged(int)));
-    }
 }
 
 void Solid::Control::SerialNetworkInterface::_k_destroyed(QObject *object)
diff -urN workspace.old//libs/solid/control/networkserialinterface.h workspace/libs/solid/control/networkserialinterface.h
--- workspace.old//libs/solid/control/networkserialinterface.h	2008-06-10 01:19:32.000000000 +0200
+++ libs/solid/control/networkserialinterface.h	2008-10-20 22:56:54.000000000 +0200
@@ -64,6 +64,7 @@
         virtual NetworkInterface::Type type() const;
 
     Q_SIGNALS:
+        void pppStats(uint in, uint out);
     protected:
         /**
          * @internal
diff -urN workspace.old//libs/solid/control/wirelessnetworkinterface.cpp workspace/libs/solid/control/wirelessnetworkinterface.cpp
--- workspace.old//libs/solid/control/wirelessnetworkinterface.cpp	2008-06-17 12:39:41.000000000 +0200
+++ libs/solid/control/wirelessnetworkinterface.cpp	2008-10-27 15:56:59.000000000 +0100
@@ -146,11 +146,10 @@
     if (mapIt != d->apMap.end())
     {
         // Oops, I'm not sure it should happen...
-        // But well in this case we'd better kill the old device we got, it's probably outdated
-        AccessPointPair pair = mapIt.value();
-
-        delete pair.first;
-        delete pair.second;
+        // But for an unknown reason it does
+        // We were deleting the existing items here, which caused problems later
+        // when the client calls find AccessPoint and gets a frontend object with a
+        // null private object - dangling pointer
     } else {
         mapIt = d->apMap.insert(uni, AccessPointPair(0, 0));
     }
diff -urN workspace.old//solid/networkmanager-0.7/CMakeLists.txt workspace/solid/networkmanager-0.7/CMakeLists.txt
--- workspace.old//solid/networkmanager-0.7/CMakeLists.txt	2008-05-29 10:46:38.000000000 +0200
+++ solid/networkmanager-0.7/CMakeLists.txt	2008-10-20 23:04:31.000000000 +0200
@@ -6,7 +6,7 @@
    ${CMAKE_CURRENT_BUILD_DIR}
 )
 
-#add_subdirectory(dbus)
+add_subdirectory(dbus)
 
 #add_subdirectory(tests)
 
@@ -21,17 +21,24 @@
    networkinterface.cpp
    wirednetworkinterface.cpp
    wirelessnetworkinterface.cpp
+   networkserialinterface.cpp
+   networkcdmainterface.cpp
+   networkgsminterface.cpp
    nmpropertyhelper.cpp
 )
 
-set( DBUS_INTERFACES_FILES 
+set( DBUS_INTERFACES_FILES
    dbus/activeconnection.cpp
    dbus/nm-manager-clientinterface.cpp
    dbus/nm-deviceinterface.cpp
-   dbus/nm-access-pointinterface.cpp 
-   dbus/nm-device-802-3-ethernetinterface.cpp
-   dbus/nm-device-802-11-wirelessinterface.cpp
+   dbus/nm-access-pointinterface.cpp
+   dbus/nm-device-ethernetinterface.cpp
+   dbus/nm-device-wifiinterface.cpp
+   dbus/nm-device-serialinterface.cpp
+   dbus/nm-device-cdmainterface.cpp
+   dbus/nm-device-gsminterface.cpp
    dbus/nm-ip4-configinterface.cpp
+   dbus/nm-dhcp4-configinterface.cpp
 )
 
 
diff -urN workspace.old//solid/networkmanager-0.7/dbus/CMakeLists.txt workspace/solid/networkmanager-0.7/dbus/CMakeLists.txt
--- workspace.old//solid/networkmanager-0.7/dbus/CMakeLists.txt	2008-05-12 22:30:47.000000000 +0200
+++ solid/networkmanager-0.7/dbus/CMakeLists.txt	2008-10-20 23:04:31.000000000 +0200
@@ -1,13 +1,32 @@
+# Steps to generate the dbus interface files
+# 1) Place the NetworkManager introspection dbus xml in introspection/
+# 2) Update the list of xml files below that we want to generate interfaces for
+# 3) Enable dbus subdirectory in ../CMakeLists.txt
+#    Make, in order to generate the interface sources
+# 3.1) Add annotations to the xml so qdbusxml2cpp knows what type or typedef to use
+#      Add typedefs as needed to generic-types.h
+# 4)   Add the list of generated files needed for the plugin to FILES_TO_BUILD
+# 6) Copy the working generated interface sources into the source dir
+# 5) Edit the sources as required to get them to build
+# 5.1) Fix the inclusion guards as the compiler ignores anything after a '-' so the compiler thinks 
+#      headers have already been included
+# Run do-hand-edits to update the diff of the interfaces vs what is generated; this speeds up regenerating them since you just have to apply the diff to make them compile
+
+
 set( INTERFACE_INTROSPECTION_XML_FILES
-   introspection/nm-manager-client.xml
-   introspection/nm-device.xml
-   introspection/nm-access-point.xml
-   introspection/nm-device-802-11-wireless.xml
-   introspection/nm-device-802-3-ethernet.xml
-#   introspection/nm-exported-connection.xml
-   introspection/nm-ip4-config.xml
+   #   introspection/nm-manager-client.xml
+   #introspection/nm-device.xml
+   #introspection/nm-access-point.xml
+   #introspection/nm-device-wifi.xml
+   #introspection/nm-device-ethernet.xml
+   #   introspection/nm-exported-connection.xml
+#introspection/nm-ip4-config.xml
+#   introspection/nm-dhcp4-config.xml
 #   introspection/nm-vpn-connection.xml
 #   introspection/nm-vpn-plugin.xml
+   introspection/nm-device-gsm.xml
+   introspection/nm-device-cdma.xml
+   introspection/nm-device-serial.xml
    )
 
 set( ADAPTER_INTROSPECTION_XML_FILES
@@ -20,7 +39,10 @@
 )
 
 
-set( FILES_TO_BUILD activeconnection.cpp
+set( FILES_TO_BUILD
+   )
+set ( UNUSED_FILES
+   activeconnection.cpp
    nm-manager-clientinterface.cpp
    nm-deviceinterface.cpp
    nm-access-pointinterface.cpp 
diff -urN workspace.old//solid/networkmanager-0.7/dbus/hand-edits.diff workspace/solid/networkmanager-0.7/dbus/hand-edits.diff
--- workspace.old//solid/networkmanager-0.7/dbus/hand-edits.diff	2008-06-07 19:27:10.000000000 +0200
+++ solid/networkmanager-0.7/dbus/hand-edits.diff	2008-10-20 23:02:05.000000000 +0200
@@ -1,88 +1,109 @@
---- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-access-pointinterface.h	2008-06-07 15:29:30.000000000 +0200
-+++ nm-access-pointinterface.h	2008-05-13 11:01:51.000000000 +0200
+--- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-access-pointinterface.h	2008-09-30 07:35:52.000000000 +0200
++++ nm-access-pointinterface.h	2008-09-30 07:33:55.000000000 +0200
 @@ -8,8 +8,8 @@
   * Do not edit! All changes made to it will be lost.
   */
  
--#ifndef NM-ACCESS-POINTINTERFACE_H_1212845370
--#define NM-ACCESS-POINTINTERFACE_H_1212845370
-+#ifndef NMACCESSPOINTINTERFACE_H_1210621531
-+#define NMACCESSPOINTINTERFACE_H_1210621531
+-#ifndef NM-ACCESS-POINTINTERFACE_H_1222752952
+-#define NM-ACCESS-POINTINTERFACE_H_1222752952
++#ifndef NM_ACCESS_POINTINTERFACE_H_1222729762
++#define NM_ACCESS_POINTINTERFACE_H_1222729762
  
  #include <QtCore/QObject>
  #include <QtCore/QByteArray>
---- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.h	2008-06-07 15:29:31.000000000 +0200
-+++ nm-device-802-11-wirelessinterface.h	2008-05-13 11:01:51.000000000 +0200
+--- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.h	2008-09-30 07:35:53.000000000 +0200
++++ nm-device-ethernetinterface.h	2008-09-30 07:34:03.000000000 +0200
 @@ -8,8 +8,8 @@
   * Do not edit! All changes made to it will be lost.
   */
  
--#ifndef NM-DEVICE-802-11-WIRELESSINTERFACE_H_1212845371
--#define NM-DEVICE-802-11-WIRELESSINTERFACE_H_1212845371
-+#ifndef NMDEVICE80211WIRELESSINTERFACE_H_1210621531
-+#define NMDEVICE80211WIRELESSINTERFACE_H_1210621531
+-#ifndef NM-DEVICE-ETHERNETINTERFACE_H_1222752953
+-#define NM-DEVICE-ETHERNETINTERFACE_H_1222752953
++#ifndef NM_DEVICE_ETHERNETINTERFACE_H_1222729762
++#define NM_DEVICE_ETHERNETINTERFACE_H_1222729762
  
  #include <QtCore/QObject>
  #include <QtCore/QByteArray>
---- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.h	2008-06-07 15:29:30.000000000 +0200
-+++ nm-device-802-3-ethernetinterface.h	2008-05-13 11:01:51.000000000 +0200
+--- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-deviceinterface.h	2008-09-30 07:35:52.000000000 +0200
++++ nm-deviceinterface.h	2008-09-30 07:32:03.000000000 +0200
 @@ -8,8 +8,8 @@
   * Do not edit! All changes made to it will be lost.
   */
  
--#ifndef NM-DEVICE-802-3-ETHERNETINTERFACE_H_1212845370
--#define NM-DEVICE-802-3-ETHERNETINTERFACE_H_1212845370
-+#ifndef NMDEVICE8023ETHERNETINTERFACE_H_1210621532
-+#define NMDEVICE8023ETHERNETINTERFACE_H_1210621532
+-#ifndef NM-DEVICEINTERFACE_H_1222752952
+-#define NM-DEVICEINTERFACE_H_1222752952
++#ifndef NM_DEVICEINTERFACE_H_1222729762
++#define NM_DEVICEINTERFACE_H_1222729762
  
  #include <QtCore/QObject>
  #include <QtCore/QByteArray>
---- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-deviceinterface.h	2008-06-07 15:29:30.000000000 +0200
-+++ nm-deviceinterface.h	2008-05-13 11:01:51.000000000 +0200
+@@ -77,7 +77,7 @@
+ 
+ public Q_SLOTS: // METHODS
+ Q_SIGNALS: // SIGNALS
+-    void StateChanged(uint new-state, uint old-state, uint reason);
++    void StateChanged(uint new_state, uint old_state, uint reason);
+ };
+ 
+ #endif
+--- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-device-wifiinterface.h	2008-09-30 07:35:53.000000000 +0200
++++ nm-device-wifiinterface.h	2008-09-30 07:34:14.000000000 +0200
+@@ -8,8 +8,8 @@
+  * Do not edit! All changes made to it will be lost.
+  */
+ 
+-#ifndef NM-DEVICE-WIFIINTERFACE_H_1222752953
+-#define NM-DEVICE-WIFIINTERFACE_H_1222752953
++#ifndef NM_DEVICE_WIFIINTERFACE_H_1222729762
++#define NM_DEVICE_WIFIINTERFACE_H_1222729762
+ 
+ #include <QtCore/QObject>
+ #include <QtCore/QByteArray>
+--- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.h	2008-09-30 07:35:51.000000000 +0200
++++ nm-dhcp4-configinterface.h	2008-09-30 07:34:26.000000000 +0200
 @@ -8,8 +8,8 @@
   * Do not edit! All changes made to it will be lost.
   */
  
--#ifndef NM-DEVICEINTERFACE_H_1212845370
--#define NM-DEVICEINTERFACE_H_1212845370
-+#ifndef NMDEVICEINTERFACE_H_1210621531
-+#define NMDEVICEINTERFACE_H_1210621531
+-#ifndef NM-DHCP4-CONFIGINTERFACE_H_1222752951
+-#define NM-DHCP4-CONFIGINTERFACE_H_1222752951
++#ifndef NM_DHCP4_CONFIGINTERFACE_H_1222729762
++#define NM_DHCP4_CONFIGINTERFACE_H_1222729762
  
  #include <QtCore/QObject>
  #include <QtCore/QByteArray>
---- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-ip4-configinterface.h	2008-06-07 15:29:28.000000000 +0200
-+++ nm-ip4-configinterface.h	2008-05-13 11:01:51.000000000 +0200
+--- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-ip4-configinterface.h	2008-09-30 07:35:52.000000000 +0200
++++ nm-ip4-configinterface.h	2008-09-30 07:28:43.000000000 +0200
 @@ -8,8 +8,8 @@
   * Do not edit! All changes made to it will be lost.
   */
  
--#ifndef NM-IP4-CONFIGINTERFACE_H_1212845368
--#define NM-IP4-CONFIGINTERFACE_H_1212845368
-+#ifndef NMIP4CONFIGINTERFACE_H_1210621530
-+#define NMIP4CONFIGINTERFACE_H_1210621530
+-#ifndef NM-IP4-CONFIGINTERFACE_H_1222752952
+-#define NM-IP4-CONFIGINTERFACE_H_1222752952
++#ifndef NM_IP4_CONFIGINTERFACE_H_1222729762
++#define NM_IP4_CONFIGINTERFACE_H_1222729762
  
  #include <QtCore/QObject>
  #include <QtCore/QByteArray>
-@@ -20,6 +20,9 @@
+@@ -20,6 +20,8 @@
  #include <QtCore/QVariant>
  #include <QtDBus/QtDBus>
  
-+//HAND-EDIT
 +#include "generic-types.h"
 +
  /*
   * Proxy class for interface org.freedesktop.NetworkManager.IP4Config
   */
---- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h	2008-06-07 15:29:29.000000000 +0200
-+++ nm-manager-clientinterface.h	2008-05-13 11:01:51.000000000 +0200
+--- /space/kde/builds/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h	2008-09-30 07:35:52.000000000 +0200
++++ nm-manager-clientinterface.h	2008-09-30 07:34:43.000000000 +0200
 @@ -8,8 +8,8 @@
   * Do not edit! All changes made to it will be lost.
   */
  
--#ifndef NM-MANAGER-CLIENTINTERFACE_H_1212845369
--#define NM-MANAGER-CLIENTINTERFACE_H_1212845369
-+#ifndef NMMANAGERCLIENTINTERFACE_H_1210621531
-+#define NMMANAGERCLIENTINTERFACE_H_1210621531
+-#ifndef NM-MANAGER-CLIENTINTERFACE_H_1222752952
+-#define NM-MANAGER-CLIENTINTERFACE_H_1222752952
++#ifndef NM_MANAGER_CLIENTINTERFACE_H_1222729762
++#define NM_MANAGER_CLIENTINTERFACE_H_1222729762
  
  #include <QtCore/QObject>
  #include <QtCore/QByteArray>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/all.xml workspace/solid/networkmanager-0.7/dbus/introspection/all.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/all.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/all.xml	2008-10-20 23:02:06.000000000 +0200
@@ -28,10 +28,11 @@
 <xi:include href="nm-manager.xml"/>
 <xi:include href="nm-access-point.xml"/>
 <xi:include href="nm-device.xml"/>
-<xi:include href="nm-device-802-3-ethernet.xml"/>
-<xi:include href="nm-device-802-11-wireless.xml"/>
-<xi:include href="nm-cdma-device.xml"/>
-<xi:include href="nm-gsm-device.xml"/>
+<xi:include href="nm-device-ethernet.xml"/>
+<xi:include href="nm-device-wifi.xml"/>
+<xi:include href="nm-device-cdma.xml"/>
+<xi:include href="nm-device-gsm.xml"/>
+<xi:include href="nm-device-serial.xml"/>
 <xi:include href="nm-ip4-config.xml"/>
 <xi:include href="nm-settings.xml"/>
 <xi:include href="nm-exported-connection.xml"/>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-access-point.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-access-point.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-access-point.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-access-point.xml	2008-10-20 23:02:06.000000000 +0200
@@ -33,7 +33,7 @@
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
+        <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
             <tp:docstring>
                 A dictionary mapping property names to variant boxed values
             </tp:docstring>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-active-connection.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-active-connection.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-active-connection.xml	2008-06-07 19:27:10.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-active-connection.xml	2008-10-20 23:02:05.000000000 +0200
@@ -11,12 +11,6 @@
     <property name="SpecificObject" type="o" access="read">
       <tp:docstring>A specific object associated with the active connection.</tp:docstring>
     </property>
-    <property name="SharedServiceName" type="s" access="read">
-      <tp:docstring>The D-Bus service name that provides a connection with which this active connection is shared.</tp:docstring>
-    </property>
-    <property name="SharedConnection" type="o" access="read">
-      <tp:docstring>The path of a connection provided by the D-Bus service SharedServiceName which which this connection is shared.</tp:docstring>
-    </property>
     <property name="Devices" type="ao" access="read">
       <tp:docstring>Array of object paths representing devices which are part of this active connection.</tp:docstring>
     </property>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-802-11-wireless.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-802-11-wireless.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-802-11-wireless.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-device-802-11-wireless.xml	1970-01-01 01:00:00.000000000 +0100
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
-  <interface name="org.freedesktop.NetworkManager.Device.Wireless">
-    <method name="GetAccessPoints">
-      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_device_get_access_points"/>
-      <arg name="access_points" type="ao" direction="out">
-        <tp:docstring>
-          List of access point object paths
-        </tp:docstring>
-      </arg>
-      <tp:docstring>
-        Get the list of access points visible to this device.
-      </tp:docstring>
-    </method>
-
-    <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
-        The hardware address of the device.
-      </tp:docstring>
-    </property>
-    <property name="Mode" type="u" access="read" tp:type="NM_802_11_MODE">
-      <tp:docstring>
-        The operating mode of the wireless device.
-      </tp:docstring>
-    </property>
-
-    <property name="Bitrate" type="u" access="read">
-      <tp:docstring>
-        The bit rate currently used by the wireless device, in kilobits/second (Kb/s).
-      </tp:docstring>
-    </property>
-    <property name="ActiveAccessPoint" type="o" access="read">
-      <tp:docstring>
-        Object path of the access point currently used by the wireless device.
-      </tp:docstring>
-    </property>
-    <property name="WirelessCapabilities" type="u" access="read" tp:type="NM_802_11_DEVICE_CAP">
-      <tp:docstring>
-        The capabilities of the wireless device.
-      </tp:docstring>
-    </property>
-
-    <signal name="PropertiesChanged">
-        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
-            <tp:docstring>
-                A dictionary containing the FIXME: check changed parameters.
-            </tp:docstring>
-        </arg>
-        <tp:docstring>
-            Emitted when the wireless device's properties changed.
-        </tp:docstring>
-    </signal>
-
-    <signal name="AccessPointAdded">
-        <arg name="access_point" type="o">
-            <tp:docstring>
-                The object path of the newly found access point.
-            </tp:docstring>
-        </arg>
-        <tp:docstring>
-            Emitted when a new access point is found by the device.
-        </tp:docstring>
-    </signal>
-
-    <signal name="AccessPointRemoved">
-      <arg name="access_point" type="o">
-            <tp:docstring>
-                The object path of the access point that has disappeared.
-            </tp:docstring>
-        </arg>
-        <tp:docstring>
-            Emitted when an access point disappears from view of the device.
-        </tp:docstring>
-    </signal>
-
-    <tp:flags name="NM_802_11_DEVICE_CAP" type="u">
-      <tp:docstring>
-        Flags describing the capabilities of a wireless device.
-      </tp:docstring>
-      <tp:flag suffix="NONE" value="0x0">
-        <tp:docstring>Null capability - syntactic sugar for no capabilities supported.  Do not AND this with other capabilities!</tp:docstring>
-      </tp:flag>
-      <tp:flag suffix="CIPHER_WEP40" value="0x1">
-        <tp:docstring>The device supports the 40-bit WEP cypher.</tp:docstring>
-      </tp:flag>
-      <tp:flag suffix="CIPHER_WEP104" value="0x2">
-        <tp:docstring>The device supports the 104-bit WEP cypher.</tp:docstring>
-      </tp:flag>
-      <tp:flag suffix="CIPHER_TKIP" value="0x4">
-        <tp:docstring>The device supports the TKIP cypher.</tp:docstring>
-      </tp:flag>
-      <tp:flag suffix="CIPHER_CCMP" value="0x8">
-        <tp:docstring>The device supports the CCMP cypher.</tp:docstring>
-      </tp:flag>
-      <tp:flag suffix="WPA" value="0x10">
-        <tp:docstring>The device supports the WPA encryption/authentication protocol.</tp:docstring>
-      </tp:flag>
-      <tp:flag suffix="RSN" value="0x20">
-        <tp:docstring>The device supports the RSN encryption/authentication protocol.</tp:docstring>
-      </tp:flag>
-    </tp:flags>
-  </interface>
-</node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-802-3-ethernet.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-802-3-ethernet.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-802-3-ethernet.xml	2008-04-05 22:43:31.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-device-802-3-ethernet.xml	1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
-  <interface name="org.freedesktop.NetworkManager.Device.Wired">
-
-    <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
-        Hardware address of the device.
-      </tp:docstring>
-    </property>
-
-    <property name="Speed" type="u" access="read">
-      <tp:docstring>
-        Design speed of the device.
-      </tp:docstring>
-    </property>
-
-    <property name="Carrier" type="b" access="read">
-      <tp:docstring>
-        Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
-      </tp:docstring>
-    </property>
-
-    <signal name="PropertiesChanged">
-        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-          <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
-            <tp:docstring>
-                A dictionary mapping property names to variant boxed values
-            </tp:docstring>
-        </arg>
-    </signal>
-
-  </interface>
-</node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-cdma.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-cdma.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-cdma.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-device-cdma.xml	2008-10-20 23:04:31.000000000 +0200
@@ -5,6 +5,7 @@
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
             <tp:docstring>
                 A dictionary mapping property names to variant boxed values
             </tp:docstring>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-ethernet.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-ethernet.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-ethernet.xml	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/introspection/nm-device-ethernet.xml	2008-10-20 23:02:05.000000000 +0200
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Wired">
+
+    <property name="HwAddress" type="s" access="read">
+      <tp:docstring>
+        Hardware address of the device.
+      </tp:docstring>
+    </property>
+
+    <property name="Speed" type="u" access="read">
+      <tp:docstring>
+        Design speed of the device.
+      </tp:docstring>
+    </property>
+
+    <property name="Carrier" type="b" access="read">
+      <tp:docstring>
+        Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
+      </tp:docstring>
+    </property>
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+	<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
+            <tp:docstring>
+                A dictionary mapping property names to variant boxed values
+            </tp:docstring>
+        </arg>
+    </signal>
+
+  </interface>
+</node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-gsm.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-gsm.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-gsm.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-device-gsm.xml	2008-10-20 23:04:31.000000000 +0200
@@ -5,6 +5,7 @@
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
             <tp:docstring>
                 A dictionary mapping property names to variant boxed values
             </tp:docstring>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-serial.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-serial.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-serial.xml	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/introspection/nm-device-serial.xml	2008-10-20 23:02:05.000000000 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Serial">
+
+  <signal name="PppStats">
+    <arg name="in_bytes" type="u">
+      <tp:docstring>
+	Bytes received
+      </tp:docstring>
+    </arg>
+    <arg name="out_bytes" type="u">
+      <tp:docstring>
+	Bytes sent
+      </tp:docstring>
+    </arg>
+  </signal>
+
+  </interface>
+</node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-wifi.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-wifi.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device-wifi.xml	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/introspection/nm-device-wifi.xml	2008-10-20 23:02:06.000000000 +0200
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Wireless">
+    <method name="GetAccessPoints">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_device_get_access_points"/>
+      <arg name="access_points" type="ao" direction="out">
+        <tp:docstring>
+          List of access point object paths
+        </tp:docstring>
+      </arg>
+      <tp:docstring>
+        Get the list of access points visible to this device.
+      </tp:docstring>
+    </method>
+
+    <property name="HwAddress" type="s" access="read">
+      <tp:docstring>
+        The hardware address of the device.
+      </tp:docstring>
+    </property>
+    <property name="Mode" type="u" access="read" tp:type="NM_802_11_MODE">
+      <tp:docstring>
+        The operating mode of the wireless device.
+      </tp:docstring>
+    </property>
+
+    <property name="Bitrate" type="u" access="read">
+      <tp:docstring>
+        The bit rate currently used by the wireless device, in kilobits/second (Kb/s).
+      </tp:docstring>
+    </property>
+    <property name="ActiveAccessPoint" type="o" access="read">
+      <tp:docstring>
+        Object path of the access point currently used by the wireless device.
+      </tp:docstring>
+    </property>
+    <property name="WirelessCapabilities" type="u" access="read" tp:type="NM_802_11_DEVICE_CAP">
+      <tp:docstring>
+        The capabilities of the wireless device.
+      </tp:docstring>
+    </property>
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+	<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
+            <tp:docstring>
+                A dictionary containing the FIXME: check changed parameters.
+            </tp:docstring>
+        </arg>
+        <tp:docstring>
+            Emitted when the wireless device's properties changed.
+        </tp:docstring>
+    </signal>
+
+    <signal name="AccessPointAdded">
+        <arg name="access_point" type="o">
+            <tp:docstring>
+                The object path of the newly found access point.
+            </tp:docstring>
+        </arg>
+        <tp:docstring>
+            Emitted when a new access point is found by the device.
+        </tp:docstring>
+    </signal>
+
+    <signal name="AccessPointRemoved">
+      <arg name="access_point" type="o">
+            <tp:docstring>
+                The object path of the access point that has disappeared.
+            </tp:docstring>
+        </arg>
+        <tp:docstring>
+            Emitted when an access point disappears from view of the device.
+        </tp:docstring>
+    </signal>
+
+    <tp:flags name="NM_802_11_DEVICE_CAP" type="u">
+      <tp:docstring>
+        Flags describing the capabilities of a wireless device.
+      </tp:docstring>
+      <tp:flag suffix="NONE" value="0x0">
+        <tp:docstring>Null capability - syntactic sugar for no capabilities supported.  Do not AND this with other capabilities!</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_WEP40" value="0x1">
+        <tp:docstring>The device supports the 40-bit WEP cypher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_WEP104" value="0x2">
+        <tp:docstring>The device supports the 104-bit WEP cypher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_TKIP" value="0x4">
+        <tp:docstring>The device supports the TKIP cypher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_CCMP" value="0x8">
+        <tp:docstring>The device supports the CCMP cypher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="WPA" value="0x10">
+        <tp:docstring>The device supports the WPA encryption/authentication protocol.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="RSN" value="0x20">
+        <tp:docstring>The device supports the RSN encryption/authentication protocol.</tp:docstring>
+      </tp:flag>
+    </tp:flags>
+  </interface>
+</node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-device.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-device.xml	2008-06-08 14:08:40.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-device.xml	2008-10-20 23:03:15.000000000 +0200
@@ -37,6 +37,11 @@
         Object path of the Ip4Config object describing the configuration of the device.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
       </tp:docstring>
     </property>
+    <property name="Dhcp4Config" type="o" access="read">
+      <tp:docstring>
+        Object path of the Dhcp4Config object describing the DHCP options returned by the DHCP server.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
+      </tp:docstring>
+    </property>
     <property name="Managed" type="b" access="read">
       <tp:docstring>
         Whether or not this device is managed by NetworkManager.
@@ -52,68 +57,47 @@
 
 
     <signal name="StateChanged">
-      <arg name="state" type="u" tp:type="NM_DEVICE_STATE">
+      <arg name="new_state" type="u" tp:type="NM_DEVICE_STATE">
         <tp:docstring>
           The new state of the device.
         </tp:docstring>
       </arg>
+      <arg name="old_state" type="u" tp:type="NM_DEVICE_STATE">
+        <tp:docstring>
+          The previous state of the device.
+        </tp:docstring>
+      </arg>
+      <arg name="reason" type="u" tp:type="NM_DEVICE_STATE_REASON">
+        <tp:docstring>
+          A reason for the state transition.
+        </tp:docstring>
+      </arg>
     </signal>
 
     <tp:enum name="NM_DEVICE_STATE" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
         <tp:docstring>
-          The device state is unknown.
+          The device is in an unknown state.
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="UNMANAGED" value="1">
         <tp:docstring>
-          Initial state of all devices and the only state for devices not
-          managed by NetworkManager.
-          Allowed next states:
-          UNAVAILABLE:  the device is now managed by NetworkManager
-          Indicates the device is not yet ready for use, but is managed by
-          NetworkManager.  For Ethernet devices, the device may not have an
-          active carrier.  For WiFi devices, the device may not have its radio
-          enabled.
-
-          Allowed next states:
-          UNMANAGED:  the device is no longer managed by NetworkManager
-          DISCONNECTED:  the device is now ready for use
+          The device is not managed by NetworkManager.
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="UNAVAILABLE" value="2">
         <tp:docstring>
-          Indicates the device is not yet ready for use, but is managed by
-          NetworkManager.  For Ethernet devices, the device may not have an
-          active carrier.  For WiFi devices, the device may not have its radio
-          enabled.
-
-          Allowed next states:
-          UNMANAGED:  the device is no longer managed by NetworkManager
-          DISCONNECTED:  the device is now ready for use
+          The device cannot be used (carrier off, rfkill, etc).
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="DISCONNECTED" value="3">
         <tp:docstring>
-          Indicates the device does not have an activate connection to anything.
-
-          Allowed next states:
-          UNMANAGED:  the device is no longer managed by NetworkManager
-          UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
-          PREPARE:  the device has started activation
+          The device is not connected.
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="PREPARE" value="4">
         <tp:docstring>
-          Indicate states in device activation.
-
-          Allowed next states:
-          UNMANAGED:  the device is no longer managed by NetworkManager
-          UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
-          FAILED:  an error ocurred during activation
-          NEED_AUTH:  authentication/secrets are needed
-          ACTIVATED:  (IP_CONFIG only) activation was successful
-          DISCONNECTED:  the device's connection is no longer valid, or NetworkManager went to sleep
+          The device is preparing to connect.
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="CONFIG" value="5">
@@ -123,36 +107,26 @@
       </tp:enumvalue>
       <tp:enumvalue suffix="NEED_AUTH" value="6">
         <tp:docstring>
-          The device requires authentication credentials.
+          The device is awaiting secrets necessary to continue connection.
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="IP_CONFIG" value="7">
         <tp:docstring>
-          The IP address of the device is being configured.
+          The IP settings of the device are being requested and configured.
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="ACTIVATED" value="8">
         <tp:docstring>
-          Indicates the device is part of an active network connection.
-
-          Allowed next states:
-          UNMANAGED:  the device is no longer managed by NetworkManager
-          UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
-          FAILED:  a DHCP lease was not renewed, or another error
-          DISCONNECTED:  the device's connection is no longer valid, or NetworkManager went to sleep
+          The device is active.
         </tp:docstring>
       </tp:enumvalue>
       <tp:enumvalue suffix="FAILED" value="9">
         <tp:docstring>
-          Indicates the device's activation failed.
-
-          Allowed next states:
-          UNMANAGED:  the device is no longer managed by NetworkManager
-          UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
-          DISCONNECTED:  the device's connection is ready for activation, or NetworkManager went to sleep
+          The device is in a failure state following an attempt to activate it.
         </tp:docstring>
       </tp:enumvalue>
     </tp:enum>
+
     <tp:flags name="NM_DEVICE_CAP" value-prefix="NM_DEVICE_CAP" type="u">
       <tp:flag suffix="NONE" value="0x0">
         <tp:docstring>Null capability.</tp:docstring>
@@ -164,5 +138,189 @@
         <tp:docstring>The device supports carrier detection.</tp:docstring>
       </tp:flag>
     </tp:flags>
+
+    <tp:enum name="NM_DEVICE_STATE_REASON" type="u">
+      <tp:enumvalue suffix="UNKNOWN" value="0">
+        <tp:docstring>
+          The reason for the device state change is unknown.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NONE" value="1">
+        <tp:docstring>
+          The state change is normal.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NOW_MANAGED" value="2">
+        <tp:docstring>
+          The device is now managed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NOW_UNMANAGED" value="3">
+        <tp:docstring>
+          The device is no longer managed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONFIG_FAILED" value="4">
+        <tp:docstring>
+          The device could not be readied for configuration.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONFIG_UNAVAILABLE" value="5">
+        <tp:docstring>
+          IP configuration could not be reserved (no available address, timeout, etc).
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONFIG_EXPIRED" value="6">
+        <tp:docstring>
+          The IP configuration is no longer valid.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NO_SECRETS" value="7">
+        <tp:docstring>
+          Secrets were required, but not provided.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_DISCONNECT" value="8">
+        <tp:docstring>
+          The 802.1X supplicant disconnected from the access point or authentication server.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_CONFIG_FAILED" value="9">
+        <tp:docstring>
+          Configuration of the 802.1X supplicant failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_FAILED" value="10">
+        <tp:docstring>
+          The 802.1X supplicant quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_TIMEOUT" value="11">
+        <tp:docstring>
+          The 802.1X supplicant took too long to authenticate.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PPP_START_FAILED" value="12">
+        <tp:docstring>
+          The PPP service failed to start within the allowed time.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PPP_DISCONNECT" value="13">
+        <tp:docstring>
+          The PPP service disconnected unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PPP_FAILED" value="14">
+        <tp:docstring>
+          The PPP service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DHCP_START_FAILED" value="15">
+        <tp:docstring>
+          The DHCP service failed to start within the allowed time.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DHCP_ERROR" value="16">
+        <tp:docstring>
+          The DHCP service reported an unexpected error.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DHCP_FAILED" value="17">
+        <tp:docstring>
+          The DHCP service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SHARED_START_FAILED" value="18">
+        <tp:docstring>
+          The shared connection service failed to start.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SHARED_FAILED" value="19">
+        <tp:docstring>
+          The shared connection service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="AUTOIP_START_FAILED" value="20">
+        <tp:docstring>
+          The AutoIP service failed to start.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="AUTOIP_ERROR" value="21">
+        <tp:docstring>
+          The AutoIP service reported an unexpected error.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="AUTOIP_FAILED" value="22">
+        <tp:docstring>
+          The AutoIP service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_BUSY" value="23">
+        <tp:docstring>
+          Dialing failed because the line was busy.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_NO_DIAL_TONE" value="24">
+        <tp:docstring>
+          Dialing failed because there was no dial tone.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_NO_CARRIER" value="25">
+        <tp:docstring>
+          Dialing failed because there was carrier.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_DIAL_TIMEOUT" value="26">
+        <tp:docstring>
+          Dialing timed out.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_DIAL_FAILED" value="27">
+        <tp:docstring>
+          Dialing failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_INIT_FAILED" value="28">
+        <tp:docstring>
+          Modem initialization failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_APN_FAILED" value="29">
+        <tp:docstring>
+          Failed to select the specified GSM APN.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_NOT_SEARCHING" value="30">
+        <tp:docstring>
+          Not searching for networks.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_DENIED" value="31">
+        <tp:docstring>
+          Network registration was denied.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_TIMEOUT" value="32">
+        <tp:docstring>
+          Network registration timed out.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_FAILED" value="33">
+        <tp:docstring>
+          Failed to register with the requested GSM network.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_PIN_CHECK_FAILED" value="34">
+        <tp:docstring>
+          PIN check failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="FIRMWARE_MISSING" value="35">
+        <tp:docstring>
+          Necessary firmware for the device may be missing.
+        </tp:docstring>
+      </tp:enumvalue>
+	</tp:enum>
+
   </interface>
 </node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-dhcp4-config.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-dhcp4-config.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-dhcp4-config.xml	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/introspection/nm-dhcp4-config.xml	2008-10-20 23:02:06.000000000 +0200
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+    <interface name="org.freedesktop.NetworkManager.DHCP4Config">
+        <tp:docstring>
+            Options and configuration returned by the IPv4 DHCP server.
+        </tp:docstring>
+        <property name="Options" type="a{sv}" access="read">
+	    <annotation name="com.trolltech.QtDBus.QtTypeName" value="QVariantMap"/>
+            <tp:docstring>Configuration options returned by a DHCP server, if any.</tp:docstring>
+        </property>
+
+        <signal name="PropertiesChanged">
+            <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+	    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QVariantMap"/>
+                <tp:docstring>
+                    A dictionary mapping property names to variant boxed values
+                </tp:docstring>
+            </arg>
+        </signal>
+    </interface>
+</node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-exported-connection.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-exported-connection.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-exported-connection.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-exported-connection.xml	2008-10-20 23:02:06.000000000 +0200
@@ -6,38 +6,27 @@
         <tp:docstring>
             Represents a single network connection configuration.
         </tp:docstring>
-        <method name="GetID">
+
+        <method name="Update">
+          <tp:docstring>
+            Update the connection.
+          </tp:docstring>
+          <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_update"/>
+          <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+          <arg name="properties" type="a{sa{sv}}" direction="in">
             <tp:docstring>
-                Obtain the ID of this connection.
+              New connection properties.
             </tp:docstring>
-            <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_get_id"/>
-            <arg name="id" type="s" direction="out">
-                <tp:docstring>
-                    The ID of this connection.
-                </tp:docstring>
-            </arg>
+          </arg>
         </method>
 
-	<method name="Update">
-	  <tp:docstring>
-	    Update the connection.
-	  </tp:docstring>
-	  <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_update"/>
+        <method name="Delete">
+          <tp:docstring>
+            Delete the connection.
+          </tp:docstring>
+          <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_delete"/>
           <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
-	  <arg name="properties" type="a{sa{sv}}" direction="in">
-	    <tp:docstring>
-	      New connection properties.
-	    </tp:docstring>
-	  </arg>
-	</method>
-
-	<method name="Delete">
-	  <tp:docstring>
-	    Delete the connection.
-	  </tp:docstring>
-	  <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_delete"/>
-	  <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
-	</method>
+        </method>
 
         <method name="GetSettings">
             <tp:docstring>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-ip4-config.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-ip4-config.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-ip4-config.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-ip4-config.xml	2008-10-20 23:02:06.000000000 +0200
@@ -4,10 +4,7 @@
   <interface name="org.freedesktop.NetworkManager.IP4Config">
     <property name="Addresses" type="aau" access="read">
       <annotation name="com.trolltech.QtDBus.QtTypeName" value="UIntListList"/>
-      <tp:docstring>Tuples of IPv4 address/netmask/gateway.  The gateway is optional, if not given should be 0.</tp:docstring>
-    </property>
-    <property name="Hostname" type="s" access="read">
-      <tp:docstring>The hostname associated with this IPv4 address. FIXME: what about multiple hostnames?</tp:docstring>
+      <tp:docstring>Tuples of IPv4 address/prefix/gateway.</tp:docstring>
     </property>
     <property name="Nameservers" type="au" access="read">
       <annotation name="com.trolltech.QtDBus.QtTypeName" value="UIntList"/>
@@ -16,12 +13,9 @@
     <property name="Domains" type="as" access="read">
       <tp:docstring>A list of domains this address belongs to.</tp:docstring>
     </property>
-    <property name="NisDomain" type="s" access="read">
-      <tp:docstring>The NIS domain this address belongs to.</tp:docstring>
-    </property>
-    <property name="NisServers" type="au" access="read">
-      <tp:docstring>The NIS servers associated with this address.</tp:docstring>
-      <annotation name="com.trolltech.QtDBus.QtTypeName" value="UIntList"/>
+    <property name="Routes" type="aau" access="read">
+      <tp:docstring>Tuples of IPv4 route/prefix/next-hop/metric.</tp:docstring>
+      <annotation name="com.trolltech.QtDBus.QtTypeName" value="UIntListList"/>
     </property>
   </interface>
 </node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-settings-system.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-settings-system.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-settings-system.xml	2008-05-12 22:30:04.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-settings-system.xml	2008-10-20 23:02:06.000000000 +0200
@@ -8,17 +8,36 @@
 
     <method name="AddConnection">
       <tp:docstring>
-	Add new connection.
+        Add new connection.
       </tp:docstring>
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_add_connection"/>
       <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
       <arg name="connection" type="a{sa{sv}}" direction="in">
-	<tp:docstring>
-	  Connection properties.
-	</tp:docstring>
+        <tp:docstring>
+          Connection properties.
+        </tp:docstring>
       </arg>
     </method>
 
+    <method name="SaveHostname">
+      <tp:docstring>
+        Save the hostname to persistent configuration.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_save_hostname"/>
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <arg name="hostname" type="s" direction="in">
+        <tp:docstring>
+          The hostname to save to persistent configuration.  If blank, the persistent hostname is cleared.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <property name="Hostname" type="s" access="read">
+      <tp:docstring>
+        The machine hostname stored in persistent configuration.
+      </tp:docstring>
+    </property>
+
     <property name="UnmanagedDevices" type="ao" access="read">
       <tp:docstring>
         The list of HAL UDIs of devices that should not be managed by NetworkManager.
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-vpn-connection.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-vpn-connection.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-vpn-connection.xml	2008-06-07 19:27:10.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-vpn-connection.xml	2008-10-20 23:02:06.000000000 +0200
@@ -11,12 +11,6 @@
     <property name="SpecificObject" type="o" access="read">
       <tp:docstring>A specific object associated with the active connection.</tp:docstring>
     </property>
-    <property name="SharedServiceName" type="s" access="read">
-      <tp:docstring>The D-Bus service name that provides a connection with which this active connection is shared.</tp:docstring>
-    </property>
-    <property name="SharedConnection" type="o" access="read">
-      <tp:docstring>The path of a connection provided by the D-Bus service SharedServiceName which which this connection is shared.</tp:docstring>
-    </property>
     <property name="Devices" type="ao" access="read">
       <tp:docstring>Array of object paths representing devices which are part of this active connection.</tp:docstring>
     </property>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-vpn-plugin.xml workspace/solid/networkmanager-0.7/dbus/introspection/nm-vpn-plugin.xml
--- workspace.old//solid/networkmanager-0.7/dbus/introspection/nm-vpn-plugin.xml	2008-04-05 22:43:31.000000000 +0200
+++ solid/networkmanager-0.7/dbus/introspection/nm-vpn-plugin.xml	2008-10-20 23:02:06.000000000 +0200
@@ -122,11 +122,30 @@
       <tp:docstring>
         Emitted when a failure in the VPN plugin occurs.
       </tp:docstring>
-      <arg name="reason" type="u" tp:type="NM_VPN_CONNECTION_STATE_REASON">
+      <arg name="reason" type="u" tp:type="NM_VPN_PLUGIN_FAILURE">
         <tp:docstring>
           Reason code for the failure.
         </tp:docstring>
       </arg>
     </signal>
+
+    <tp:enum name="NM_VPN_PLUGIN_FAILURE" type="u">
+      <tp:enumvalue suffix="LOGIN_FAILED" value="0">
+        <tp:docstring>
+          Login failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECT_FAILED" value="1">
+        <tp:docstring>
+          Connect failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="BAD_IP_CONFIG" value="2">
+        <tp:docstring>
+          Invalid IP configuration returned from the VPN plugin.
+        </tp:docstring>
+      </tp:enumvalue>
+    </tp:enum>
+
   </interface>
 </node>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-access-pointinterface.h workspace/solid/networkmanager-0.7/dbus/nm-access-pointinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-access-pointinterface.h	2008-05-12 22:30:47.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-access-pointinterface.h	2008-10-20 23:02:06.000000000 +0200
@@ -8,8 +8,8 @@
  * Do not edit! All changes made to it will be lost.
  */
 
-#ifndef NMACCESSPOINTINTERFACE_H_1210621531
-#define NMACCESSPOINTINTERFACE_H_1210621531
+#ifndef NM_ACCESS_POINTINTERFACE_H_1222729762
+#define NM_ACCESS_POINTINTERFACE_H_1222729762
 
 #include <QtCore/QObject>
 #include <QtCore/QByteArray>
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.cpp	2008-04-10 10:43:33.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-/*
- * This file was generated by dbusxml2cpp version 0.6
- * Command line was: dbusxml2cpp -N -m -p nm-device-802-11-wirelessinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-802-11-wireless.xml
- *
- * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
- *
- * This is an auto-generated file.
- * This file may have been hand-edited. Look for HAND-EDIT comments
- * before re-generating it.
- */
-
-#include "nm-device-802-11-wirelessinterface.h"
-
-/*
- * Implementation of interface class OrgFreedesktopNetworkManagerDeviceWirelessInterface
- */
-
-OrgFreedesktopNetworkManagerDeviceWirelessInterface::OrgFreedesktopNetworkManagerDeviceWirelessInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
-    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
-{
-}
-
-OrgFreedesktopNetworkManagerDeviceWirelessInterface::~OrgFreedesktopNetworkManagerDeviceWirelessInterface()
-{
-}
-
-
-#include "nm-device-802-11-wirelessinterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.h workspace/solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.h	2008-05-12 22:30:47.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-device-802-11-wirelessinterface.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,71 +0,0 @@
-/*
- * This file was generated by dbusxml2cpp version 0.6
- * Command line was: dbusxml2cpp -N -m -p nm-device-802-11-wirelessinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-802-11-wireless.xml
- *
- * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
- *
- * This is an auto-generated file.
- * Do not edit! All changes made to it will be lost.
- */
-
-#ifndef NMDEVICE80211WIRELESSINTERFACE_H_1210621531
-#define NMDEVICE80211WIRELESSINTERFACE_H_1210621531
-
-#include <QtCore/QObject>
-#include <QtCore/QByteArray>
-#include <QtCore/QList>
-#include <QtCore/QMap>
-#include <QtCore/QString>
-#include <QtCore/QStringList>
-#include <QtCore/QVariant>
-#include <QtDBus/QtDBus>
-
-/*
- * Proxy class for interface org.freedesktop.NetworkManager.Device.Wireless
- */
-class OrgFreedesktopNetworkManagerDeviceWirelessInterface: public QDBusAbstractInterface
-{
-    Q_OBJECT
-public:
-    static inline const char *staticInterfaceName()
-    { return "org.freedesktop.NetworkManager.Device.Wireless"; }
-
-public:
-    OrgFreedesktopNetworkManagerDeviceWirelessInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
-
-    ~OrgFreedesktopNetworkManagerDeviceWirelessInterface();
-
-    Q_PROPERTY(QDBusObjectPath ActiveAccessPoint READ activeAccessPoint)
-    inline QDBusObjectPath activeAccessPoint() const
-    { return qvariant_cast< QDBusObjectPath >(internalPropGet("ActiveAccessPoint")); }
-
-    Q_PROPERTY(uint Bitrate READ bitrate)
-    inline uint bitrate() const
-    { return qvariant_cast< uint >(internalPropGet("Bitrate")); }
-
-    Q_PROPERTY(QString HwAddress READ hwAddress)
-    inline QString hwAddress() const
-    { return qvariant_cast< QString >(internalPropGet("HwAddress")); }
-
-    Q_PROPERTY(uint Mode READ mode)
-    inline uint mode() const
-    { return qvariant_cast< uint >(internalPropGet("Mode")); }
-
-    Q_PROPERTY(uint WirelessCapabilities READ wirelessCapabilities)
-    inline uint wirelessCapabilities() const
-    { return qvariant_cast< uint >(internalPropGet("WirelessCapabilities")); }
-
-public Q_SLOTS: // METHODS
-    inline QDBusReply<QList<QDBusObjectPath> > GetAccessPoints()
-    {
-        QList<QVariant> argumentList;
-        return callWithArgumentList(QDBus::Block, QLatin1String("GetAccessPoints"), argumentList);
-    }
-
-Q_SIGNALS: // SIGNALS
-    void AccessPointAdded(const QDBusObjectPath &access_point);
-    void AccessPointRemoved(const QDBusObjectPath &access_point);
-    void PropertiesChanged(const QVariantMap &properties);
-};
-
-#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.cpp	2008-04-10 10:43:33.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-/*
- * This file was generated by dbusxml2cpp version 0.6
- * Command line was: dbusxml2cpp -N -m -p nm-device-802-3-ethernetinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-802-3-ethernet.xml
- *
- * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
- *
- * This is an auto-generated file.
- * This file may have been hand-edited. Look for HAND-EDIT comments
- * before re-generating it.
- */
-
-#include "nm-device-802-3-ethernetinterface.h"
-
-/*
- * Implementation of interface class OrgFreedesktopNetworkManagerDeviceWiredInterface
- */
-
-OrgFreedesktopNetworkManagerDeviceWiredInterface::OrgFreedesktopNetworkManagerDeviceWiredInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
-    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
-{
-}
-
-OrgFreedesktopNetworkManagerDeviceWiredInterface::~OrgFreedesktopNetworkManagerDeviceWiredInterface()
-{
-}
-
-
-#include "nm-device-802-3-ethernetinterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.h workspace/solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.h	2008-05-12 22:30:47.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-device-802-3-ethernetinterface.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-/*
- * This file was generated by dbusxml2cpp version 0.6
- * Command line was: dbusxml2cpp -N -m -p nm-device-802-3-ethernetinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-802-3-ethernet.xml
- *
- * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
- *
- * This is an auto-generated file.
- * Do not edit! All changes made to it will be lost.
- */
-
-#ifndef NMDEVICE8023ETHERNETINTERFACE_H_1210621532
-#define NMDEVICE8023ETHERNETINTERFACE_H_1210621532
-
-#include <QtCore/QObject>
-#include <QtCore/QByteArray>
-#include <QtCore/QList>
-#include <QtCore/QMap>
-#include <QtCore/QString>
-#include <QtCore/QStringList>
-#include <QtCore/QVariant>
-#include <QtDBus/QtDBus>
-
-/*
- * Proxy class for interface org.freedesktop.NetworkManager.Device.Wired
- */
-class OrgFreedesktopNetworkManagerDeviceWiredInterface: public QDBusAbstractInterface
-{
-    Q_OBJECT
-public:
-    static inline const char *staticInterfaceName()
-    { return "org.freedesktop.NetworkManager.Device.Wired"; }
-
-public:
-    OrgFreedesktopNetworkManagerDeviceWiredInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
-
-    ~OrgFreedesktopNetworkManagerDeviceWiredInterface();
-
-    Q_PROPERTY(bool Carrier READ carrier)
-    inline bool carrier() const
-    { return qvariant_cast< bool >(internalPropGet("Carrier")); }
-
-    Q_PROPERTY(QString HwAddress READ hwAddress)
-    inline QString hwAddress() const
-    { return qvariant_cast< QString >(internalPropGet("HwAddress")); }
-
-    Q_PROPERTY(uint Speed READ speed)
-    inline uint speed() const
-    { return qvariant_cast< uint >(internalPropGet("Speed")); }
-
-public Q_SLOTS: // METHODS
-Q_SIGNALS: // SIGNALS
-    void PropertiesChanged(const QVariantMap &properties);
-};
-
-#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-cdmainterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-device-cdmainterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-cdmainterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-cdmainterface.cpp	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-cdmainterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-cdma.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#include "nm-device-cdmainterface.h"
+
+/*
+ * Implementation of interface class OrgFreedesktopNetworkManagerDeviceCdmaInterface
+ */
+
+OrgFreedesktopNetworkManagerDeviceCdmaInterface::OrgFreedesktopNetworkManagerDeviceCdmaInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
+{
+}
+
+OrgFreedesktopNetworkManagerDeviceCdmaInterface::~OrgFreedesktopNetworkManagerDeviceCdmaInterface()
+{
+}
+
+
+#include "nm-device-cdmainterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-cdmainterface.h workspace/solid/networkmanager-0.7/dbus/nm-device-cdmainterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-cdmainterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-cdmainterface.h	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,43 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-cdmainterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-cdma.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#ifndef NM_DEVICE_CDMAINTERFACE_H_1223976495
+#define NM_DEVICE_CDMAINTERFACE_H_1223976495
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtDBus/QtDBus>
+
+/*
+ * Proxy class for interface org.freedesktop.NetworkManager.Device.Cdma
+ */
+class OrgFreedesktopNetworkManagerDeviceCdmaInterface: public QDBusAbstractInterface
+{
+    Q_OBJECT
+public:
+    static inline const char *staticInterfaceName()
+    { return "org.freedesktop.NetworkManager.Device.Cdma"; }
+
+public:
+    OrgFreedesktopNetworkManagerDeviceCdmaInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+
+    ~OrgFreedesktopNetworkManagerDeviceCdmaInterface();
+
+public Q_SLOTS: // METHODS
+Q_SIGNALS: // SIGNALS
+    void PropertiesChanged(const QVariantMap &properties);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.cpp	2008-10-20 23:02:05.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-ethernetinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-ethernet.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#include "nm-device-ethernetinterface.h"
+
+/*
+ * Implementation of interface class OrgFreedesktopNetworkManagerDeviceWiredInterface
+ */
+
+OrgFreedesktopNetworkManagerDeviceWiredInterface::OrgFreedesktopNetworkManagerDeviceWiredInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
+{
+}
+
+OrgFreedesktopNetworkManagerDeviceWiredInterface::~OrgFreedesktopNetworkManagerDeviceWiredInterface()
+{
+}
+
+
+#include "nm-device-ethernetinterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.h workspace/solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-ethernetinterface.h	2008-10-20 23:02:05.000000000 +0200
@@ -0,0 +1,55 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-ethernetinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-ethernet.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#ifndef NM_DEVICE_ETHERNETINTERFACE_H_1222729762
+#define NM_DEVICE_ETHERNETINTERFACE_H_1222729762
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtDBus/QtDBus>
+
+/*
+ * Proxy class for interface org.freedesktop.NetworkManager.Device.Wired
+ */
+class OrgFreedesktopNetworkManagerDeviceWiredInterface: public QDBusAbstractInterface
+{
+    Q_OBJECT
+public:
+    static inline const char *staticInterfaceName()
+    { return "org.freedesktop.NetworkManager.Device.Wired"; }
+
+public:
+    OrgFreedesktopNetworkManagerDeviceWiredInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+
+    ~OrgFreedesktopNetworkManagerDeviceWiredInterface();
+
+    Q_PROPERTY(bool Carrier READ carrier)
+    inline bool carrier() const
+    { return qvariant_cast< bool >(internalPropGet("Carrier")); }
+
+    Q_PROPERTY(QString HwAddress READ hwAddress)
+    inline QString hwAddress() const
+    { return qvariant_cast< QString >(internalPropGet("HwAddress")); }
+
+    Q_PROPERTY(uint Speed READ speed)
+    inline uint speed() const
+    { return qvariant_cast< uint >(internalPropGet("Speed")); }
+
+public Q_SLOTS: // METHODS
+Q_SIGNALS: // SIGNALS
+    void PropertiesChanged(const QVariantMap &properties);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-gsminterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-device-gsminterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-gsminterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-gsminterface.cpp	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-gsminterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-gsm.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#include "nm-device-gsminterface.h"
+
+/*
+ * Implementation of interface class OrgFreedesktopNetworkManagerDeviceGsmInterface
+ */
+
+OrgFreedesktopNetworkManagerDeviceGsmInterface::OrgFreedesktopNetworkManagerDeviceGsmInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
+{
+}
+
+OrgFreedesktopNetworkManagerDeviceGsmInterface::~OrgFreedesktopNetworkManagerDeviceGsmInterface()
+{
+}
+
+
+#include "nm-device-gsminterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-gsminterface.h workspace/solid/networkmanager-0.7/dbus/nm-device-gsminterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-gsminterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-gsminterface.h	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,43 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-gsminterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-gsm.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#ifndef NM_DEVICE_GSMINTERFACE_H_1223976494
+#define NM_DEVICE_GSMINTERFACE_H_1223976494
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtDBus/QtDBus>
+
+/*
+ * Proxy class for interface org.freedesktop.NetworkManager.Device.Gsm
+ */
+class OrgFreedesktopNetworkManagerDeviceGsmInterface: public QDBusAbstractInterface
+{
+    Q_OBJECT
+public:
+    static inline const char *staticInterfaceName()
+    { return "org.freedesktop.NetworkManager.Device.Gsm"; }
+
+public:
+    OrgFreedesktopNetworkManagerDeviceGsmInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+
+    ~OrgFreedesktopNetworkManagerDeviceGsmInterface();
+
+public Q_SLOTS: // METHODS
+Q_SIGNALS: // SIGNALS
+    void PropertiesChanged(const QVariantMap &properties);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-deviceinterface.h workspace/solid/networkmanager-0.7/dbus/nm-deviceinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-deviceinterface.h	2008-05-12 22:30:47.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-deviceinterface.h	2008-10-20 23:02:06.000000000 +0200
@@ -8,8 +8,8 @@
  * Do not edit! All changes made to it will be lost.
  */
 
-#ifndef NMDEVICEINTERFACE_H_1210621531
-#define NMDEVICEINTERFACE_H_1210621531
+#ifndef NM_DEVICEINTERFACE_H_1222729762
+#define NM_DEVICEINTERFACE_H_1222729762
 
 #include <QtCore/QObject>
 #include <QtCore/QByteArray>
@@ -43,6 +43,10 @@
     inline uint deviceType() const
     { return qvariant_cast< uint >(internalPropGet("DeviceType")); }
 
+    Q_PROPERTY(QDBusObjectPath Dhcp4Config READ dhcp4Config)
+    inline QDBusObjectPath dhcp4Config() const
+    { return qvariant_cast< QDBusObjectPath >(internalPropGet("Dhcp4Config")); }
+
     Q_PROPERTY(QString Driver READ driver)
     inline QString driver() const
     { return qvariant_cast< QString >(internalPropGet("Driver")); }
@@ -73,7 +77,7 @@
 
 public Q_SLOTS: // METHODS
 Q_SIGNALS: // SIGNALS
-    void StateChanged(uint state);
+    void StateChanged(uint new_state, uint old_state, uint reason);
 };
 
 #endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-serialinterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-device-serialinterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-serialinterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-serialinterface.cpp	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-serialinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-serial.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#include "nm-device-serialinterface.h"
+
+/*
+ * Implementation of interface class OrgFreedesktopNetworkManagerDeviceSerialInterface
+ */
+
+OrgFreedesktopNetworkManagerDeviceSerialInterface::OrgFreedesktopNetworkManagerDeviceSerialInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
+{
+}
+
+OrgFreedesktopNetworkManagerDeviceSerialInterface::~OrgFreedesktopNetworkManagerDeviceSerialInterface()
+{
+}
+
+
+#include "nm-device-serialinterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-serialinterface.h workspace/solid/networkmanager-0.7/dbus/nm-device-serialinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-serialinterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-serialinterface.h	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,43 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-serialinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-serial.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#ifndef NM_DEVICE_SERIALINTERFACE_H_1223976439
+#define NM_DEVICE_SERIALINTERFACE_H_1223976439
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtDBus/QtDBus>
+
+/*
+ * Proxy class for interface org.freedesktop.NetworkManager.Device.Serial
+ */
+class OrgFreedesktopNetworkManagerDeviceSerialInterface: public QDBusAbstractInterface
+{
+    Q_OBJECT
+public:
+    static inline const char *staticInterfaceName()
+    { return "org.freedesktop.NetworkManager.Device.Serial"; }
+
+public:
+    OrgFreedesktopNetworkManagerDeviceSerialInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+
+    ~OrgFreedesktopNetworkManagerDeviceSerialInterface();
+
+public Q_SLOTS: // METHODS
+Q_SIGNALS: // SIGNALS
+    void PppStats(uint in_bytes, uint out_bytes);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-wifiinterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-device-wifiinterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-wifiinterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-wifiinterface.cpp	2008-10-20 23:02:06.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-wifiinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-wifi.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#include "nm-device-wifiinterface.h"
+
+/*
+ * Implementation of interface class OrgFreedesktopNetworkManagerDeviceWirelessInterface
+ */
+
+OrgFreedesktopNetworkManagerDeviceWirelessInterface::OrgFreedesktopNetworkManagerDeviceWirelessInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
+{
+}
+
+OrgFreedesktopNetworkManagerDeviceWirelessInterface::~OrgFreedesktopNetworkManagerDeviceWirelessInterface()
+{
+}
+
+
+#include "nm-device-wifiinterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-device-wifiinterface.h workspace/solid/networkmanager-0.7/dbus/nm-device-wifiinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-device-wifiinterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-device-wifiinterface.h	2008-10-20 23:02:06.000000000 +0200
@@ -0,0 +1,71 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-device-wifiinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-device-wifi.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#ifndef NM_DEVICE_WIFIINTERFACE_H_1222729762
+#define NM_DEVICE_WIFIINTERFACE_H_1222729762
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtDBus/QtDBus>
+
+/*
+ * Proxy class for interface org.freedesktop.NetworkManager.Device.Wireless
+ */
+class OrgFreedesktopNetworkManagerDeviceWirelessInterface: public QDBusAbstractInterface
+{
+    Q_OBJECT
+public:
+    static inline const char *staticInterfaceName()
+    { return "org.freedesktop.NetworkManager.Device.Wireless"; }
+
+public:
+    OrgFreedesktopNetworkManagerDeviceWirelessInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+
+    ~OrgFreedesktopNetworkManagerDeviceWirelessInterface();
+
+    Q_PROPERTY(QDBusObjectPath ActiveAccessPoint READ activeAccessPoint)
+    inline QDBusObjectPath activeAccessPoint() const
+    { return qvariant_cast< QDBusObjectPath >(internalPropGet("ActiveAccessPoint")); }
+
+    Q_PROPERTY(uint Bitrate READ bitrate)
+    inline uint bitrate() const
+    { return qvariant_cast< uint >(internalPropGet("Bitrate")); }
+
+    Q_PROPERTY(QString HwAddress READ hwAddress)
+    inline QString hwAddress() const
+    { return qvariant_cast< QString >(internalPropGet("HwAddress")); }
+
+    Q_PROPERTY(uint Mode READ mode)
+    inline uint mode() const
+    { return qvariant_cast< uint >(internalPropGet("Mode")); }
+
+    Q_PROPERTY(uint WirelessCapabilities READ wirelessCapabilities)
+    inline uint wirelessCapabilities() const
+    { return qvariant_cast< uint >(internalPropGet("WirelessCapabilities")); }
+
+public Q_SLOTS: // METHODS
+    inline QDBusReply<QList<QDBusObjectPath> > GetAccessPoints()
+    {
+        QList<QVariant> argumentList;
+        return callWithArgumentList(QDBus::Block, QLatin1String("GetAccessPoints"), argumentList);
+    }
+
+Q_SIGNALS: // SIGNALS
+    void AccessPointAdded(const QDBusObjectPath &access_point);
+    void AccessPointRemoved(const QDBusObjectPath &access_point);
+    void PropertiesChanged(const QVariantMap &properties);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.cpp workspace/solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.cpp
--- workspace.old//solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.cpp	2008-10-20 23:02:05.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-dhcp4-configinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-dhcp4-config.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#include "nm-dhcp4-configinterface.h"
+
+/*
+ * Implementation of interface class OrgFreedesktopNetworkManagerDHCP4ConfigInterface
+ */
+
+OrgFreedesktopNetworkManagerDHCP4ConfigInterface::OrgFreedesktopNetworkManagerDHCP4ConfigInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
+    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
+{
+}
+
+OrgFreedesktopNetworkManagerDHCP4ConfigInterface::~OrgFreedesktopNetworkManagerDHCP4ConfigInterface()
+{
+}
+
+
+#include "nm-dhcp4-configinterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.h workspace/solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/dbus/nm-dhcp4-configinterface.h	2008-10-20 23:02:05.000000000 +0200
@@ -0,0 +1,47 @@
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -N -m -p nm-dhcp4-configinterface /space/kde/sources/trunk/KDE/kdebase/workspace/solid/networkmanager-0.7/dbus/introspection/nm-dhcp4-config.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#ifndef NM_DHCP4_CONFIGINTERFACE_H_1222729762
+#define NM_DHCP4_CONFIGINTERFACE_H_1222729762
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtDBus/QtDBus>
+
+/*
+ * Proxy class for interface org.freedesktop.NetworkManager.DHCP4Config
+ */
+class OrgFreedesktopNetworkManagerDHCP4ConfigInterface: public QDBusAbstractInterface
+{
+    Q_OBJECT
+public:
+    static inline const char *staticInterfaceName()
+    { return "org.freedesktop.NetworkManager.DHCP4Config"; }
+
+public:
+    OrgFreedesktopNetworkManagerDHCP4ConfigInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
+
+    ~OrgFreedesktopNetworkManagerDHCP4ConfigInterface();
+
+    Q_PROPERTY(QVariantMap Options READ options)
+    inline QVariantMap options() const
+    { return qvariant_cast< QVariantMap >(internalPropGet("Options")); }
+
+public Q_SLOTS: // METHODS
+Q_SIGNALS: // SIGNALS
+    void PropertiesChanged(const QVariantMap &properties);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-ip4-configinterface.h workspace/solid/networkmanager-0.7/dbus/nm-ip4-configinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-ip4-configinterface.h	2008-05-12 22:47:50.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-ip4-configinterface.h	2008-10-20 23:02:06.000000000 +0200
@@ -8,8 +8,8 @@
  * Do not edit! All changes made to it will be lost.
  */
 
-#ifndef NMIP4CONFIGINTERFACE_H_1210621530
-#define NMIP4CONFIGINTERFACE_H_1210621530
+#ifndef NM_IP4_CONFIGINTERFACE_H_1222729762
+#define NM_IP4_CONFIGINTERFACE_H_1222729762
 
 #include <QtCore/QObject>
 #include <QtCore/QByteArray>
@@ -20,7 +20,6 @@
 #include <QtCore/QVariant>
 #include <QtDBus/QtDBus>
 
-//HAND-EDIT
 #include "generic-types.h"
 
 /*
@@ -46,21 +45,13 @@
     inline QStringList domains() const
     { return qvariant_cast< QStringList >(internalPropGet("Domains")); }
 
-    Q_PROPERTY(QString Hostname READ hostname)
-    inline QString hostname() const
-    { return qvariant_cast< QString >(internalPropGet("Hostname")); }
-
     Q_PROPERTY(UIntList Nameservers READ nameservers)
     inline UIntList nameservers() const
     { return qvariant_cast< UIntList >(internalPropGet("Nameservers")); }
 
-    Q_PROPERTY(QString NisDomain READ nisDomain)
-    inline QString nisDomain() const
-    { return qvariant_cast< QString >(internalPropGet("NisDomain")); }
-
-    Q_PROPERTY(UIntList NisServers READ nisServers)
-    inline UIntList nisServers() const
-    { return qvariant_cast< UIntList >(internalPropGet("NisServers")); }
+    Q_PROPERTY(UIntListList Routes READ routes)
+    inline UIntListList routes() const
+    { return qvariant_cast< UIntListList >(internalPropGet("Routes")); }
 
 public Q_SLOTS: // METHODS
 Q_SIGNALS: // SIGNALS
diff -urN workspace.old//solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h workspace/solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h
--- workspace.old//solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h	2008-05-12 22:30:47.000000000 +0200
+++ solid/networkmanager-0.7/dbus/nm-manager-clientinterface.h	2008-10-20 23:02:06.000000000 +0200
@@ -8,8 +8,8 @@
  * Do not edit! All changes made to it will be lost.
  */
 
-#ifndef NMMANAGERCLIENTINTERFACE_H_1210621531
-#define NMMANAGERCLIENTINTERFACE_H_1210621531
+#ifndef NM_MANAGER_CLIENTINTERFACE_H_1222729762
+#define NM_MANAGER_CLIENTINTERFACE_H_1222729762
 
 #include <QtCore/QObject>
 #include <QtCore/QByteArray>
diff -urN workspace.old//solid/networkmanager-0.7/manager.cpp workspace/solid/networkmanager-0.7/manager.cpp
--- workspace.old//solid/networkmanager-0.7/manager.cpp	2008-06-08 18:00:35.000000000 +0200
+++ solid/networkmanager-0.7/manager.cpp	2008-10-20 23:04:52.000000000 +0200
@@ -2,8 +2,7 @@
 Copyright 2008 Will Stephenson <wstephenson@kde.org>
 
 This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2 of
+modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of
 the License or (at your option) version 3 or any later version
 accepted by the membership of KDE e.V. (or its successor approved
 by the membership of KDE e.V.), which shall act as a proxy 
@@ -28,6 +27,8 @@
 #include "networkmanagerdefinitions.h"
 #include "wirednetworkinterface.h"
 #include "wirelessnetworkinterface.h"
+#include "networkgsminterface.h"
+#include "networkcdmainterface.h"
 
 const QString NMNetworkManager::DBUS_SERVICE(QString::fromLatin1("org.freedesktop.NetworkManager"));
 const QString NMNetworkManager::DBUS_DAEMON_PATH(QString::fromLatin1("/org/freedesktop/NetworkManager"));
@@ -110,14 +111,24 @@
     NMNetworkInterface * createdInterface = 0;
     switch ( deviceType ) {
         case DEVICE_TYPE_802_3_ETHERNET:
-            createdInterface = new NMWiredNetworkInterface(uni, this, 0); // these are deleted by the frontent manager
+            createdInterface = new NMWiredNetworkInterface(uni, this, 0); // these are deleted by the frontend manager
             break;
         case DEVICE_TYPE_802_11_WIRELESS:
             createdInterface = new NMWirelessNetworkInterface(uni, this, 0);
             break;
         case DEVICE_TYPE_GSM:
+            createdInterface = new NMGsmNetworkInterface(uni, this, 0);
+            break;
         case DEVICE_TYPE_CDMA:
+            createdInterface = new NMCdmaNetworkInterface(uni, this, 0);
+            break;
+            /*
+        case DEVICE_TYPE_SERIAL:
+            createdInterface = new NMSerialNetworkInterface(uni, this, 0);
+            break;
+            */
         default:
+            kDebug() << "Can't create object of type " << deviceType;
             break;
     }
 
@@ -145,15 +156,21 @@
 void NMNetworkManager::activateConnection(const QString & interfaceUni, const QString & connectionUni, const QVariantMap & connectionParameters)
 {
     Q_D(NMNetworkManager);
-    QString serviceName = connectionUni.split(' ')[0];
-    QString connectionPath = connectionUni.split(' ')[1];
+    QString serviceName = connectionUni.section(' ', 0, 0);
+    QString connectionPath = connectionUni.section(' ', 1, 1);
     // ### FIXME find a better name for the parameter needed for NM 0.7
     QString extra_connection_parameter = connectionParameters.value("extra_connection_parameter").toString();
+    if (extra_connection_parameter.isEmpty()) {
+        extra_connection_parameter = QLatin1String("/foo");
+    }
     if ( serviceName.isEmpty() || connectionPath.isEmpty() ) {
         return;
     }
     // TODO store error code
-    d->iface.ActivateConnection(serviceName, QDBusObjectPath(connectionPath), QDBusObjectPath(interfaceUni), QDBusObjectPath(extra_connection_parameter));
+    QDBusObjectPath connPath(connectionPath);
+    QDBusObjectPath interfacePath(interfaceUni);
+    kDebug() << "Activating connection " << connPath.path() << " on service " << serviceName << " on interface " << interfacePath.path();
+    d->iface.ActivateConnection(serviceName, connPath, interfacePath, QDBusObjectPath(extra_connection_parameter));
 }
 
 void NMNetworkManager::deactivateConnection( const QString & activeConnectionPath )
@@ -218,7 +235,7 @@
             d->activeConnections.append(ac.path());
             kDebug(1441) << "  " << ac.path();
         }
-        emit activeConnectionsChanged(d->activeConnections);
+        emit activeConnectionsChanged();
     }
     it = properties.find(wifiHwKey);
     if ( it != properties.end()) {
@@ -275,5 +292,6 @@
     Q_D(const NMNetworkManager);
     return d->activeConnections;
 }
+
 #include "manager.moc"
 
diff -urN workspace.old//solid/networkmanager-0.7/manager.h workspace/solid/networkmanager-0.7/manager.h
--- workspace.old//solid/networkmanager-0.7/manager.h	2008-06-07 09:46:56.000000000 +0200
+++ solid/networkmanager-0.7/manager.h	2008-10-20 23:04:52.000000000 +0200
@@ -61,7 +61,7 @@
     void networkInterfaceRemoved(const QString & uni);
     void wirelessEnabledChanged(bool);
     void networkingEnabledChanged(bool);
-    void activeConnectionsChanged(const QStringList& );
+    void activeConnectionsChanged();
 
 protected Q_SLOTS:
     void deviceAdded(const QDBusObjectPath &state);
diff -urN workspace.old//solid/networkmanager-0.7/networkcdmainterface.cpp workspace/solid/networkmanager-0.7/networkcdmainterface.cpp
--- workspace.old//solid/networkmanager-0.7/networkcdmainterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkcdmainterface.cpp	2008-10-20 23:04:30.000000000 +0200
@@ -0,0 +1,53 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of
+the License or (at your option) version 3 or any later version
+accepted by the membership of KDE e.V. (or its successor approved
+by the membership of KDE e.V.), which shall act as a proxy 
+defined in Section 14 of version 3 of the license.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "networkcdmainterface.h"
+
+#include <KDebug>
+
+#include "networkcdmainterface_p.h"
+#include "manager.h"
+
+NMCdmaNetworkInterfacePrivate::NMCdmaNetworkInterfacePrivate(const QString & path, QObject * owner)
+    : NMSerialNetworkInterfacePrivate(path, owner), cdmaIface(NMNetworkManager::DBUS_SERVICE, path, QDBusConnection::systemBus())
+{
+}
+
+NMCdmaNetworkInterface::NMCdmaNetworkInterface(const QString & path, NMNetworkManager * manager, QObject * parent)
+    : NMSerialNetworkInterface(*new NMCdmaNetworkInterfacePrivate(path, this), manager, parent)
+{
+    Q_D(NMCdmaNetworkInterface);
+    connect( &d->cdmaIface, SIGNAL(PropertiesChanged(const QVariantMap &)),
+                this, SLOT(cdmaPropertiesChanged(const QVariantMap &)));
+}
+
+NMCdmaNetworkInterface::~NMCdmaNetworkInterface()
+{
+
+}
+
+void NMCdmaNetworkInterface::cdmaPropertiesChanged(const QVariantMap & changedProperties)
+{
+    kDebug(1441) << changedProperties.keys();
+}
+
+#include "networkcdmainterface.moc"
+
+// vim: sw=4 sts=4 et tw=100
diff -urN workspace.old//solid/networkmanager-0.7/networkcdmainterface.h workspace/solid/networkmanager-0.7/networkcdmainterface.h
--- workspace.old//solid/networkmanager-0.7/networkcdmainterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkcdmainterface.h	2008-10-20 23:04:30.000000000 +0200
@@ -0,0 +1,44 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of
+the License or (at your option) version 3 or any later version
+accepted by the membership of KDE e.V. (or its successor approved
+by the membership of KDE e.V.), which shall act as a proxy 
+defined in Section 14 of version 3 of the license.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "networkserialinterface.h"
+#include "solid/control/ifaces/networkcdmainterface.h"
+
+#include "dbus/generic-types.h"
+
+#ifndef NM07_NETWORKCDMAINTERFACE_H
+#define NM07_NETWORKCDMAINTERFACE_H
+
+class NMNetworkManager;
+class NMCdmaNetworkInterfacePrivate;
+
+class KDE_EXPORT NMCdmaNetworkInterface : public NMSerialNetworkInterface, virtual public Solid::Control::Ifaces::CdmaNetworkInterface
+{
+Q_OBJECT
+Q_DECLARE_PRIVATE(NMCdmaNetworkInterface)
+Q_INTERFACES(Solid::Control::Ifaces::CdmaNetworkInterface)
+public:
+    NMCdmaNetworkInterface(const QString & path, NMNetworkManager * manager, QObject * parent);
+    virtual ~NMCdmaNetworkInterface();
+public Q_SLOTS:
+    void cdmaPropertiesChanged(const QVariantMap & changedProperties);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/networkcdmainterface_p.h workspace/solid/networkmanager-0.7/networkcdmainterface_p.h
--- workspace.old//solid/networkmanager-0.7/networkcdmainterface_p.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkcdmainterface_p.h	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,34 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) version 3, or any
+later version accepted by the membership of KDE e.V. (or its
+successor approved by the membership of KDE e.V.), which shall
+act as a proxy defined in Section 6 of version 3 of the license.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public 
+License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef NETWORKCDMAINTERFACE_P_H
+#define NETWORKCDMAINTERFACE_P_H
+
+#include "networkserialinterface_p.h"
+#include "dbus/nm-device-cdmainterface.h"
+
+
+class NMCdmaNetworkInterfacePrivate : public NMSerialNetworkInterfacePrivate
+{
+public:
+    NMCdmaNetworkInterfacePrivate(const QString &path, QObject *owner);
+    OrgFreedesktopNetworkManagerDeviceCdmaInterface cdmaIface;
+};
+
+#endif // NETWORKCDMAINTERFACE_P_H
diff -urN workspace.old//solid/networkmanager-0.7/networkgsminterface.cpp workspace/solid/networkmanager-0.7/networkgsminterface.cpp
--- workspace.old//solid/networkmanager-0.7/networkgsminterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkgsminterface.cpp	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,53 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of
+the License or (at your option) version 3 or any later version
+accepted by the membership of KDE e.V. (or its successor approved
+by the membership of KDE e.V.), which shall act as a proxy 
+defined in Section 14 of version 3 of the license.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "networkgsminterface.h"
+
+#include <KDebug>
+
+#include "networkgsminterface_p.h"
+#include "manager.h"
+
+NMGsmNetworkInterfacePrivate::NMGsmNetworkInterfacePrivate(const QString & path, QObject * owner)
+    : NMSerialNetworkInterfacePrivate(path, owner), gsmIface(NMNetworkManager::DBUS_SERVICE, path, QDBusConnection::systemBus())
+{
+}
+
+NMGsmNetworkInterface::NMGsmNetworkInterface(const QString & path, NMNetworkManager * manager, QObject * parent)
+    : NMSerialNetworkInterface(*new NMGsmNetworkInterfacePrivate(path, this), manager, parent)
+{
+    Q_D(NMGsmNetworkInterface);
+    connect( &d->gsmIface, SIGNAL(PropertiesChanged(const QVariantMap &)),
+                this, SLOT(gsmPropertiesChanged(const QVariantMap &)));
+}
+
+NMGsmNetworkInterface::~NMGsmNetworkInterface()
+{
+
+}
+
+void NMGsmNetworkInterface::gsmPropertiesChanged(const QVariantMap & changedProperties)
+{
+    kDebug(1441) << changedProperties.keys();
+}
+
+#include "networkgsminterface.moc"
+
+// vim: sw=4 sts=4 et tw=100
diff -urN workspace.old//solid/networkmanager-0.7/networkgsminterface.h workspace/solid/networkmanager-0.7/networkgsminterface.h
--- workspace.old//solid/networkmanager-0.7/networkgsminterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkgsminterface.h	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,44 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of
+the License or (at your option) version 3 or any later version
+accepted by the membership of KDE e.V. (or its successor approved
+by the membership of KDE e.V.), which shall act as a proxy 
+defined in Section 14 of version 3 of the license.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "networkserialinterface.h"
+#include "solid/control/ifaces/networkgsminterface.h"
+
+#include "dbus/generic-types.h"
+
+#ifndef NM07_NETWORKGSMINTERFACE_H
+#define NM07_NETWORKGSMINTERFACE_H
+
+class NMNetworkManager;
+class NMGsmNetworkInterfacePrivate;
+
+class KDE_EXPORT NMGsmNetworkInterface : public NMSerialNetworkInterface, virtual public Solid::Control::Ifaces::GsmNetworkInterface
+{
+Q_OBJECT
+Q_DECLARE_PRIVATE(NMGsmNetworkInterface)
+Q_INTERFACES(Solid::Control::Ifaces::GsmNetworkInterface)
+public:
+    NMGsmNetworkInterface(const QString & path, NMNetworkManager * manager, QObject * parent);
+    virtual ~NMGsmNetworkInterface();
+public Q_SLOTS:
+    void gsmPropertiesChanged(const QVariantMap & changedProperties);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/networkgsminterface_p.h workspace/solid/networkmanager-0.7/networkgsminterface_p.h
--- workspace.old//solid/networkmanager-0.7/networkgsminterface_p.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkgsminterface_p.h	2008-10-20 23:04:30.000000000 +0200
@@ -0,0 +1,34 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) version 3, or any
+later version accepted by the membership of KDE e.V. (or its
+successor approved by the membership of KDE e.V.), which shall
+act as a proxy defined in Section 6 of version 3 of the license.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public 
+License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef NETWORKGSMINTERFACE_P_H
+#define NETWORKGSMINTERFACE_P_H
+
+#include "networkserialinterface_p.h"
+#include "dbus/nm-device-gsminterface.h"
+
+
+class NMGsmNetworkInterfacePrivate : public NMSerialNetworkInterfacePrivate
+{
+public:
+    NMGsmNetworkInterfacePrivate(const QString &path, QObject *owner);
+    OrgFreedesktopNetworkManagerDeviceGsmInterface gsmIface;
+};
+
+#endif // NETWORKGSMINTERFACE_P_H
diff -urN workspace.old//solid/networkmanager-0.7/networkinterface.cpp workspace/solid/networkmanager-0.7/networkinterface.cpp
--- workspace.old//solid/networkmanager-0.7/networkinterface.cpp	2008-06-17 08:33:48.000000000 +0200
+++ solid/networkmanager-0.7/networkinterface.cpp	2008-10-21 09:17:21.000000000 +0200
@@ -20,6 +20,9 @@
 
 #include "networkinterface.h"
 #include "networkinterface_p.h"
+
+#include <arpa/inet.h>
+
 #include <KDebug>
 
 #include "dbus/nm-ip4-configinterface.h"
@@ -61,6 +64,8 @@
 
 NMNetworkInterface::NMNetworkInterface(NMNetworkInterfacePrivate & dd, NMNetworkManager * manager, QObject * parent) : QObject(parent), d_ptr(&dd)
 {
+    qDBusRegisterMetaType<UIntList>();
+    qDBusRegisterMetaType<UIntListList>();
     Q_D(NMNetworkInterface);
     init();
     d->manager = manager;
@@ -72,7 +77,7 @@
     d->capabilities = convertCapabilities(d->deviceIface.capabilities());
     d->connectionState = convertState(d->deviceIface.state());
 
-    connect(&d->deviceIface, SIGNAL(StateChanged(uint)), this, SLOT(stateChanged(uint)));
+    connect(&d->deviceIface, SIGNAL(StateChanged(uint,uint,uint)), this, SLOT(stateChanged(uint,uint,uint)));
 }
 
 NMNetworkInterface::~NMNetworkInterface()
@@ -132,17 +137,27 @@
         QDBusObjectPath ipV4ConfigPath = d->deviceIface.ip4Config();
         OrgFreedesktopNetworkManagerIP4ConfigInterface iface(NMNetworkManager::DBUS_SERVICE, ipV4ConfigPath.path(), QDBusConnection::systemBus());
         if (iface.isValid()) {
+            //convert ipaddresses into object
             UIntListList addresses = iface.addresses();
             QList<Solid::Control::IPv4Address> addressObjects;
             foreach (UIntList addressList, addresses) {
                 if ( addressList.count() == 3 ) {
-                    Solid::Control::IPv4Address addr(addressList[0], addressList[1], addressList[2]);
+                    Solid::Control::IPv4Address addr(htonl(addressList[0]), htonl(addressList[1]), htonl(addressList[2]));
                     addressObjects.append(addr);
                 }
             }
-            return Solid::Control::IPv4Config(addressObjects, 0 /*broadcast*/,
-                    iface.hostname(), iface.nameservers(), iface.domains(),
-                    iface.nisDomain(), iface.nisServers());
+            //convert routes into objects
+            UIntListList routes = iface.routes();
+            QList<Solid::Control::IPv4Route> routeObjects;
+            foreach (UIntList routeList, routes) {
+                if ( routeList.count() == 4 ) {
+                    Solid::Control::IPv4Route addr(routeList[0], routeList[1], routeList[2], routeList[3]);
+                    routeObjects.append(addr);
+                }
+            }
+            return Solid::Control::IPv4Config(addressObjects,
+                    iface.nameservers(), iface.domains(),
+                    routeObjects);
         } else {
             return Solid::Control::IPv4Config();
         }
@@ -224,10 +239,11 @@
     return ourState;
 }
 
-void NMNetworkInterface::stateChanged(uint state)
+void NMNetworkInterface::stateChanged(uint new_state, uint old_state, uint reason)
 {
     Q_D(NMNetworkInterface);
-    d->connectionState = convertState(state);
+    d->connectionState = convertState(new_state);
+    emit connectionStateChanged(d->connectionState);
 }
 
 #include "networkinterface.moc"
diff -urN workspace.old//solid/networkmanager-0.7/networkinterface.h workspace/solid/networkmanager-0.7/networkinterface.h
--- workspace.old//solid/networkmanager-0.7/networkinterface.h	2008-06-08 18:54:53.000000000 +0200
+++ solid/networkmanager-0.7/networkinterface.h	2008-10-20 23:02:44.000000000 +0200
@@ -74,7 +74,7 @@
     //void linkUpChanged(bool linkActivated);
     void connectionStateChanged(int state);
 protected Q_SLOTS:
-    void stateChanged(uint);
+    void stateChanged(uint,uint,uint);
 private:
     void init();
     Solid::Control::NetworkInterface::Capabilities convertCapabilities(uint theirCaps);
diff -urN workspace.old//solid/networkmanager-0.7/networkserialinterface.cpp workspace/solid/networkmanager-0.7/networkserialinterface.cpp
--- workspace.old//solid/networkmanager-0.7/networkserialinterface.cpp	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkserialinterface.cpp	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,57 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of
+the License or (at your option) version 3 or any later version
+accepted by the membership of KDE e.V. (or its successor approved
+by the membership of KDE e.V.), which shall act as a proxy 
+defined in Section 14 of version 3 of the license.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "networkserialinterface.h"
+#include "networkserialinterface_p.h"
+#include "manager.h"
+
+NMSerialNetworkInterfacePrivate::NMSerialNetworkInterfacePrivate(const QString & path, QObject * owner)
+    : NMNetworkInterfacePrivate(path, owner), serialIface(NMNetworkManager::DBUS_SERVICE, path, QDBusConnection::systemBus())
+{
+}
+
+NMSerialNetworkInterface::NMSerialNetworkInterface(const QString & path, NMNetworkManager * manager, QObject * parent)
+    : NMNetworkInterface(*new NMSerialNetworkInterfacePrivate(path, this), manager, parent)
+{
+    initSerial();
+}
+
+void NMSerialNetworkInterface::initSerial()
+{
+    Q_D(NMSerialNetworkInterface);
+    connect( &d->serialIface, SIGNAL(PppStats(uint,uint)),
+                this, SIGNAL(pppStats(uint,uint)));
+}
+
+NMSerialNetworkInterface::NMSerialNetworkInterface(NMSerialNetworkInterfacePrivate & dd, NMNetworkManager * manager, QObject * parent) : NMNetworkInterface(dd, manager, parent)
+{
+    Q_D(NMSerialNetworkInterface);
+    d->manager = manager;
+    initSerial();
+}
+
+NMSerialNetworkInterface::~NMSerialNetworkInterface()
+{
+
+}
+
+#include "networkserialinterface.moc"
+
+// vim: sw=4 sts=4 et tw=100
diff -urN workspace.old//solid/networkmanager-0.7/networkserialinterface.h workspace/solid/networkmanager-0.7/networkserialinterface.h
--- workspace.old//solid/networkmanager-0.7/networkserialinterface.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkserialinterface.h	2008-10-20 23:04:31.000000000 +0200
@@ -0,0 +1,47 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of
+the License or (at your option) version 3 or any later version
+accepted by the membership of KDE e.V. (or its successor approved
+by the membership of KDE e.V.), which shall act as a proxy 
+defined in Section 14 of version 3 of the license.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "networkinterface.h"
+#include "solid/control/ifaces/networkserialinterface.h"
+
+#include "dbus/generic-types.h"
+
+#ifndef NM07_NETWORKSERIALINTERFACE_H
+#define NM07_NETWORKSERIALINTERFACE_H
+
+class NMNetworkManager;
+class NMSerialNetworkInterfacePrivate;
+
+class KDE_EXPORT NMSerialNetworkInterface : public NMNetworkInterface, virtual public Solid::Control::Ifaces::SerialNetworkInterface
+{
+Q_OBJECT
+Q_DECLARE_PRIVATE(NMSerialNetworkInterface)
+Q_INTERFACES(Solid::Control::Ifaces::SerialNetworkInterface)
+public:
+    NMSerialNetworkInterface(const QString & path, NMNetworkManager * manager, QObject * parent);
+    NMSerialNetworkInterface( NMSerialNetworkInterfacePrivate &dd, NMNetworkManager * manager, QObject * parent );
+    virtual ~NMSerialNetworkInterface();
+private:
+    void initSerial();
+signals:
+    void pppStats(uint in_bytes, uint out_bytes);
+};
+
+#endif
diff -urN workspace.old//solid/networkmanager-0.7/networkserialinterface_p.h workspace/solid/networkmanager-0.7/networkserialinterface_p.h
--- workspace.old//solid/networkmanager-0.7/networkserialinterface_p.h	1970-01-01 01:00:00.000000000 +0100
+++ solid/networkmanager-0.7/networkserialinterface_p.h	2008-10-20 23:04:30.000000000 +0200
@@ -0,0 +1,34 @@
+/*
+Copyright 2008 Will Stephenson <wstephenson@kde.org>
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) version 3, or any
+later version accepted by the membership of KDE e.V. (or its
+successor approved by the membership of KDE e.V.), which shall
+act as a proxy defined in Section 6 of version 3 of the license.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public 
+License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef NETWORKSERIALINTERFACE_P_H
+#define NETWORKSERIALINTERFACE_P_H
+
+#include "networkinterface_p.h"
+#include "dbus/nm-device-serialinterface.h"
+
+
+class NMSerialNetworkInterfacePrivate : public NMNetworkInterfacePrivate
+{
+public:
+    NMSerialNetworkInterfacePrivate(const QString &path, QObject *owner);
+    OrgFreedesktopNetworkManagerDeviceSerialInterface serialIface;
+};
+
+#endif // NETWORKSERIALINTERFACE_P_H
diff -urN workspace.old//solid/networkmanager-0.7/wirednetworkinterface.cpp workspace/solid/networkmanager-0.7/wirednetworkinterface.cpp
--- workspace.old//solid/networkmanager-0.7/wirednetworkinterface.cpp	2008-06-08 18:00:35.000000000 +0200
+++ solid/networkmanager-0.7/wirednetworkinterface.cpp	2008-10-20 23:04:52.000000000 +0200
@@ -104,7 +104,10 @@
         propKeys.removeOne(hwAddressKey);
     }
     if (propKeys.count()) {
-        kDebug(1441) << "Unhandled properties: " << propKeys;
+        kDebug(1441) << "Unhandled properties: ";
+        foreach (QString key, propKeys) {
+            kDebug(1441) << key << properties.value(key);
+        }
     }
 }
 
diff -urN workspace.old//solid/networkmanager-0.7/wirednetworkinterface_p.h workspace/solid/networkmanager-0.7/wirednetworkinterface_p.h
--- workspace.old//solid/networkmanager-0.7/wirednetworkinterface_p.h	2008-05-13 11:06:26.000000000 +0200
+++ solid/networkmanager-0.7/wirednetworkinterface_p.h	2008-10-20 23:02:06.000000000 +0200
@@ -22,7 +22,7 @@
 #define NM07_WIREDNETWORKINTERFACE_P_H
 
 #include "networkinterface_p.h"
-#include "dbus/nm-device-802-3-ethernetinterface.h"
+#include "dbus/nm-device-ethernetinterface.h"
 
 class NMWiredNetworkInterfacePrivate : public NMNetworkInterfacePrivate
 {
diff -urN workspace.old//solid/networkmanager-0.7/wirelessnetworkinterface.cpp workspace/solid/networkmanager-0.7/wirelessnetworkinterface.cpp
--- workspace.old//solid/networkmanager-0.7/wirelessnetworkinterface.cpp	2008-06-24 14:25:42.000000000 +0200
+++ solid/networkmanager-0.7/wirelessnetworkinterface.cpp	2008-10-27 15:57:36.000000000 +0100
@@ -55,6 +55,11 @@
 
     connect( &d->wirelessIface, SIGNAL(PropertiesChanged(const QVariantMap &)),
                 this, SLOT(wirelessPropertiesChanged(const QVariantMap &)));
+    connect( &d->wirelessIface, SIGNAL(AccessPointAdded(const QDBusObjectPath &)),
+                this, SLOT(accessPointAdded(const QDBusObjectPath &)));
+    connect( &d->wirelessIface, SIGNAL(AccessPointRemoved(const QDBusObjectPath &)),
+                this, SLOT(accessPointRemoved(const QDBusObjectPath &)));
+
 
     qDBusRegisterMetaType<QList<QDBusObjectPath> >();
     QDBusReply< QList <QDBusObjectPath> > apPathList = d->wirelessIface.GetAccessPoints();
@@ -165,8 +170,10 @@
 {
     kDebug(1441) << apPath.path();
     Q_D(NMWirelessNetworkInterface);
-    d->accessPoints.append(apPath.path());
-    emit accessPointAppeared(apPath.path());
+    if (!d->accessPoints.contains(apPath.path())) {
+        d->accessPoints.append(apPath.path());
+        emit accessPointAppeared(apPath.path());
+    }
 }
 
 void NMWirelessNetworkInterface::accessPointRemoved(const QDBusObjectPath &apPath)
diff -urN workspace.old//solid/networkmanager-0.7/wirelessnetworkinterface_p.h workspace/solid/networkmanager-0.7/wirelessnetworkinterface_p.h
--- workspace.old//solid/networkmanager-0.7/wirelessnetworkinterface_p.h	2008-06-08 14:09:46.000000000 +0200
+++ solid/networkmanager-0.7/wirelessnetworkinterface_p.h	2008-10-20 23:02:06.000000000 +0200
@@ -22,7 +22,7 @@
 #define NM07_WIRELESSNETWORKINTERFACE_P_H
 
 #include "networkinterface_p.h"
-#include "dbus/nm-device-802-11-wirelessinterface.h"
+#include "dbus/nm-device-wifiinterface.h"
 
 class NMWirelessNetworkInterfacePrivate : public NMNetworkInterfacePrivate
 {
openSUSE Build Service is sponsored by