forked from qt-creator/qt-creator
Process: Add setRunData() helper
It allows to set command/workingDir/env in one go. Fix condition for setCommand() to match the one for setWorkingDir(). Change-Id: I0aa4639f3357c387a0fe8da321e94e34a3ea232d Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -1183,10 +1183,25 @@ const Environment &Process::controlEnvironment() const
|
|||||||
return d->m_setup.m_controlEnvironment;
|
return d->m_setup.m_controlEnvironment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Process::setRunData(const ProcessRunData &data)
|
||||||
|
{
|
||||||
|
if (data.workingDirectory.needsDevice() && data.command.executable().needsDevice()) {
|
||||||
|
QTC_CHECK(data.workingDirectory.isSameDevice(data.command.executable()));
|
||||||
|
}
|
||||||
|
d->m_setup.m_commandLine = data.command;
|
||||||
|
d->m_setup.m_workingDirectory = data.workingDirectory;
|
||||||
|
d->m_setup.m_environment = data.environment;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProcessRunData Process::runData() const
|
||||||
|
{
|
||||||
|
return {d->m_setup.m_commandLine, d->m_setup.m_workingDirectory, d->m_setup.m_environment};
|
||||||
|
}
|
||||||
|
|
||||||
void Process::setCommand(const CommandLine &cmdLine)
|
void Process::setCommand(const CommandLine &cmdLine)
|
||||||
{
|
{
|
||||||
if (d->m_setup.m_workingDirectory.needsDevice() && cmdLine.executable().needsDevice()) {
|
if (d->m_setup.m_workingDirectory.needsDevice() && cmdLine.executable().needsDevice()) {
|
||||||
QTC_CHECK(d->m_setup.m_workingDirectory.host() == cmdLine.executable().host());
|
QTC_CHECK(d->m_setup.m_workingDirectory.isSameDevice(cmdLine.executable()));
|
||||||
}
|
}
|
||||||
d->m_setup.m_commandLine = cmdLine;
|
d->m_setup.m_commandLine = cmdLine;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ class Environment;
|
|||||||
class DeviceProcessHooks;
|
class DeviceProcessHooks;
|
||||||
class ProcessInterface;
|
class ProcessInterface;
|
||||||
class ProcessResultData;
|
class ProcessResultData;
|
||||||
|
class ProcessRunData;
|
||||||
|
|
||||||
class QTCREATOR_UTILS_EXPORT Process final : public QObject
|
class QTCREATOR_UTILS_EXPORT Process final : public QObject
|
||||||
{
|
{
|
||||||
@@ -78,6 +79,21 @@ public:
|
|||||||
|
|
||||||
// ProcessSetupData related
|
// ProcessSetupData related
|
||||||
|
|
||||||
|
void setRunData(const ProcessRunData &data);
|
||||||
|
ProcessRunData runData() const;
|
||||||
|
|
||||||
|
void setCommand(const CommandLine &cmdLine);
|
||||||
|
const CommandLine &commandLine() const;
|
||||||
|
|
||||||
|
void setWorkingDirectory(const FilePath &dir);
|
||||||
|
FilePath workingDirectory() const;
|
||||||
|
|
||||||
|
void setEnvironment(const Environment &env); // Main process
|
||||||
|
const Environment &environment() const;
|
||||||
|
|
||||||
|
void setControlEnvironment(const Environment &env); // Possible helper process (ssh on host etc)
|
||||||
|
const Environment &controlEnvironment() const;
|
||||||
|
|
||||||
void setProcessImpl(ProcessImpl processImpl);
|
void setProcessImpl(ProcessImpl processImpl);
|
||||||
|
|
||||||
void setPtyData(const std::optional<Pty::Data> &data);
|
void setPtyData(const std::optional<Pty::Data> &data);
|
||||||
@@ -90,18 +106,6 @@ public:
|
|||||||
void setProcessMode(ProcessMode processMode);
|
void setProcessMode(ProcessMode processMode);
|
||||||
ProcessMode processMode() const;
|
ProcessMode processMode() const;
|
||||||
|
|
||||||
void setEnvironment(const Environment &env); // Main process
|
|
||||||
const Environment &environment() const;
|
|
||||||
|
|
||||||
void setControlEnvironment(const Environment &env); // Possible helper process (ssh on host etc)
|
|
||||||
const Environment &controlEnvironment() const;
|
|
||||||
|
|
||||||
void setCommand(const CommandLine &cmdLine);
|
|
||||||
const CommandLine &commandLine() const;
|
|
||||||
|
|
||||||
void setWorkingDirectory(const FilePath &dir);
|
|
||||||
FilePath workingDirectory() const;
|
|
||||||
|
|
||||||
void setWriteData(const QByteArray &writeData);
|
void setWriteData(const QByteArray &writeData);
|
||||||
|
|
||||||
void setUseCtrlCStub(bool enabled); // release only
|
void setUseCtrlCStub(bool enabled); // release only
|
||||||
@@ -111,8 +115,9 @@ public:
|
|||||||
bool isRunAsRoot() const;
|
bool isRunAsRoot() const;
|
||||||
void setAbortOnMetaChars(bool abort);
|
void setAbortOnMetaChars(bool abort);
|
||||||
|
|
||||||
QProcess::ProcessChannelMode processChannelMode() const;
|
|
||||||
void setProcessChannelMode(QProcess::ProcessChannelMode mode);
|
void setProcessChannelMode(QProcess::ProcessChannelMode mode);
|
||||||
|
QProcess::ProcessChannelMode processChannelMode() const;
|
||||||
|
|
||||||
void setStandardInputFile(const QString &inputFile);
|
void setStandardInputFile(const QString &inputFile);
|
||||||
|
|
||||||
void setExtraData(const QString &key, const QVariant &value);
|
void setExtraData(const QString &key, const QVariant &value);
|
||||||
|
|||||||
Reference in New Issue
Block a user