diff options
author | Robert Griebl <robert.griebl@pelagicore.com> | 2019-01-22 17:58:02 +0100 |
---|---|---|
committer | Dominik Holland <dominik.holland@pelagicore.com> | 2019-03-14 09:58:47 +0000 |
commit | 4a7279159133241907ab68de7ec3295a7b0fe867 (patch) | |
tree | 90825e44784f6ad7e94518e9906fddc393f81f64 /src/dbus-lib | |
parent | 09f0e5808f039fc308e7d1f90dfb41c25383f040 (diff) | |
download | qtapplicationmanager-4a7279159133241907ab68de7ec3295a7b0fe867.tar.gz |
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 <kpalaraja@luxoft.com>
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Diffstat (limited to 'src/dbus-lib')
-rw-r--r-- | src/dbus-lib/dbusdaemon.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
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()); |