5#include <QtQmlDom/private/qqmldom_utils_p.h>
11Q_STATIC_LOGGING_CATEGORY(
schedulerLog,
"qt.languageserver.qprocessscheduler")
16
17
18
19
20
21
22
23
24
25
28 QObject::connect(&m_process, &QProcess::finished,
this, &QProcessScheduler::processNext);
29 QObject::connect(&m_process, &QProcess::errorOccurred,
this,
30 &QProcessScheduler::onErrorOccurred);
34 QObject::disconnect(&m_process,
nullptr);
36 m_process.waitForFinished();
41 for (
const auto &x : list) {
42 const QueueElement queueElement{ x };
43 if (!m_queue.contains(queueElement))
44 m_queue.enqueue(queueElement);
53 m_isRunning = m_queue.size() > 0;
57 std::visit(qOverloadedVisitor{ [
this](
const Id &id) {
61 [
this](
const Command &command) {
62 m_process.setProgram(command.program);
63 m_process.setArguments(command.arguments);
64 m_process.setProcessEnvironment(command.customEnvironment);
74 qCDebug(schedulerLog) <<
"Process" << m_process.program() << m_process.arguments().join(
" "_L1)
75 <<
"had an error:" << error;
Runs multiple processes sequentially via a QProcess, and signals once they are done.