summaryrefslogtreecommitdiff
path: root/src/dbus-lib
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@pelagicore.com>2019-01-22 17:58:02 +0100
committerDominik Holland <dominik.holland@pelagicore.com>2019-03-14 09:58:47 +0000
commit4a7279159133241907ab68de7ec3295a7b0fe867 (patch)
tree90825e44784f6ad7e94518e9906fddc393f81f64 /src/dbus-lib
parent09f0e5808f039fc308e7d1f90dfb41c25383f040 (diff)
downloadqtapplicationmanager-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.cpp5
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());