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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ class Environment;
|
||||
class DeviceProcessHooks;
|
||||
class ProcessInterface;
|
||||
class ProcessResultData;
|
||||
class ProcessRunData;
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT Process final : public QObject
|
||||
{
|
||||
@@ -78,6 +79,21 @@ public:
|
||||
|
||||
// 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 setPtyData(const std::optional<Pty::Data> &data);
|
||||
@@ -90,18 +106,6 @@ public:
|
||||
void setProcessMode(ProcessMode processMode);
|
||||
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 setUseCtrlCStub(bool enabled); // release only
|
||||
@@ -111,8 +115,9 @@ public:
|
||||
bool isRunAsRoot() const;
|
||||
void setAbortOnMetaChars(bool abort);
|
||||
|
||||
QProcess::ProcessChannelMode processChannelMode() const;
|
||||
void setProcessChannelMode(QProcess::ProcessChannelMode mode);
|
||||
QProcess::ProcessChannelMode processChannelMode() const;
|
||||
|
||||
void setStandardInputFile(const QString &inputFile);
|
||||
|
||||
void setExtraData(const QString &key, const QVariant &value);
|
||||
|
||||
Reference in New Issue
Block a user