From 1b2ca45e95b06e81c0373f7055f31042edcd5530 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sun, 13 Aug 2017 10:03:12 +0200 Subject: democompositor: Log process related events Use some lambda/closures to keep the process (which would be the sender()) and the appentry around. Change-Id: I2993d31e421a5e03c3b48abd8c1fe4026c4b2899 Reviewed-by: Paul Olav Tvete --- wayland/democompositor/processlauncher.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'wayland') diff --git a/wayland/democompositor/processlauncher.cpp b/wayland/democompositor/processlauncher.cpp index f0e465e..40b3b8b 100644 --- a/wayland/democompositor/processlauncher.cpp +++ b/wayland/democompositor/processlauncher.cpp @@ -69,9 +69,22 @@ void WaylandProcessLauncher::launch(const AppEntry &entry) qCDebug(procs) << "Launching" << entry.executableName; QProcess *process = new QProcess(this); + + /* handle potential errors and life cycle */ connect(process, static_cast(&QProcess::finished), - process, &QProcess::deleteLater); - connect(process, &QProcess::errorOccurred, &QProcess::deleteLater); + [process, entry](int exitCode, QProcess::ExitStatus status) { + qCDebug(procs) << "AppEntry finished" << entry.executableName << exitCode << status; + process->deleteLater(); + }); + connect(process, &QProcess::errorOccurred, + [process, entry](QProcess::ProcessError err) { + qCDebug(procs) << "AppEntry error occurred" << entry.executableName << err; + process->deleteLater(); + }); + connect(process, &QProcess::started, + [process, entry]() { + qCDebug(procs) << "AppEntry started" << entry.executableName; + }); if (!entry.executablePath.isNull()) { auto env = QProcessEnvironment::systemEnvironment(); -- cgit v1.2.3