about summary refs log tree commit diff
path: root/examples/C/qt/add-connection-wired.cpp
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2011-05-04 21:35:41 +0200
committerMichael Biebl <biebl@debian.org>2011-05-04 21:35:41 +0200
commit9f806e97a24bba61417ae312fcc0da40914266fb (patch)
tree4a25723414ceac11b4cba0558aa16f6f4b459f4b /examples/C/qt/add-connection-wired.cpp
parent8baa1aca8dfd35e3190d7d5655eb83b5b901e263 (diff)
Imported Upstream version 0.8.999 upstream/0.8.999
Diffstat (limited to 'examples/C/qt/add-connection-wired.cpp')
-rw-r--r--examples/C/qt/add-connection-wired.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/examples/C/qt/add-connection-wired.cpp b/examples/C/qt/add-connection-wired.cpp
new file mode 100644
index 00000000..f9e3f6c1
--- /dev/null
+++ b/examples/C/qt/add-connection-wired.cpp
@@ -0,0 +1,75 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */

+/*

+ * 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) any later version.

+ *

+ * 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, write to the Free Software Foundation, Inc.,

+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

+ *

+ * (C) Copyright 2011 Eckhart Wörner

+ */

+

+/*

+ * The example shows how to call AddConnection() D-Bus method to add

+ * a connection to settings service using Qt and D-Bus.

+ */

+

+#include <QtCore/QUuid>

+#include <QtDBus/QDBusArgument>

+#include <QtDBus/QDBusConnection>

+#include <QtDBus/QDBusInterface>

+#include <QtDBus/QDBusMetaType>

+#include <QtDBus/QDBusReply>

+

+#include <QtCore/QDebug>

+

+#include "NetworkManager.h"

+

+typedef QMap<QString, QMap<QString, QVariant> > Connection;

+Q_DECLARE_METATYPE(Connection)

+

+

+void addConnection(QDBusInterface& interface, const QString& connectionName) {

+    qDBusRegisterMetaType<Connection>();

+

+    // Create a new connection object

+    Connection connection;

+

+    // Build up the 'connection' Setting

+    connection["connection"]["uuid"] = QUuid::createUuid().toString().remove('{').remove('}');

+    connection["connection"]["id"] = connectionName;

+    connection["connection"]["type"] = "802-3-ethernet";

+

+    // Build up the '802-3-ethernet' Setting

+    connection["802-3-ethernet"];

+

+    // Build up the 'ipv4' Setting

+    connection["ipv4"]["method"] = "auto";

+

+    // Call AddConnection

+    QDBusReply<QDBusObjectPath> result = interface.call("AddConnection", QVariant::fromValue(connection));

+    if (!result.isValid()) {

+        qDebug() << QString("Error adding connection: %1 %2").arg(result.error().name()).arg(result.error().message());

+    } else {

+        qDebug() << QString("Added: %1").arg(result.value().path());

+    }

+}

+

+int main() {

+    // Create a D-Bus proxy; NM_DBUS_* defined in NetworkManager.h

+    QDBusInterface interface(

+        NM_DBUS_SERVICE,

+        NM_DBUS_PATH_SETTINGS,

+        NM_DBUS_IFACE_SETTINGS,

+        QDBusConnection::systemBus());

+

+    addConnection(interface, "__Test connection__");

+}