aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/launcherpackets.cpp4
-rw-r--r--src/libs/utils/launcherpackets.h1
-rw-r--r--src/libs/utils/launchersocket.cpp1
-rw-r--r--src/libs/utils/launchersocket.h2
-rw-r--r--src/libs/utils/qtcprocess.cpp2
-rw-r--r--src/tools/processlauncher/launchersockethandler.cpp1
6 files changed, 8 insertions, 3 deletions
diff --git a/src/libs/utils/launcherpackets.cpp b/src/libs/utils/launcherpackets.cpp
index 0de10253c63..7e7bbfd86ae 100644
--- a/src/libs/utils/launcherpackets.cpp
+++ b/src/libs/utils/launcherpackets.cpp
@@ -58,12 +58,12 @@ StartProcessPacket::StartProcessPacket(quintptr token)
void StartProcessPacket::doSerialize(QDataStream &stream) const
{
- stream << command << arguments << workingDir << env << openMode << channelMode;
+ stream << command << arguments << workingDir << env << openMode << channelMode << standardInputFile;
}
void StartProcessPacket::doDeserialize(QDataStream &stream)
{
- stream >> command >> arguments >> workingDir >> env >> openMode >> channelMode;
+ stream >> command >> arguments >> workingDir >> env >> openMode >> channelMode >> standardInputFile;
}
diff --git a/src/libs/utils/launcherpackets.h b/src/libs/utils/launcherpackets.h
index 6844292e07f..cd5a8a35ec2 100644
--- a/src/libs/utils/launcherpackets.h
+++ b/src/libs/utils/launcherpackets.h
@@ -101,6 +101,7 @@ public:
QStringList env;
QIODevice::OpenMode openMode = QIODevice::ReadWrite;
QProcess::ProcessChannelMode channelMode = QProcess::SeparateChannels;
+ QString standardInputFile;
private:
void doSerialize(QDataStream &stream) const override;
diff --git a/src/libs/utils/launchersocket.cpp b/src/libs/utils/launchersocket.cpp
index cae4265a034..c5b997f3068 100644
--- a/src/libs/utils/launchersocket.cpp
+++ b/src/libs/utils/launchersocket.cpp
@@ -326,6 +326,7 @@ void LauncherHandle::doStart()
p.workingDir = m_workingDirectory;
p.openMode = m_openMode;
p.channelMode = m_channelMode;
+ p.standardInputFile = m_standardInputFile;
sendPacket(p);
}
diff --git a/src/libs/utils/launchersocket.h b/src/libs/utils/launchersocket.h
index c4a425dbf8b..a8499bd5466 100644
--- a/src/libs/utils/launchersocket.h
+++ b/src/libs/utils/launchersocket.h
@@ -90,6 +90,7 @@ public:
QProcess::ProcessError error() const { QMutexLocker locker(&m_mutex); return m_error; }
QString program() const { QMutexLocker locker(&m_mutex); return m_command; }
+ void setStandardInputFile(const QString &fileName) { QMutexLocker locker(&m_mutex); m_standardInputFile = fileName; }
void setProcessChannelMode(QProcess::ProcessChannelMode mode) {
QMutexLocker locker(&m_mutex);
if (mode != QProcess::SeparateChannels && mode != QProcess::MergedChannels) {
@@ -175,6 +176,7 @@ private:
QString m_workingDirectory;
QIODevice::OpenMode m_openMode = QIODevice::ReadWrite;
QProcess::ProcessChannelMode m_channelMode = QProcess::SeparateChannels;
+ QString m_standardInputFile;
CallerHandle *m_callerHandle = nullptr;
diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp
index 81fc9076a2b..824c3eff0b6 100644
--- a/src/libs/utils/qtcprocess.cpp
+++ b/src/libs/utils/qtcprocess.cpp
@@ -313,7 +313,7 @@ public:
qint64 write(const QByteArray &data) override { QTC_CHECK(false); return -1; }
void closeWriteChannel() override { /*QTC_CHECK(false);*/ }
- void setStandardInputFile(const QString &fileName) override { QTC_CHECK(false); }
+ void setStandardInputFile(const QString &fileName) override { m_handle->setStandardInputFile(fileName); }
void setProcessChannelMode(QProcess::ProcessChannelMode mode) override { m_handle->setProcessChannelMode(mode); }
qint64 bytesAvailable() const override { QTC_CHECK(false); return 0; }
diff --git a/src/tools/processlauncher/launchersockethandler.cpp b/src/tools/processlauncher/launchersockethandler.cpp
index 98beca57d28..bfe08d26fc8 100644
--- a/src/tools/processlauncher/launchersockethandler.cpp
+++ b/src/tools/processlauncher/launchersockethandler.cpp
@@ -231,6 +231,7 @@ void LauncherSocketHandler::handleStartPacket()
process->setEnvironment(packet.env);
process->setWorkingDirectory(packet.workingDir);
process->setProcessChannelMode(packet.channelMode);
+ process->setStandardInputFile(packet.standardInputFile);
process->start(packet.command, packet.arguments, packet.openMode);
process->closeWriteChannel();
}