forked from qt-creator/qt-creator
ProcessResultData: Add a flag for forceful close
Whenever user calls terminate(), kill() or stop() this sets the m_canceledByUser flag to true inside result(). Change-Id: Ic99642762868fd0a28193caa8ea05e165cb2a277 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -48,6 +48,7 @@ public:
|
||||
QProcess::ExitStatus m_exitStatus = QProcess::NormalExit;
|
||||
QProcess::ProcessError m_error = QProcess::UnknownError;
|
||||
QString m_errorString;
|
||||
bool m_canceledByUser = false;
|
||||
};
|
||||
|
||||
enum class ControlSignal {
|
||||
|
@@ -940,6 +940,9 @@ void QtcProcessPrivate::sendControlSignal(ControlSignal controlSignal)
|
||||
if (!m_process || (m_state == QProcess::NotRunning))
|
||||
return;
|
||||
|
||||
if (controlSignal == ControlSignal::Terminate || controlSignal == ControlSignal::Kill)
|
||||
m_resultData.m_canceledByUser = true;
|
||||
|
||||
QMetaObject::invokeMethod(m_process.get(), [this, controlSignal] {
|
||||
m_process->sendControlSignal(controlSignal);
|
||||
}, connectionType());
|
||||
@@ -1958,7 +1961,9 @@ void QtcProcessPrivate::handleReadyRead(const QByteArray &outputData, const QByt
|
||||
void QtcProcessPrivate::handleDone(const ProcessResultData &data)
|
||||
{
|
||||
m_killTimer.stop();
|
||||
const bool wasCanceled = m_resultData.m_canceledByUser;
|
||||
m_resultData = data;
|
||||
m_resultData.m_canceledByUser = wasCanceled;
|
||||
|
||||
switch (m_state) {
|
||||
case QProcess::NotRunning:
|
||||
|
Reference in New Issue
Block a user