Readability

No need to instantiate a process
Properly warn when something didn't work
wilder-5.14
Aleix Pol 8 years ago
parent e3b3e03992
commit 0cc0c32c25
  1. 13
      ksmserver/startup.cpp

@ -677,20 +677,15 @@ void KSMServer::slotAutoStart()
return; return;
} }
KService service(serviceName); KService service(serviceName);
qCInfo(KSMSERVER) << "Starting autostart service " << serviceName;
auto p = new KProcess(this);
auto arguments = KIO::DesktopExecParser(service, QList<QUrl>()).resultingArguments(); auto arguments = KIO::DesktopExecParser(service, QList<QUrl>()).resultingArguments();
if (arguments.isEmpty()) { if (arguments.isEmpty()) {
qCInfo(KSMSERVER) << "failed to parse" << serviceName << "for autostart"; qCWarning(KSMSERVER) << "failed to parse" << serviceName << "for autostart";
continue; continue;
} }
qCInfo(KSMSERVER) << "Starting autostart service " << serviceName << arguments;
auto program = arguments.takeFirst(); auto program = arguments.takeFirst();
p->setProgram(program, arguments); if (!QProcess::startDetached(program, arguments))
p->start(); qCWarning(KSMSERVER) << "could not start" << serviceName << ":" << program << arguments;
connect(p, static_cast<void (QProcess::*)(int)>(&QProcess::finished), [p](int exitCode) {
qCInfo(KSMSERVER) << "autostart service" << p->program() << "finished with exit code " << exitCode;
p->deleteLater();
});
} while (true); } while (true);
// Loop till we find a service that we can start. // Loop till we find a service that we can start.
} }

Loading…
Cancel
Save