diff options
author | Marcus Tillmanns <[email protected]> | 2025-05-05 07:06:29 +0200 |
---|---|---|
committer | Marcus Tillmanns <[email protected]> | 2025-05-05 06:41:43 +0000 |
commit | fc832cc101b799500e992509714d760dbfb97a1d (patch) | |
tree | 5d9d67eda0013d05d2960e544552cf8e55ebcf78 | |
parent | c7702ad589e1c42dabb3de990b9cc678382cf8bb (diff) |
Utils: Connect signals before starting pty process
Change-Id: Ib1df4d7bbc987436df4d8138898f354295a68cad
Reviewed-by: hjk <[email protected]>
-rw-r--r-- | src/libs/utils/qtcprocess.cpp | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 59f0efe5831..0a91bc28a7d 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -382,32 +382,6 @@ public: workingDir = workingDir.parentDir(); if (!QTC_GUARD(workingDir.exists())) workingDir = workingDir.withNewPath({}); - bool startResult = m_ptyProcess->startProcess(executable, - HostOsInfo::isWindowsHost() - ? QStringList{m_setup.m_nativeArguments} - << arguments - : arguments, - workingDir.nativePath(), - senv, - m_setup.m_ptyData->size().width(), - m_setup.m_ptyData->size().height()); - - if (!startResult) { - const ProcessResultData result = {-1, - QProcess::CrashExit, - QProcess::FailedToStart, - "Failed to start pty process: " - + m_ptyProcess->lastError()}; - emit done(result); - return; - } - - if (!m_ptyProcess->lastError().isEmpty()) { - const ProcessResultData result - = {-1, QProcess::CrashExit, QProcess::FailedToStart, m_ptyProcess->lastError()}; - emit done(result); - return; - } connect(m_ptyProcess->notifier(), &QIODevice::readyRead, this, [this] { if (m_setup.m_ptyData->ptyInputFlagsChangedHandler() @@ -441,6 +415,32 @@ public: emit done(result); }); + bool startResult = m_ptyProcess->startProcess( + executable, + HostOsInfo::isWindowsHost() ? QStringList{m_setup.m_nativeArguments} << arguments + : arguments, + workingDir.nativePath(), + senv, + m_setup.m_ptyData->size().width(), + m_setup.m_ptyData->size().height()); + + if (!startResult) { + const ProcessResultData result + = {-1, + QProcess::CrashExit, + QProcess::FailedToStart, + "Failed to start pty process: " + m_ptyProcess->lastError()}; + emit done(result); + return; + } + + if (!m_ptyProcess->lastError().isEmpty()) { + const ProcessResultData result + = {-1, QProcess::CrashExit, QProcess::FailedToStart, m_ptyProcess->lastError()}; + emit done(result); + return; + } + emit started(m_ptyProcess->pid()); } |