summaryrefslogtreecommitdiffstats
path: root/src/dbus
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-12-29 16:37:38 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-12-29 16:37:38 +0100
commitaaff94c2df665035addb90714bab4722003894da (patch)
tree3af76e8aa4dbf86a86b1e4d2ad2f6dda06374ee0 /src/dbus
parent2302d386c7a1aa1a96658f79c236d6b8a59db7ac (diff)
parent1196f691120d77ab3be55f21824aba645210fb8c (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts: src/corelib/tools/qbytearray.cpp src/gui/kernel/qplatformsystemtrayicon.cpp src/gui/kernel/qplatformsystemtrayicon.h src/plugins/platforms/xcb/xcb-plugin.pro Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
Diffstat (limited to 'src/dbus')
-rw-r--r--src/dbus/doc/src/qtdbus-module.qdoc4
-rw-r--r--src/dbus/qdbus_symbols.cpp25
-rw-r--r--src/dbus/qdbusserver.cpp12
3 files changed, 31 insertions, 10 deletions
diff --git a/src/dbus/doc/src/qtdbus-module.qdoc b/src/dbus/doc/src/qtdbus-module.qdoc
index ac9cac428b..cd9365aac8 100644
--- a/src/dbus/doc/src/qtdbus-module.qdoc
+++ b/src/dbus/doc/src/qtdbus-module.qdoc
@@ -29,7 +29,7 @@
\module QtDBus
\title Qt D-Bus C++ Classes
\brief The Qt D-Bus module is a Unix-only library that you can use
- to perform Inter-Process Communication using the \l{D-Bus} protocol.
+ to perform Inter-Process Communication using the \l{Qt D-Bus}{D-Bus} protocol.
\ingroup modules
\qtvariable dbus
@@ -61,6 +61,6 @@
directory. When installing Qt from source, this module is built when Qt's
tools are built.
- See the \l {D-Bus} page for detailed information on
+ See the \l {Qt D-Bus}{D-Bus} page for detailed information on
how to use this module.
*/
diff --git a/src/dbus/qdbus_symbols.cpp b/src/dbus/qdbus_symbols.cpp
index 8c642c8887..e475a23f48 100644
--- a/src/dbus/qdbus_symbols.cpp
+++ b/src/dbus/qdbus_symbols.cpp
@@ -84,14 +84,29 @@ bool qdbus_loadLibDBus()
triedToLoadLibrary = true;
static int majorversions[] = { 3, 2, -1 };
+ const QString baseNames[] = {
+#ifdef Q_OS_WIN
+ QStringLiteral("dbus-1"),
+#endif
+ QStringLiteral("libdbus-1")
+ };
+
lib->unload();
- lib->setFileName(QLatin1String("dbus-1"));
for (uint i = 0; i < sizeof(majorversions) / sizeof(majorversions[0]); ++i) {
- lib->setFileNameAndVersion(lib->fileName(), majorversions[i]);
- if (lib->load() && lib->resolve("dbus_connection_open_private"))
- return true;
+ for (uint j = 0; j < sizeof(baseNames) / sizeof(baseNames[0]); ++j) {
+#ifdef Q_OS_WIN
+ QString suffix;
+ if (majorversions[i] != -1)
+ suffix = QString::number(- majorversions[i]); // negative so it prepends the dash
+ lib->setFileName(baseNames[j] + suffix);
+#else
+ lib->setFileNameAndVersion(baseNames[j], majorversions[i]);
+#endif
+ if (lib->load() && lib->resolve("dbus_connection_open_private"))
+ return true;
- lib->unload();
+ lib->unload();
+ }
}
delete lib;
diff --git a/src/dbus/qdbusserver.cpp b/src/dbus/qdbusserver.cpp
index f2f4872aa0..54b38ee848 100644
--- a/src/dbus/qdbusserver.cpp
+++ b/src/dbus/qdbusserver.cpp
@@ -72,12 +72,18 @@ QDBusServer::QDBusServer(const QString &address, QObject *parent)
/*!
Constructs a QDBusServer with the given \a parent. The server will listen
- for connections in \c {/tmp}.
+ for connections in \c {/tmp} (on Unix systems) or on a TCP port bound to
+ localhost (elsewhere).
*/
QDBusServer::QDBusServer(QObject *parent)
: QObject(parent)
{
- const QString address = QLatin1String("unix:tmpdir=/tmp");
+#ifdef Q_OS_UNIX
+ // Use Unix sockets on Unix systems only
+ static const char address[] = "unix:tmpdir=/tmp";
+#else
+ static const char address[] = "tcp:";
+#endif
if (!qdbus_loadLibDBus()) {
d = 0;
@@ -89,7 +95,7 @@ QDBusServer::QDBusServer(QObject *parent)
this, SIGNAL(newConnection(QDBusConnection)));
QDBusErrorInternal error;
- d->setServer(q_dbus_server_listen(address.toUtf8().constData(), error), error);
+ d->setServer(q_dbus_server_listen(address, error), error);
}
/*!