aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Tillmanns <[email protected]>2025-05-05 07:06:29 +0200
committerMarcus Tillmanns <[email protected]>2025-05-05 06:41:43 +0000
commitfc832cc101b799500e992509714d760dbfb97a1d (patch)
tree5d9d67eda0013d05d2960e544552cf8e55ebcf78
parentc7702ad589e1c42dabb3de990b9cc678382cf8bb (diff)
Utils: Connect signals before starting pty process
-rw-r--r--src/libs/utils/qtcprocess.cpp52
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());
}