forked from qt-creator/qt-creator
ShellCommand: Avoid code repetition on process setup
Move the common setup part into runCommand(). Change-Id: Ib17ef5fd89502f76e5cb03c1d5cb82c746c672a0 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -308,6 +308,14 @@ void ShellCommand::runCommand(QtcProcess &proc,
|
|||||||
emit appendCommand(dir, command);
|
emit appendCommand(dir, command);
|
||||||
|
|
||||||
proc.setCommand(command);
|
proc.setCommand(command);
|
||||||
|
if (d->m_disableUnixTerminal)
|
||||||
|
proc.setDisableUnixTerminal();
|
||||||
|
proc.setEnvironment(environment());
|
||||||
|
if (d->m_flags & MergeOutputChannels)
|
||||||
|
proc.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
|
if (d->m_codec)
|
||||||
|
proc.setCodec(d->m_codec);
|
||||||
|
|
||||||
if ((d->m_flags & FullySynchronously)
|
if ((d->m_flags & FullySynchronously)
|
||||||
|| (!(d->m_flags & NoFullySync)
|
|| (!(d->m_flags & NoFullySync)
|
||||||
&& QThread::currentThread() == QCoreApplication::instance()->thread())) {
|
&& QThread::currentThread() == QCoreApplication::instance()->thread())) {
|
||||||
@@ -330,15 +338,6 @@ void ShellCommand::runCommand(QtcProcess &proc,
|
|||||||
|
|
||||||
void ShellCommand::runFullySynchronous(QtcProcess &process)
|
void ShellCommand::runFullySynchronous(QtcProcess &process)
|
||||||
{
|
{
|
||||||
// Set up process
|
|
||||||
if (d->m_disableUnixTerminal)
|
|
||||||
process.setDisableUnixTerminal();
|
|
||||||
process.setEnvironment(environment());
|
|
||||||
if (d->m_flags & MergeOutputChannels)
|
|
||||||
process.setProcessChannelMode(QProcess::MergedChannels);
|
|
||||||
if (d->m_codec)
|
|
||||||
process.setCodec(d->m_codec);
|
|
||||||
|
|
||||||
process.runBlocking();
|
process.runBlocking();
|
||||||
|
|
||||||
if (!d->m_aborted) {
|
if (!d->m_aborted) {
|
||||||
@@ -362,15 +361,9 @@ void ShellCommand::runSynchronous(QtcProcess &process)
|
|||||||
process.stop();
|
process.stop();
|
||||||
process.waitForFinished();
|
process.waitForFinished();
|
||||||
});
|
});
|
||||||
process.setEnvironment(environment());
|
|
||||||
if (d->m_codec)
|
|
||||||
process.setCodec(d->m_codec);
|
|
||||||
if (d->m_disableUnixTerminal)
|
|
||||||
process.setDisableUnixTerminal();
|
|
||||||
// connect stderr to the output window if desired
|
// connect stderr to the output window if desired
|
||||||
if (d->m_flags & MergeOutputChannels) {
|
if (!(d->m_flags & MergeOutputChannels)
|
||||||
process.setProcessChannelMode(QProcess::MergedChannels);
|
&& (d->m_progressiveOutput || !(d->m_flags & SuppressStdErr))) {
|
||||||
} else if (d->m_progressiveOutput || !(d->m_flags & SuppressStdErr)) {
|
|
||||||
process.setStdErrCallback([this](const QString &text) {
|
process.setStdErrCallback([this](const QString &text) {
|
||||||
if (d->m_progressParser)
|
if (d->m_progressParser)
|
||||||
d->m_progressParser->parseProgress(text);
|
d->m_progressParser->parseProgress(text);
|
||||||
@@ -396,10 +389,6 @@ void ShellCommand::runSynchronous(QtcProcess &process)
|
|||||||
}
|
}
|
||||||
|
|
||||||
process.setTimeOutMessageBoxEnabled(true);
|
process.setTimeOutMessageBoxEnabled(true);
|
||||||
|
|
||||||
if (d->m_codec)
|
|
||||||
process.setCodec(d->m_codec);
|
|
||||||
|
|
||||||
process.runBlocking(EventLoopMode::On);
|
process.runBlocking(EventLoopMode::On);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user