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:
Jarek Kobus
2022-07-12 17:55:57 +02:00
parent aebf6a9466
commit ec48545628

View File

@@ -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);
} }