forked from qt-creator/qt-creator
Reuse ProcessSetupData in CallerHandle
Change-Id: I4a2d3fef15331343e7763149550280b722fc3781 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -215,7 +215,7 @@ void CallerHandle::handleError(const ErrorSignal *launcherSignal)
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_processState = QProcess::NotRunning;
|
||||
m_error = launcherSignal->error();
|
||||
m_errorString = launcherSignal->errorString();
|
||||
m_setup.m_errorString = launcherSignal->errorString();
|
||||
if (m_error == QProcess::FailedToStart)
|
||||
m_exitCode = 255; // This code is being returned by QProcess when FailedToStart error occurred
|
||||
emit errorOccurred(m_error);
|
||||
@@ -232,16 +232,16 @@ void CallerHandle::handleStarted(const StartedSignal *launcherSignal)
|
||||
void CallerHandle::handleReadyRead(const ReadyReadSignal *launcherSignal)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
if (m_channelMode == QProcess::ForwardedOutputChannel
|
||||
|| m_channelMode == QProcess::ForwardedChannels) {
|
||||
if (m_setup.m_processChannelMode == QProcess::ForwardedOutputChannel
|
||||
|| m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
|
||||
std::cout << launcherSignal->stdOut().constData();
|
||||
} else {
|
||||
m_stdout += launcherSignal->stdOut();
|
||||
if (!m_stdout.isEmpty())
|
||||
emit readyReadStandardOutput();
|
||||
}
|
||||
if (m_channelMode == QProcess::ForwardedErrorChannel
|
||||
|| m_channelMode == QProcess::ForwardedChannels) {
|
||||
if (m_setup.m_processChannelMode == QProcess::ForwardedErrorChannel
|
||||
|| m_setup.m_processChannelMode == QProcess::ForwardedChannels) {
|
||||
std::cerr << launcherSignal->stdErr().constData();
|
||||
} else {
|
||||
m_stderr += launcherSignal->stdErr();
|
||||
@@ -293,8 +293,8 @@ void CallerHandle::cancel()
|
||||
case QProcess::NotRunning:
|
||||
break;
|
||||
case QProcess::Starting:
|
||||
m_errorString = QCoreApplication::translate("Utils::LauncherHandle",
|
||||
"Process was canceled before it was started.");
|
||||
m_setup.m_errorString = QCoreApplication::translate("Utils::LauncherHandle",
|
||||
"Process was canceled before it was started.");
|
||||
m_error = QProcess::FailedToStart;
|
||||
if (LauncherInterface::isReady()) // TODO: race condition with m_processState???
|
||||
sendPacket(StopProcessPacket(m_token));
|
||||
@@ -337,16 +337,16 @@ int CallerHandle::exitCode() const
|
||||
QString CallerHandle::errorString() const
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return {});
|
||||
return m_errorString;
|
||||
return m_setup.m_errorString;
|
||||
}
|
||||
|
||||
void CallerHandle::setErrorString(const QString &str)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_errorString = str;
|
||||
m_setup.m_errorString = str;
|
||||
}
|
||||
|
||||
void CallerHandle::start(const QString &program, const QStringList &arguments, const QByteArray &writeData)
|
||||
void CallerHandle::start(const QString &program, const QStringList &arguments)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
if (!m_launcherHandle || m_launcherHandle->isSocketError()) {
|
||||
@@ -374,16 +374,16 @@ void CallerHandle::start(const QString &program, const QStringList &arguments, c
|
||||
StartProcessPacket *p = new StartProcessPacket(m_token);
|
||||
p->command = m_command;
|
||||
p->arguments = m_arguments;
|
||||
p->env = m_environment.toStringList();
|
||||
p->workingDir = m_workingDirectory.path();
|
||||
p->processMode = m_processMode;
|
||||
p->writeData = writeData;
|
||||
p->channelMode = m_channelMode;
|
||||
p->standardInputFile = m_standardInputFile;
|
||||
p->belowNormalPriority = m_belowNormalPriority;
|
||||
p->nativeArguments = m_nativeArguments;
|
||||
p->lowPriority = m_lowPriority;
|
||||
p->unixTerminalDisabled = m_unixTerminalDisabled;
|
||||
p->env = m_setup.m_environment.toStringList();
|
||||
p->workingDir = m_setup.m_workingDirectory.path();
|
||||
p->processMode = m_setup.m_processMode;
|
||||
p->writeData = m_setup.m_writeData;
|
||||
p->processChannelMode = m_setup.m_processChannelMode;
|
||||
p->standardInputFile = m_setup.m_standardInputFile;
|
||||
p->belowNormalPriority = m_setup.m_belowNormalPriority;
|
||||
p->nativeArguments = m_setup.m_nativeArguments;
|
||||
p->lowPriority = m_setup.m_lowPriority;
|
||||
p->unixTerminalDisabled = m_setup.m_unixTerminalDisabled;
|
||||
m_startPacket.reset(p);
|
||||
if (LauncherInterface::isReady())
|
||||
doStart();
|
||||
@@ -443,28 +443,10 @@ QStringList CallerHandle::arguments() const
|
||||
return m_arguments;
|
||||
}
|
||||
|
||||
void CallerHandle::setStandardInputFile(const QString &fileName)
|
||||
void CallerHandle::setProcessSetupData(const ProcessSetupData &setup)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_standardInputFile = fileName;
|
||||
}
|
||||
|
||||
void CallerHandle::setProcessChannelMode(QProcess::ProcessChannelMode mode)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_channelMode = mode;
|
||||
}
|
||||
|
||||
void CallerHandle::setEnvironment(const Environment &environment)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_environment = environment;
|
||||
}
|
||||
|
||||
void CallerHandle::setWorkingDirectory(const FilePath &dir)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_workingDirectory = dir;
|
||||
m_setup = setup;
|
||||
}
|
||||
|
||||
QProcess::ExitStatus CallerHandle::exitStatus() const
|
||||
@@ -473,30 +455,6 @@ QProcess::ExitStatus CallerHandle::exitStatus() const
|
||||
return m_exitStatus;
|
||||
}
|
||||
|
||||
void CallerHandle::setBelowNormalPriority()
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_belowNormalPriority = true;
|
||||
}
|
||||
|
||||
void CallerHandle::setNativeArguments(const QString &arguments)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_nativeArguments = arguments;
|
||||
}
|
||||
|
||||
void CallerHandle::setLowPriority()
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_lowPriority = true;
|
||||
}
|
||||
|
||||
void CallerHandle::setUnixTerminalDisabled()
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return);
|
||||
m_unixTerminalDisabled = true;
|
||||
}
|
||||
|
||||
bool CallerHandle::waitForSignal(int msecs, CallerHandle::SignalType newSignal)
|
||||
{
|
||||
QTC_ASSERT(isCalledFromCallersThread(), return false);
|
||||
@@ -812,8 +770,8 @@ CallerHandle *LauncherSocket::registerHandle(QObject *parent, quintptr token, Pr
|
||||
if (m_handles.contains(token))
|
||||
return nullptr; // TODO: issue a warning
|
||||
|
||||
CallerHandle *callerHandle = new CallerHandle(parent, token, mode);
|
||||
LauncherHandle *launcherHandle = new LauncherHandle(token, mode);
|
||||
CallerHandle *callerHandle = new CallerHandle(parent, token);
|
||||
LauncherHandle *launcherHandle = new LauncherHandle(token);
|
||||
callerHandle->setLauncherHandle(launcherHandle);
|
||||
launcherHandle->setCallerHandle(callerHandle);
|
||||
launcherHandle->moveToThread(thread());
|
||||
|
||||
Reference in New Issue
Block a user