forked from qt-creator/qt-creator
ExternalToolRunner: Connect to QtcProcess::done() signal
Instead of connecting to errorOccurred() and finished() signals. Change-Id: I8f201f508b60ae795a4f7dfbbb4edb3d3fe8b030 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -647,8 +647,7 @@ void ExternalToolRunner::run()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_process = new QtcProcess(this);
|
m_process = new QtcProcess(this);
|
||||||
connect(m_process, &QtcProcess::finished, this, &ExternalToolRunner::finished);
|
connect(m_process, &QtcProcess::done, this, &ExternalToolRunner::done);
|
||||||
connect(m_process, &QtcProcess::errorOccurred, this, &ExternalToolRunner::error);
|
|
||||||
connect(m_process, &QtcProcess::readyReadStandardOutput,
|
connect(m_process, &QtcProcess::readyReadStandardOutput,
|
||||||
this, &ExternalToolRunner::readStandardOutput);
|
this, &ExternalToolRunner::readStandardOutput);
|
||||||
connect(m_process, &QtcProcess::readyReadStandardError,
|
connect(m_process, &QtcProcess::readyReadStandardError,
|
||||||
@@ -667,28 +666,23 @@ void ExternalToolRunner::run()
|
|||||||
m_process->start();
|
m_process->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalToolRunner::finished()
|
void ExternalToolRunner::done()
|
||||||
{
|
{
|
||||||
if (m_process->result() == ProcessResult::FinishedWithSuccess
|
if (m_process->result() == ProcessResult::FinishedWithSuccess
|
||||||
&& (m_tool->outputHandling() == ExternalTool::ReplaceSelection
|
&& (m_tool->outputHandling() == ExternalTool::ReplaceSelection
|
||||||
|| m_tool->errorHandling() == ExternalTool::ReplaceSelection)) {
|
|| m_tool->errorHandling() == ExternalTool::ReplaceSelection)) {
|
||||||
ExternalToolManager::emitReplaceSelectionRequested(m_processOutput);
|
ExternalToolManager::emitReplaceSelectionRequested(m_processOutput);
|
||||||
}
|
}
|
||||||
|
const QString message = (m_process->result() == ProcessResult::FinishedWithSuccess)
|
||||||
|
? tr("\"%1\" finished").arg(m_resolvedExecutable.toUserOutput())
|
||||||
|
: tr("\"%1\" finished with error").arg(m_resolvedExecutable.toUserOutput());
|
||||||
|
|
||||||
if (m_tool->modifiesCurrentDocument())
|
if (m_tool->modifiesCurrentDocument())
|
||||||
DocumentManager::unexpectFileChange(m_expectedFilePath);
|
DocumentManager::unexpectFileChange(m_expectedFilePath);
|
||||||
const auto write = m_tool->outputHandling() == ExternalTool::ShowInPane
|
const auto write = m_tool->outputHandling() == ExternalTool::ShowInPane
|
||||||
? QOverload<const QString &>::of(MessageManager::writeFlashing)
|
? QOverload<const QString &>::of(MessageManager::writeFlashing)
|
||||||
: QOverload<const QString &>::of(MessageManager::writeSilently);
|
: QOverload<const QString &>::of(MessageManager::writeSilently);
|
||||||
write(tr("\"%1\" finished").arg(m_resolvedExecutable.toUserOutput()));
|
write(message);
|
||||||
deleteLater();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ExternalToolRunner::error(QProcess::ProcessError error)
|
|
||||||
{
|
|
||||||
if (m_tool->modifiesCurrentDocument())
|
|
||||||
DocumentManager::unexpectFileChange(m_expectedFilePath);
|
|
||||||
// TODO inform about errors
|
|
||||||
Q_UNUSED(error)
|
|
||||||
deleteLater();
|
deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -135,8 +135,7 @@ public:
|
|||||||
QString errorString() const;
|
QString errorString() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void finished();
|
void done();
|
||||||
void error(QProcess::ProcessError error);
|
|
||||||
void readStandardOutput();
|
void readStandardOutput();
|
||||||
void readStandardError();
|
void readStandardError();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user