forked from qt-creator/qt-creator
Use QtcProcess in QbsSession
Change-Id: I1220bb533e4d7aa0577860b750a7d97e2139bc20 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -35,12 +35,12 @@
|
|||||||
#include <projectexplorer/taskhub.h>
|
#include <projectexplorer/taskhub.h>
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
#include <utils/qtcprocess.h>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QEventLoop>
|
#include <QEventLoop>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
#include <QProcess>
|
|
||||||
#include <QProcessEnvironment>
|
#include <QProcessEnvironment>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ private:
|
|||||||
class QbsSession::Private
|
class QbsSession::Private
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QProcess *qbsProcess = nullptr;
|
QtcProcess *qbsProcess = nullptr;
|
||||||
PacketReader *packetReader = nullptr;
|
PacketReader *packetReader = nullptr;
|
||||||
QJsonObject currentRequest;
|
QJsonObject currentRequest;
|
||||||
QJsonObject projectData;
|
QJsonObject projectData;
|
||||||
@@ -167,18 +167,18 @@ QbsSession::QbsSession(QObject *parent) : QObject(parent), d(new Private)
|
|||||||
|
|
||||||
void QbsSession::initialize()
|
void QbsSession::initialize()
|
||||||
{
|
{
|
||||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
Environment env = Environment::systemEnvironment();
|
||||||
env.insert("QT_FORCE_STDERR_LOGGING", "1");
|
env.set("QT_FORCE_STDERR_LOGGING", "1");
|
||||||
d->packetReader = new PacketReader(this);
|
d->packetReader = new PacketReader(this);
|
||||||
d->qbsProcess = new QProcess(this);
|
d->qbsProcess = new QtcProcess(ProcessMode::Writer, this);
|
||||||
d->qbsProcess->setProcessEnvironment(env);
|
d->qbsProcess->setEnvironment(env);
|
||||||
connect(d->qbsProcess, &QProcess::readyReadStandardOutput, this, [this] {
|
connect(d->qbsProcess, &QtcProcess::readyReadStandardOutput, this, [this] {
|
||||||
d->packetReader->handleData(d->qbsProcess->readAllStandardOutput());
|
d->packetReader->handleData(d->qbsProcess->readAllStandardOutput());
|
||||||
});
|
});
|
||||||
connect(d->qbsProcess, &QProcess::readyReadStandardError, this, [this] {
|
connect(d->qbsProcess, &QtcProcess::readyReadStandardError, this, [this] {
|
||||||
qCDebug(qbsPmLog) << "[qbs stderr]: " << d->qbsProcess->readAllStandardError();
|
qCDebug(qbsPmLog) << "[qbs stderr]: " << d->qbsProcess->readAllStandardError();
|
||||||
});
|
});
|
||||||
connect(d->qbsProcess, &QProcess::errorOccurred, this, [this](QProcess::ProcessError e) {
|
connect(d->qbsProcess, &QtcProcess::errorOccurred, this, [this](QProcess::ProcessError e) {
|
||||||
d->eventLoop.exit(1);
|
d->eventLoop.exit(1);
|
||||||
if (state() == State::ShuttingDown || state() == State::Inactive)
|
if (state() == State::ShuttingDown || state() == State::Inactive)
|
||||||
return;
|
return;
|
||||||
@@ -196,8 +196,7 @@ void QbsSession::initialize()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(d->qbsProcess, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this,
|
connect(d->qbsProcess, &QtcProcess::finished, this, [this] {
|
||||||
[this] {
|
|
||||||
d->qbsProcess->deleteLater();
|
d->qbsProcess->deleteLater();
|
||||||
switch (state()) {
|
switch (state()) {
|
||||||
case State::Inactive:
|
case State::Inactive:
|
||||||
@@ -225,7 +224,8 @@ void QbsSession::initialize()
|
|||||||
QTimer::singleShot(0, this, [this] { setError(Error::QbsFailedToStart); });
|
QTimer::singleShot(0, this, [this] { setError(Error::QbsFailedToStart); });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
d->qbsProcess->start(qbsExe.toString(), {"session"});
|
d->qbsProcess->setCommand({qbsExe, {"session"}});
|
||||||
|
d->qbsProcess->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsSession::sendQuitPacket()
|
void QbsSession::sendQuitPacket()
|
||||||
|
Reference in New Issue
Block a user