ProjectExplorer: Fix CustomProcessStep

Only display worked, the command was not used for running.

Change-Id: I6afc65d97310fe14a58136393bd0657127d8afca
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2020-10-09 12:57:20 +02:00
parent 96d33bb8f8
commit a722b7a093

View File

@@ -51,37 +51,43 @@ class ProcessStep final : public AbstractProcessStep
Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::ProcessStep) Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::ProcessStep)
public: public:
ProcessStep(BuildStepList *bsl, Utils::Id id); ProcessStep(BuildStepList *bsl, Id id);
void setupOutputFormatter(Utils::OutputFormatter *formatter); void setupOutputFormatter(OutputFormatter *formatter);
void setupProcessParameters(ProcessParameters *pp);
StringAspect *m_command;
StringAspect *m_arguments;
StringAspect *m_workingDirectory;
}; };
ProcessStep::ProcessStep(BuildStepList *bsl, Utils::Id id) ProcessStep::ProcessStep(BuildStepList *bsl, Id id)
: AbstractProcessStep(bsl, id) : AbstractProcessStep(bsl, id)
{ {
m_command = addAspect<StringAspect>(); auto command = addAspect<StringAspect>();
m_command->setSettingsKey(PROCESS_COMMAND_KEY); command->setSettingsKey(PROCESS_COMMAND_KEY);
m_command->setDisplayStyle(StringAspect::PathChooserDisplay); command->setDisplayStyle(StringAspect::PathChooserDisplay);
m_command->setLabelText(tr("Command:")); command->setLabelText(tr("Command:"));
m_command->setExpectedKind(Utils::PathChooser::Command); command->setExpectedKind(PathChooser::Command);
m_command->setHistoryCompleter("PE.ProcessStepCommand.History"); command->setHistoryCompleter("PE.ProcessStepCommand.History");
m_arguments = addAspect<StringAspect>(); auto arguments = addAspect<StringAspect>();
m_arguments->setSettingsKey(PROCESS_ARGUMENTS_KEY); arguments->setSettingsKey(PROCESS_ARGUMENTS_KEY);
m_arguments->setDisplayStyle(StringAspect::LineEditDisplay); arguments->setDisplayStyle(StringAspect::LineEditDisplay);
m_arguments->setLabelText(tr("Arguments:")); arguments->setLabelText(tr("Arguments:"));
m_workingDirectory = addAspect<StringAspect>(); auto workingDirectory = addAspect<StringAspect>();
m_workingDirectory->setSettingsKey(PROCESS_WORKINGDIRECTORY_KEY); workingDirectory->setSettingsKey(PROCESS_WORKINGDIRECTORY_KEY);
m_workingDirectory->setValue(Constants::DEFAULT_WORKING_DIR); workingDirectory->setValue(Constants::DEFAULT_WORKING_DIR);
m_workingDirectory->setDisplayStyle(StringAspect::PathChooserDisplay); workingDirectory->setDisplayStyle(StringAspect::PathChooserDisplay);
m_workingDirectory->setLabelText(tr("Working directory:")); workingDirectory->setLabelText(tr("Working directory:"));
m_workingDirectory->setExpectedKind(Utils::PathChooser::Directory); workingDirectory->setExpectedKind(PathChooser::Directory);
setWorkingDirectoryProvider([this, workingDirectory] {
const FilePath workingDir = workingDirectory->filePath();
if (workingDir.isEmpty())
return FilePath::fromString(fallbackWorkingDirectory());
return workingDir;
});
setCommandLineProvider([command, arguments] {
return CommandLine{command->filePath(), arguments->value(), CommandLine::Raw};
});
setSummaryUpdater([this] { setSummaryUpdater([this] {
QString display = displayName(); QString display = displayName();
@@ -101,18 +107,6 @@ void ProcessStep::setupOutputFormatter(OutputFormatter *formatter)
AbstractProcessStep::setupOutputFormatter(formatter); AbstractProcessStep::setupOutputFormatter(formatter);
} }
void ProcessStep::setupProcessParameters(ProcessParameters *pp)
{
QString workingDirectory = m_workingDirectory->value();
if (workingDirectory.isEmpty())
workingDirectory = fallbackWorkingDirectory();
pp->setMacroExpander(macroExpander());
pp->setEnvironment(buildEnvironment());
pp->setWorkingDirectory(FilePath::fromString(workingDirectory));
pp->setCommandLine({m_command->filePath(), m_arguments->value(), CommandLine::Raw});
}
// ProcessStepFactory // ProcessStepFactory
ProcessStepFactory::ProcessStepFactory() ProcessStepFactory::ProcessStepFactory()