diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dbus/qdbusserver.cpp | 25 | ||||
-rw-r--r-- | src/dbus/qdbusserver.h | 3 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/dbus/qdbusserver.cpp b/src/dbus/qdbusserver.cpp index 078f56aa61..6d97893235 100644 --- a/src/dbus/qdbusserver.cpp +++ b/src/dbus/qdbusserver.cpp @@ -82,6 +82,31 @@ QDBusServer::QDBusServer(const QString &address, QObject *parent) } /*! + Constructs a QDBusServer with the given \a parent. The server will listen + for connections in \c {/tmp}. +*/ +QDBusServer::QDBusServer(QObject *parent) + : QObject(parent) +{ + const QString address = QLatin1String("unix:tmpdir=/tmp"); + + if (!qdbus_loadLibDBus()) { + d = 0; + return; + } + d = new QDBusConnectionPrivate(this); + + QMutexLocker locker(&QDBusConnectionManager::instance()->mutex); + QDBusConnectionManager::instance()->setConnection(QLatin1String("QDBusServer-") + QString::number(reinterpret_cast<qulonglong>(d)), d); + + QObject::connect(d, SIGNAL(newServerConnection(QDBusConnection)), + this, SIGNAL(newConnection(QDBusConnection))); + + QDBusErrorInternal error; + d->setServer(q_dbus_server_listen(address.toUtf8().constData(), error), error); +} + +/*! Destructs a QDBusServer */ QDBusServer::~QDBusServer() diff --git a/src/dbus/qdbusserver.h b/src/dbus/qdbusserver.h index 900c652d37..b3ccebc505 100644 --- a/src/dbus/qdbusserver.h +++ b/src/dbus/qdbusserver.h @@ -61,7 +61,8 @@ class Q_DBUS_EXPORT QDBusServer: public QObject { Q_OBJECT public: - QDBusServer(const QString &address = "unix:tmpdir=/tmp", QObject *parent = 0); + explicit QDBusServer(const QString &address, QObject *parent = 0); + explicit QDBusServer(QObject *parent = 0); virtual ~QDBusServer(); bool isConnected() const; |