From 4a7279159133241907ab68de7ec3295a7b0fe867 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Tue, 22 Jan 2019 17:58:02 +0100 Subject: Better automatic dbus setup during development The default is now to always start a private session bus, unless explicitly configured otherwise. This solves 2 problems: 1) There's no difference between Linux and Mac/Win in regards to configuration default values 2) The 'notifications end up in the desktop environment' problems on Linux desktops cannot happen anymore with a default setup. The --start-session-dbus command line option is now the default and thus obsolete. Change-Id: Ib0487307668ba6d5edfb9c4b0daa5888d1e3b327 Reviewed-by: Kavindra Palaraja Reviewed-by: Dominik Holland --- src/dbus-lib/dbusdaemon.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/dbus-lib') diff --git a/src/dbus-lib/dbusdaemon.cpp b/src/dbus-lib/dbusdaemon.cpp index 7e9e04b6..94533c3e 100644 --- a/src/dbus-lib/dbusdaemon.cpp +++ b/src/dbus-lib/dbusdaemon.cpp @@ -71,6 +71,8 @@ DBusDaemonProcess::DBusDaemonProcess(QObject *parent) + QString::number(QCoreApplication::applicationPid()) + qSL("-session.bus"); arguments << address; +#elif defined(Q_OS_WIN) + arguments << qSL(" --address=tcp:host=localhost"); #endif setProgram(program); setArguments(arguments); @@ -95,6 +97,8 @@ void DBusDaemonProcess::start() Q_DECL_NOEXCEPT_EXPR(false) { static const int timeout = 10000 * int(timeoutFactor()); + qunsetenv("DBUS_SESSION_BUS_ADDRESS"); + auto dbusDaemon = new DBusDaemonProcess(qApp); dbusDaemon->QProcess::start(QIODevice::ReadOnly); if (!dbusDaemon->waitForStarted(timeout) || !dbusDaemon->waitForReadyRead(timeout)) { @@ -102,6 +106,7 @@ void DBusDaemonProcess::start() Q_DECL_NOEXCEPT_EXPR(false) .arg(dbusDaemon->program(), dbusDaemon->errorString()); } QByteArray busAddress = dbusDaemon->readAllStandardOutput().trimmed(); + qputenv("DBUS_SESSION_BUS_ADDRESS", busAddress); qCInfo(LogSystem, "NOTICE: running on private D-Bus session bus to avoid conflicts:"); qCInfo(LogSystem, " DBUS_SESSION_BUS_ADDRESS=%s", busAddress.constData()); -- cgit v1.2.1