summaryrefslogtreecommitdiff
path: root/src/dbus/doc
diff options
context:
space:
mode:
authorNico Vertriest <nico.vertriest@qt.io>2020-05-28 15:03:37 +0200
committerTopi Reinio <topi.reinio@qt.io>2020-07-02 05:49:32 +0200
commit05b60631a2cb5c5536490509ed5d41c08a967dc5 (patch)
treebb8602091d59cf2c4d04284522f22fcafb09ff6c /src/dbus/doc
parentc513b1214e38829e9bc23bb2ef948f5c388071a7 (diff)
downloadqtbase-05b60631a2cb5c5536490509ed5d41c08a967dc5.tar.gz
Doc: Make dbus snippets compilable
Task-number: QTBUG-84470 Change-Id: Idfe86ae0f38e43678cc5e746e30e5eeaf8eb72dc Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
Diffstat (limited to 'src/dbus/doc')
-rw-r--r--src/dbus/doc/snippets/code/doc_src_qdbusadaptors.cpp8
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp37
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbusargument.cpp196
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbuscontext.cpp10
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbusinterface.cpp5
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbusmetatype.cpp13
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbuspendingcall.cpp29
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbuspendingreply.cpp37
-rw-r--r--src/dbus/doc/snippets/code/src_qdbus_qdbusreply.cpp28
-rw-r--r--src/dbus/doc/snippets/snippets.pro16
10 files changed, 321 insertions, 58 deletions
diff --git a/src/dbus/doc/snippets/code/doc_src_qdbusadaptors.cpp b/src/dbus/doc/snippets/code/doc_src_qdbusadaptors.cpp
index f5d9fe7889..d5de866ae0 100644
--- a/src/dbus/doc/snippets/code/doc_src_qdbusadaptors.cpp
+++ b/src/dbus/doc/snippets/code/doc_src_qdbusadaptors.cpp
@@ -47,6 +47,12 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#include <QString>
+#include <QDBusMessage>
+#include <QDBusConnection>
+
+struct RequestData;
+void appendRequest(RequestData *) {}; // stub
//! [10]
struct RequestData
@@ -73,7 +79,7 @@ QString processRequest(const QString &request, const QDBusMessage &message)
void sendReply(RequestData *data)
{
// data->processedData has been initialized with the request's reply
- QDBusMessage &reply = &data->reply;
+ QDBusMessage &reply = data->reply;
// send the reply over D-Bus:
reply << data->processedData;
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp
index b70cdf3455..e8fb8c81fb 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp
@@ -48,6 +48,35 @@
**
****************************************************************************/
+#include <QString>
+#include <QDBusMessage>
+#include <QDBusReply>
+#include <QDBusInterface>
+
+class Abstract_DBus_Interface : public QObject
+{
+ Q_OBJECT
+
+public:
+ Abstract_DBus_Interface(QObject *parent = nullptr)
+ : QObject(parent) {
+ interface = new QDBusInterface("org.example.Interface", "/Example/Methods");
+ }
+
+ ~Abstract_DBus_Interface() { delete interface; }
+ void interfaceMain();
+ void asyncCall();
+ QString retrieveValue() { return QString(); }
+
+public slots:
+ void callFinishedSlot();
+
+private:
+ QDBusInterface *interface;
+};
+
+void Abstract_DBus_Interface::interfaceMain()
+{
//! [0]
QString value = retrieveValue();
QDBusMessage reply;
@@ -58,13 +87,17 @@ if (api >= 14)
else
reply = interface->call(QLatin1String("ProcessWork"), QLatin1String("UTF-8"), value.toUtf8());
//! [0]
+}
+void Abstract_DBus_Interface::asyncCall()
+{
//! [1]
QString value = retrieveValue();
QDBusPendingCall pcall = interface->asyncCall(QLatin1String("Process"), value);
-QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall, this);
+QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall);
QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
- this, SLOT(callFinishedSlot(QDBusPendingCallWatcher*)));
+ this, SLOT(callFinishedSlot(QDBusPendingCallWatcher*)));
//! [1]
+}
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbusargument.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbusargument.cpp
index b64ea5cf21..7eb1e8b34e 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbusargument.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbusargument.cpp
@@ -48,99 +48,205 @@
**
****************************************************************************/
-//! [0]
+#include <QString>
+#include <QDBusArgument>
+#include <QDBusMetaType>
+#include <QDBusMessage>
+#include <QDBusContext>
+
+typedef QDBusVariant MyElement;
+typedef QList<MyElement> MyArray;
+typedef QHash<int, MyElement> MyDictionary;
+typedef QDBusVariant MyType;
+typedef QDBusVariant MyValue;
+typedef QDBusVariant Type;
+QDBusArgument argument;
+
+class MyObject: public QObject
+{
+ Q_OBJECT
+
+ Q_CLASSINFO("D-Bus Interface", "org.qtproject.QtDBus.MyObject")
+ Q_CLASSINFO("D-Bus Introspection", ""
+" <interface name=\"org.qtproject.QtDBus.MyObject\" >\n"
+" <property access=\"readwrite\" type=\"i\" name=\"prop1\" />\n"
+" <property name=\"complexProp\" type=\"ai\" access=\"readwrite\">\n"
+" <annotation name=\"org.qtproject.QtDBus.QtTypeName\" value=\"QList&lt;int&gt;\"/>\n"
+" </property>\n"
+" <signal name=\"somethingHappened\" >\n"
+" <arg direction=\"out\" type=\"s\" />\n"
+" </signal>\n"
+" <method name=\"ping\" >\n"
+" <arg direction=\"in\" type=\"v\" name=\"ping\" />\n"
+" <arg direction=\"out\" type=\"v\" name=\"ping\" />\n"
+" </method>\n"
+" <method name=\"ping_invokable\" >\n"
+" <arg direction=\"in\" type=\"v\" name=\"ping_invokable\" />\n"
+" <arg direction=\"out\" type=\"v\" name=\"ping_invokable\" />\n"
+" </method>\n"
+" <method name=\"ping\" >\n"
+" <arg direction=\"in\" type=\"v\" name=\"ping1\" />\n"
+" <arg direction=\"in\" type=\"v\" name=\"ping2\" />\n"
+" <arg direction=\"out\" type=\"v\" name=\"pong1\" />\n"
+" <arg direction=\"out\" type=\"v\" name=\"pong2\" />\n"
+" </method>\n"
+" <method name=\"ping_invokable\" >\n"
+" <arg direction=\"in\" type=\"v\" name=\"ping1_invokable\" />\n"
+" <arg direction=\"in\" type=\"v\" name=\"ping2_invokable\" />\n"
+" <arg direction=\"out\" type=\"v\" name=\"pong1_invokable\" />\n"
+" <arg direction=\"out\" type=\"v\" name=\"pong2_invokable\" />\n"
+" </method>\n"
+" <method name=\"ping\" >\n"
+" <arg direction=\"in\" type=\"ai\" name=\"ping\" />\n"
+" <arg direction=\"out\" type=\"ai\" name=\"ping\" />\n"
+" <annotation name=\"org.qtproject.QtDBus.QtTypeName.In0\" value=\"QList&lt;int&gt;\"/>\n"
+" <annotation name=\"org.qtproject.QtDBus.QtTypeName.Out0\" value=\"QList&lt;int&gt;\"/>\n"
+" </method>\n"
+" <method name=\"ping_invokable\" >\n"
+" <arg direction=\"in\" type=\"ai\" name=\"ping_invokable\" />\n"
+" <arg direction=\"out\" type=\"ai\" name=\"ping_invokable\" />\n"
+" <annotation name=\"org.qtproject.QtDBus.QtTypeName.In0\" value=\"QList&lt;int&gt;\"/>\n"
+" <annotation name=\"org.qtproject.QtDBus.QtTypeName.Out0\" value=\"QList&lt;int&gt;\"/>\n"
+" </method>\n"
+" </interface>\n"
+ "")
+ Q_PROPERTY(int prop1 READ prop1 WRITE setProp1)
+ Q_PROPERTY(QList<int> complexProp READ complexProp WRITE setComplexProp)
+
+public:
+ static int callCount;
+ static QVariantList callArgs;
+ MyObject()
+ {
+ QObject *subObject = new QObject(this);
+ subObject->setObjectName("subObject");
+ }
+};
+
+struct MyMember
+{
+ int subMember1;
+ int subMember2;
+};
+
+//! [0-0]
struct MyStructure
{
int count;
QString name;
+//! [0-0]
+ MyMember member1;
+ MyMember member2;
+ MyMember member3;
+ MyMember member4;
+//! [0-1]
+ // ...
};
Q_DECLARE_METATYPE(MyStructure)
// Marshall the MyStructure data into a D-Bus argument
-QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
+QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
argument.beginStructure();
- argument << mystruct.count << mystruct.name;
+ argument << myStruct.count << myStruct.name;
argument.endStructure();
return argument;
}
// Retrieve the MyStructure data from the D-Bus argument
-const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &mystruct)
+const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct)
{
argument.beginStructure();
- argument >> mystruct.count >> mystruct.name;
+ argument >> myStruct.count >> myStruct.name;
argument.endStructure();
return argument;
}
-//! [0]
+//! [0-1]
+const QDBusArgument &operator<<(const QDBusArgument &argument, const MyMember &/*member*/)
+{
+ return argument;
+}
+const QDBusArgument &operator>>(const QDBusArgument &argument, const MyMember &/*member*/)
+{
+ return argument;
+}
+
+void registerMyStructure()
+{
//! [1]
qDBusRegisterMetaType<MyStructure>();
//! [1]
+}
-
+void castType()
+{
+QVariant argument = MyObject::callArgs.at(0);
+QDBusVariant dv = qdbus_cast<QDBusVariant>(argument);
//! [2]
MyType item = qdbus_cast<Type>(argument);
//! [2]
+}
-
+void argumentItem()
+{
//! [3]
MyType item;
argument >> item;
//! [3]
-
-
+}
+namespace QDBusSnippets
+{
//! [4]
-QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
+QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
argument.beginStructure();
- argument << mystruct.member1 << mystruct.member2 << ... ;
+ argument << myStruct.member1 << myStruct.member2;
argument.endStructure();
return argument;
}
//! [4]
-
+namespace Alt {
//! [5]
-QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
+QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
argument.beginStructure();
- argument << mystruct.member1 << mystruct.member2;
+ argument << myStruct.member1 << myStruct.member2;
argument.beginStructure();
- argument << mystruct.member3.subMember1 << mystruct.member3.subMember2;
+ argument << myStruct.member3.subMember1 << myStruct.member3.subMember2;
argument.endStructure();
- argument << mystruct.member4;
+ argument << myStruct.member4;
argument.endStructure();
return argument;
}
//! [5]
-
+} // namespace
//! [6]
-// append an array of MyElement types
-QDBusArgument &operator<<(QDBusArgument &argument, const MyArray &myarray)
+// Append an array of MyElement types
+QDBusArgument &operator<<(QDBusArgument &argument, const MyArray &myArray)
{
- argument.beginArray( qMetaTypeId<MyElement>() );
- for ( int i = 0; i < myarray.length; ++i )
- argument << myarray.elements[i];
+ argument.beginArray(qMetaTypeId<MyElement>());
+ for (const auto &element : myArray)
+ argument << element;
argument.endArray();
return argument;
}
//! [6]
-
//! [7]
-// append a dictionary that associates ints to MyValue types
-QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &mydict)
+// Append a dictionary that associates ints to MyValue types
+QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &myDict)
{
- argument.beginMap( QVariant::Int, qMetaTypeId<MyValue>() );
- for ( int i = 0; i < mydict.length; ++i ) {
+ argument.beginMap(QVariant::Int, qMetaTypeId<MyValue>());
+ MyDictionary::const_iterator i;
+ for (i = myDict.cbegin(); i != myDict.cend(); ++i) {
argument.beginMapEntry();
- argument << mydict.data[i].key << mydict.data[i].value;
+ argument << i.key() << i.value();
argument.endMapEntry();
}
argument.endMap();
@@ -148,29 +254,27 @@ QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &mydict)
}
//! [7]
-
//! [8]
-const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &mystruct)
+const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct)
{
- argument.beginStructure()
- argument >> mystruct.member1 >> mystruct.member2 >> mystruct.member3 >> ...;
+ argument.beginStructure();
+ argument >> myStruct.member1 >> myStruct.member2 >> myStruct.member3;
argument.endStructure();
return argument;
}
//! [8]
-
//! [9]
-// extract a MyArray array of MyElement elements
-const QDBusArgument &operator>>(const QDBusArgument &argument, MyArray &myarray)
+// Extract a MyArray array of MyElement elements
+const QDBusArgument &operator>>(const QDBusArgument &argument, MyArray &myArray)
{
argument.beginArray();
- myarray.clear();
+ myArray.clear();
- while ( !argument.atEnd() ) {
+ while (!argument.atEnd()) {
MyElement element;
argument >> element;
- myarray.append( element );
+ myArray.append(element);
}
argument.endArray();
@@ -178,24 +282,24 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, MyArray &myarray)
}
//! [9]
-
//! [10]
-// extract a MyDictionary map that associates ints to MyValue elements
-const QDBusArgument &operator>>(const QDBusArgument &argument, MyDictionary &mydict)
+// Extract a MyDictionary map that associates integers to MyElement items
+const QDBusArgument &operator>>(const QDBusArgument &argument, MyDictionary &myDict)
{
argument.beginMap();
- mydict.clear();
+ myDict.clear();
- while ( !argument.atEnd() ) {
+ while (!argument.atEnd()) {
int key;
- MyValue value;
+ MyElement value;
argument.beginMapEntry();
argument >> key >> value;
argument.endMapEntry();
- mydict.append( key, value );
+ myDict.insert(key, value);
}
argument.endMap();
return argument;
}
//! [10]
+}
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbuscontext.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbuscontext.cpp
index dd49e004c5..901b29e205 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbuscontext.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbuscontext.cpp
@@ -48,15 +48,23 @@
**
****************************************************************************/
+#include <QString>
+#include <QDBusConnection>
+#include <QDBusArgument>
+#include <QDBusMetaType>
+#include <QDBusMessage>
+#include <QDBusContext>
+
//! [0]
class MyObject: public QObject,
protected QDBusContext
{
Q_OBJECT
+
QDBusConnection conn;
QDBusMessage msg;
-...
+ //...
protected slots:
void process();
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbusinterface.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbusinterface.cpp
index a9c1fdfe6d..d08ced6ece 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbusinterface.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbusinterface.cpp
@@ -47,7 +47,11 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#include <QDBusInterface>
+#include <QDBusReply>
+void DBusInterface_main()
+{
//! [0]
QDBusInterface remoteApp( "com.example.Calculator", "/Calculator/Operations",
"org.mathematics.RPNCalculator" );
@@ -59,3 +63,4 @@ QDBusReply<int> reply = remoteApp.call( "PopOperand" );
if ( reply.isValid() )
printf( "%d", reply.value() ); // prints 4
//! [0]
+}
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbusmetatype.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbusmetatype.cpp
index bc90f118c9..e295358b60 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbusmetatype.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbusmetatype.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
@@ -48,7 +48,14 @@
**
****************************************************************************/
-//! [0]
+#include <QtCore/qlist.h>
+typedef QList<QString> MyClass;
+
+//! [0-0]
#include <QDBusMetaType>
+//! [0-0]
+void dbus() {
+//! [0-1]
qDBusRegisterMetaType<MyClass>();
-//! [0]
+//! [0-1]
+}
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingcall.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingcall.cpp
index 9552054a5e..d75a19b62f 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingcall.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingcall.cpp
@@ -47,7 +47,34 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#include <QDBusPendingCall>
+#include <QDBusInterface>
+#include <QDBusPendingReply>
+class DBus_PendingCall_Interface : public QObject
+{
+ Q_OBJECT
+
+public:
+ DBus_PendingCall_Interface(QObject *parent = nullptr)
+ : QObject(parent) {
+ iface = new QDBusInterface("org.example.Interface", "/Example/Methods");
+ }
+
+ ~DBus_PendingCall_Interface() { delete iface; }
+ void callInterfaceMain();
+ void showError();
+ void showReply(QString&, QByteArray&);
+ QString value1;
+ QString value2;
+ void callFinishedSlot(QDBusPendingCallWatcher *call);
+public slots:
+
+private:
+ QDBusInterface *iface;
+};
+
+void DBus_PendingCall_Interface::callInterfaceMain()
{
//! [0]
QDBusPendingCall async = iface->asyncCall("RemoteMethod", value1, value2);
@@ -60,7 +87,7 @@
}
//! [1]
-void MyClass::callFinishedSlot(QDBusPendingCallWatcher *call)
+void DBus_PendingCall_Interface::callFinishedSlot(QDBusPendingCallWatcher *call)
{
QDBusPendingReply<QString, QByteArray> reply = *call;
if (reply.isError()) {
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingreply.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingreply.cpp
index 7e6ee55b8a..9a37e7bb09 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingreply.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbuspendingreply.cpp
@@ -47,21 +47,52 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#include <QDBusPendingCall>
+#include <QDBusInterface>
+#include <QDBusPendingReply>
+class DBus_PendingReply_Interface : public QObject
+{
+ Q_OBJECT
+
+public:
+ DBus_PendingReply_Interface(QObject *parent = nullptr)
+ : QObject(parent) {
+ iface = new QDBusInterface("org.example.Interface", "/Example/Methods");
+ }
+
+ ~DBus_PendingReply_Interface() { delete iface; }
+ void callInterfaceMainR();
+ void PendingReplyString();
+ void PendingReplyBool();
+ void showErrorD(QDBusError);
+ void showSuccess(QVariant);
+ void showFailure(QVariant);
+ void useValue(QDBusPendingReplyTypes::Select<0, QString, void, void, void, void, void, void, void>::Type);
+public slots:
+
+private:
+ QDBusInterface *iface;
+};
+
+void DBus_PendingReply_Interface::PendingReplyString()
{
//! [0]
- QDBusPendingReply<QString> reply = interface->asyncCall("RemoteMethod");
+ QDBusPendingReply<QString> reply = iface->asyncCall("RemoteMethod");
reply.waitForFinished();
if (reply.isError())
// call failed. Show an error condition.
- showError(reply.error());
+ showErrorD(reply.error());
else
// use the returned value
useValue(reply.value());
//! [0]
+}
+void DBus_PendingReply_Interface::PendingReplyBool()
+{
//! [2]
- QDBusPendingReply<bool, QString> reply = interface->asyncCall("RemoteMethod");
+ QDBusPendingReply<bool, QString> reply = iface->asyncCall("RemoteMethod");
reply.waitForFinished();
if (!reply.isError()) {
if (reply.argumentAt<0>())
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbusreply.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbusreply.cpp
index 1490cbb127..30bd422d2c 100644
--- a/src/dbus/doc/snippets/code/src_qdbus_qdbusreply.cpp
+++ b/src/dbus/doc/snippets/code/src_qdbus_qdbusreply.cpp
@@ -47,7 +47,32 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#include <QDBusPendingCall>
+#include <QDBusInterface>
+#include <QDBusPendingReply>
+#include <QDBusReply>
+class DBus_Process_String_Interface : public QObject
+{
+ Q_OBJECT
+
+public:
+ DBus_Process_String_Interface(QObject *parent = nullptr)
+ : QObject(parent) {
+ interface = new QDBusInterface("org.example.Interface", "/Example/Methods");
+ }
+
+ ~DBus_Process_String_Interface() { delete interface; }
+ void QDBus_reply();
+ void useValue(QVariant);
+ void showError(const QDBusError&);
+public slots:
+
+private:
+ QDBusInterface *interface;
+};
+void DBus_Process_String_Interface::QDBus_reply()
+{
//! [0]
QDBusReply<QString> reply = interface->call("RemoteMethod");
if (reply.isValid())
@@ -60,5 +85,6 @@ else
//! [1]
-QString reply = interface->call("RemoteMethod");
+reply = interface->call("RemoteMethod");
//! [1]
+}
diff --git a/src/dbus/doc/snippets/snippets.pro b/src/dbus/doc/snippets/snippets.pro
index 6c3b57fec9..0447c3e2d8 100644
--- a/src/dbus/doc/snippets/snippets.pro
+++ b/src/dbus/doc/snippets/snippets.pro
@@ -1,3 +1,19 @@
#! [qmake_use]
QT += dbus
#! [qmake_use]
+TEMPLATE = lib
+
+TARGET = qtdbus_snippets
+
+QT += core dbus xml
+load(qt_common)
+
+SOURCES += code/src_qdbus_qdbusabstractinterface.cpp \
+ code/src_qdbus_qdbusinterface.cpp \
+ code/src_qdbus_qdbuspendingcall.cpp \
+ code/src_qdbus_qdbuspendingreply.cpp \
+ code/src_qdbus_qdbusreply.cpp \
+ code/doc_src_qdbusadaptors.cpp \
+ code/src_qdbus_qdbusargument.cpp \
+ code/src_qdbus_qdbuscontext.cpp \
+ code/src_qdbus_qdbusmetatype.cpp