forked from qt-creator/qt-creator
Pass the OpenMode to process launcher
Change-Id: I8f2c344999c17a5b25a12ec16b2fe1d7b2481893 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -58,12 +58,12 @@ StartProcessPacket::StartProcessPacket(quintptr token)
|
|||||||
|
|
||||||
void StartProcessPacket::doSerialize(QDataStream &stream) const
|
void StartProcessPacket::doSerialize(QDataStream &stream) const
|
||||||
{
|
{
|
||||||
stream << command << arguments << workingDir << env << mode;
|
stream << command << arguments << workingDir << env << openMode << channelMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartProcessPacket::doDeserialize(QDataStream &stream)
|
void StartProcessPacket::doDeserialize(QDataStream &stream)
|
||||||
{
|
{
|
||||||
stream >> command >> arguments >> workingDir >> env >> mode;
|
stream >> command >> arguments >> workingDir >> env >> openMode >> channelMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -99,7 +99,8 @@ public:
|
|||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
QString workingDir;
|
QString workingDir;
|
||||||
QStringList env;
|
QStringList env;
|
||||||
QProcess::ProcessChannelMode mode = QProcess::SeparateChannels;
|
QIODevice::OpenMode openMode = QIODevice::ReadWrite;
|
||||||
|
QProcess::ProcessChannelMode channelMode = QProcess::SeparateChannels;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void doSerialize(QDataStream &stream) const override;
|
void doSerialize(QDataStream &stream) const override;
|
||||||
|
@@ -376,6 +376,7 @@ private:
|
|||||||
QString m_errorString;
|
QString m_errorString;
|
||||||
QProcess::ProcessError m_error = QProcess::UnknownError;
|
QProcess::ProcessError m_error = QProcess::UnknownError;
|
||||||
QProcess::ProcessState m_state = QProcess::NotRunning;
|
QProcess::ProcessState m_state = QProcess::NotRunning;
|
||||||
|
QIODevice::OpenMode m_openMode = QIODevice::ReadWrite;
|
||||||
QProcess::ProcessChannelMode m_channelMode = QProcess::SeparateChannels;
|
QProcess::ProcessChannelMode m_channelMode = QProcess::SeparateChannels;
|
||||||
int m_processId = 0;
|
int m_processId = 0;
|
||||||
int m_exitCode = 0;
|
int m_exitCode = 0;
|
||||||
@@ -430,6 +431,7 @@ void ProcessLauncherImpl::start(const QString &program, const QStringList &argum
|
|||||||
m_command = program;
|
m_command = program;
|
||||||
m_arguments = arguments;
|
m_arguments = arguments;
|
||||||
m_state = QProcess::Starting;
|
m_state = QProcess::Starting;
|
||||||
|
m_openMode = mode;
|
||||||
if (LauncherInterface::socket()->isReady())
|
if (LauncherInterface::socket()->isReady())
|
||||||
doStart();
|
doStart();
|
||||||
}
|
}
|
||||||
@@ -441,7 +443,8 @@ void ProcessLauncherImpl::doStart()
|
|||||||
p.arguments = m_arguments;
|
p.arguments = m_arguments;
|
||||||
p.env = m_environment.toStringList();
|
p.env = m_environment.toStringList();
|
||||||
p.workingDir = m_workingDirectory;
|
p.workingDir = m_workingDirectory;
|
||||||
p.mode = m_channelMode;
|
p.openMode = m_openMode;
|
||||||
|
p.channelMode = m_channelMode;
|
||||||
sendPacket(p);
|
sendPacket(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -230,8 +230,8 @@ void LauncherSocketHandler::handleStartPacket()
|
|||||||
m_packetParser.packetData());
|
m_packetParser.packetData());
|
||||||
process->setEnvironment(packet.env);
|
process->setEnvironment(packet.env);
|
||||||
process->setWorkingDirectory(packet.workingDir);
|
process->setWorkingDirectory(packet.workingDir);
|
||||||
process->setProcessChannelMode(packet.mode);
|
process->setProcessChannelMode(packet.channelMode);
|
||||||
process->start(packet.command, packet.arguments);
|
process->start(packet.command, packet.arguments, packet.openMode);
|
||||||
process->closeWriteChannel();
|
process->closeWriteChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user