forked from qt-creator/qt-creator
ProjectExplorer: Remove unusual {Arguments,WorkingDir}Aspect
Follows suite to 2cc4967
to have the user side code more uniform.
Most of the extra verbosity (setMacroExpander) can go away again
when distributing the expander via the "owning" AspectContainer.
Change-Id: I9e80cb235f0a4a9ebee601dd638aefbaa41efc1b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -53,7 +53,8 @@ public:
|
||||
auto envAspect = addAspect<EnvironmentAspect>();
|
||||
envAspect->addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {});
|
||||
|
||||
auto extraAppArgsAspect = addAspect<ArgumentsAspect>(macroExpander());
|
||||
auto extraAppArgsAspect = addAspect<ArgumentsAspect>();
|
||||
extraAppArgsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
connect(extraAppArgsAspect, &BaseAspect::changed, this, [target, extraAppArgsAspect] {
|
||||
if (target->buildConfigurations().first()->buildType() == BuildConfiguration::BuildType::Release) {
|
||||
|
@@ -29,8 +29,11 @@ public:
|
||||
exeAspect->setDeviceSelector(target, ExecutableAspect::RunDevice);
|
||||
exeAspect->setPlaceHolderText(Tr::tr("Unknown"));
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
|
||||
setUpdater([this, exeAspect] {
|
||||
const BuildTargetInfo bti = buildTargetInfo();
|
||||
@@ -55,8 +58,11 @@ public:
|
||||
exeAspect->setHistoryCompleter("BareMetal.CustomRunConfig.History");
|
||||
exeAspect->setExpectedKind(PathChooser::Any);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
|
||||
setDefaultDisplayName(RunConfigurationFactory::decoratedTargetName(
|
||||
Tr::tr("Custom Executable"), target));
|
||||
|
@@ -82,8 +82,14 @@ QdbRunConfiguration::QdbRunConfiguration(Target *target, Id id)
|
||||
|
||||
auto envAspect = addAspect<RemoteLinux::RemoteLinuxEnvironmentAspect>(target);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
|
||||
addAspect<FullCommandLineAspect>(this);
|
||||
|
||||
setUpdater([this, target, exeAspect, symbolsAspect] {
|
||||
|
@@ -38,9 +38,13 @@ HaskellRunConfiguration::HaskellRunConfiguration(Target *target, Utils::Id id)
|
||||
envAspect->setSupportForBuildEnvironment(target);
|
||||
|
||||
addAspect<HaskellExecutableAspect>();
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
workingDirAspect->setDefaultWorkingDirectory(target->project()->projectDirectory());
|
||||
workingDirAspect->setVisible(false);
|
||||
|
||||
|
@@ -61,7 +61,8 @@ IosRunConfiguration::IosRunConfiguration(Target *target, Id id)
|
||||
auto executableAspect = addAspect<ExecutableAspect>();
|
||||
executableAspect->setDeviceSelector(target, ExecutableAspect::RunDevice);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
m_deviceTypeAspect = addAspect<IosDeviceTypeAspect>(this);
|
||||
|
||||
|
@@ -29,8 +29,13 @@ public:
|
||||
auto exeAspect = addAspect<ExecutableAspect>();
|
||||
exeAspect->setDeviceSelector(target, ExecutableAspect::RunDevice);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
auto libAspect = addAspect<UseLibraryPathsAspect>();
|
||||
|
@@ -32,7 +32,8 @@ private:
|
||||
NimbleBuildStep::NimbleBuildStep(BuildStepList *parentList, Id id)
|
||||
: AbstractProcessStep(parentList, id)
|
||||
{
|
||||
auto arguments = addAspect<ArgumentsAspect>(macroExpander());
|
||||
auto arguments = addAspect<ArgumentsAspect>();
|
||||
arguments->setMacroExpander(macroExpander());
|
||||
arguments->setSettingsKey(Constants::C_NIMBLEBUILDSTEP_ARGUMENTS);
|
||||
arguments->setResetter([this] { return defaultArguments(); });
|
||||
arguments->setArguments(defaultArguments());
|
||||
|
@@ -32,8 +32,12 @@ public:
|
||||
auto exeAspect = addAspect<ExecutableAspect>();
|
||||
exeAspect->setDeviceSelector(target, ExecutableAspect::RunDevice);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
setUpdater([this] {
|
||||
@@ -70,9 +74,14 @@ public:
|
||||
exeAspect->setDeviceSelector(target, ExecutableAspect::BuildDevice);
|
||||
exeAspect->setExecutable(Nim::nimblePathFromKit(target->kit()));
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander())->setArguments("test");
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr)
|
||||
->setDefaultWorkingDirectory(project()->projectDirectory());
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
argsAspect->setArguments("test");
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setDefaultWorkingDirectory(project()->projectDirectory());
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
setDisplayName(Tr::tr("Nimble Test"));
|
||||
|
@@ -32,8 +32,12 @@ public:
|
||||
auto exeAspect = addAspect<ExecutableAspect>();
|
||||
exeAspect->setDeviceSelector(target, ExecutableAspect::RunDevice);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
setDisplayName(Tr::tr("Current Build Target"));
|
||||
|
@@ -34,8 +34,13 @@ CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *targe
|
||||
exeAspect->setExpectedKind(PathChooser::ExistingCommand);
|
||||
exeAspect->setEnvironment(envAspect->environment());
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
connect(envAspect, &EnvironmentAspect::environmentChanged, this, [exeAspect, envAspect] {
|
||||
|
@@ -48,8 +48,13 @@ DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Id id, Kind kin
|
||||
auto exeAspect = addAspect<ExecutableAspect>();
|
||||
exeAspect->setDeviceSelector(target, ExecutableAspect::RunDevice);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
auto libAspect = addAspect<UseLibraryPathsAspect>();
|
||||
|
@@ -47,7 +47,8 @@ namespace ProjectExplorer {
|
||||
The initial value is provided as a hint from the build systems.
|
||||
*/
|
||||
|
||||
TerminalAspect::TerminalAspect()
|
||||
TerminalAspect::TerminalAspect(AspectContainer *container)
|
||||
: BaseAspect(container)
|
||||
{
|
||||
setDisplayName(Tr::tr("Terminal"));
|
||||
setId("TerminalAspect");
|
||||
@@ -152,15 +153,24 @@ bool TerminalAspect::isUserSet() const
|
||||
working directory for running the executable.
|
||||
*/
|
||||
|
||||
WorkingDirectoryAspect::WorkingDirectoryAspect(const MacroExpander *expander,
|
||||
EnvironmentAspect *envAspect)
|
||||
: m_envAspect(envAspect), m_macroExpander(expander)
|
||||
WorkingDirectoryAspect::WorkingDirectoryAspect(AspectContainer *container)
|
||||
: BaseAspect(container)
|
||||
{
|
||||
setDisplayName(Tr::tr("Working Directory"));
|
||||
setId("WorkingDirectoryAspect");
|
||||
setSettingsKey("RunConfiguration.WorkingDirectory");
|
||||
}
|
||||
|
||||
void WorkingDirectoryAspect::setMacroExpander(const MacroExpander *expander)
|
||||
{
|
||||
m_macroExpander = expander;
|
||||
}
|
||||
|
||||
void WorkingDirectoryAspect::setEnvironment(EnvironmentAspect *envAspect)
|
||||
{
|
||||
m_envAspect = envAspect;
|
||||
}
|
||||
|
||||
/*!
|
||||
\reimp
|
||||
*/
|
||||
@@ -297,8 +307,8 @@ PathChooser *WorkingDirectoryAspect::pathChooser() const
|
||||
arguments for an executable.
|
||||
*/
|
||||
|
||||
ArgumentsAspect::ArgumentsAspect(const MacroExpander *macroExpander)
|
||||
: m_macroExpander(macroExpander)
|
||||
ArgumentsAspect::ArgumentsAspect(AspectContainer *container)
|
||||
: BaseAspect(container)
|
||||
{
|
||||
setDisplayName(Tr::tr("Arguments"));
|
||||
setId("ArgumentsAspect");
|
||||
@@ -309,6 +319,11 @@ ArgumentsAspect::ArgumentsAspect(const MacroExpander *macroExpander)
|
||||
m_labelText = Tr::tr("Command line arguments:");
|
||||
}
|
||||
|
||||
void ArgumentsAspect::setMacroExpander(const MacroExpander *expander)
|
||||
{
|
||||
m_macroExpander = expander;
|
||||
}
|
||||
|
||||
/*!
|
||||
Returns the main value of this aspect.
|
||||
|
||||
|
@@ -27,7 +27,7 @@ class PROJECTEXPLORER_EXPORT TerminalAspect : public Utils::BaseAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TerminalAspect();
|
||||
explicit TerminalAspect(Utils::AspectContainer *container = nullptr);
|
||||
|
||||
void addToLayout(Layouting::LayoutItem &parent) override;
|
||||
|
||||
@@ -59,8 +59,7 @@ class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public Utils::BaseAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit WorkingDirectoryAspect(const Utils::MacroExpander *expander,
|
||||
EnvironmentAspect *envAspect);
|
||||
explicit WorkingDirectoryAspect(Utils::AspectContainer *container = nullptr);
|
||||
|
||||
void addToLayout(Layouting::LayoutItem &parent) override;
|
||||
|
||||
@@ -69,6 +68,8 @@ public:
|
||||
Utils::FilePath unexpandedWorkingDirectory() const;
|
||||
void setDefaultWorkingDirectory(const Utils::FilePath &defaultWorkingDirectory);
|
||||
Utils::PathChooser *pathChooser() const;
|
||||
void setMacroExpander(const Utils::MacroExpander *expander);
|
||||
void setEnvironment(EnvironmentAspect *envAspect);
|
||||
|
||||
private:
|
||||
void fromMap(const QVariantMap &map) override;
|
||||
@@ -89,7 +90,7 @@ class PROJECTEXPLORER_EXPORT ArgumentsAspect : public Utils::BaseAspect
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ArgumentsAspect(const Utils::MacroExpander *macroExpander);
|
||||
explicit ArgumentsAspect(Utils::AspectContainer *container = nullptr);
|
||||
|
||||
void addToLayout(Layouting::LayoutItem &parent) override;
|
||||
|
||||
@@ -100,6 +101,7 @@ public:
|
||||
void setLabelText(const QString &labelText);
|
||||
void setResetter(const std::function<QString()> &resetter);
|
||||
void resetArguments();
|
||||
void setMacroExpander(const Utils::MacroExpander *macroExpander);
|
||||
|
||||
struct Data : BaseAspect::Data
|
||||
{
|
||||
|
@@ -201,9 +201,12 @@ PythonRunConfiguration::PythonRunConfiguration(Target *target, Id id)
|
||||
auto envAspect = addAspect<EnvironmentAspect>();
|
||||
envAspect->setSupportForBuildEnvironment(target);
|
||||
|
||||
auto argumentsAspect = addAspect<ArgumentsAspect>(macroExpander());
|
||||
auto argumentsAspect = addAspect<ArgumentsAspect>();
|
||||
argumentsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
|
@@ -69,7 +69,8 @@ QMakeStep::QMakeStep(BuildStepList *bsl, Id id)
|
||||
m_buildType->addOption(Tr::tr("Debug"));
|
||||
m_buildType->addOption(Tr::tr("Release"));
|
||||
|
||||
m_userArgs = addAspect<ArgumentsAspect>(macroExpander());
|
||||
m_userArgs = addAspect<ArgumentsAspect>();
|
||||
m_userArgs->setMacroExpander(macroExpander());
|
||||
m_userArgs->setSettingsKey(QMAKE_ARGUMENTS_KEY);
|
||||
m_userArgs->setLabelText(Tr::tr("Additional arguments:"));
|
||||
|
||||
|
@@ -77,7 +77,8 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id)
|
||||
m_qmlViewerAspect->setHistoryCompleter("QmlProjectManager.viewer.history");
|
||||
m_qmlViewerAspect->setSettingsKey(Constants::QML_VIEWER_KEY);
|
||||
|
||||
auto argumentAspect = addAspect<ArgumentsAspect>(macroExpander());
|
||||
auto argumentAspect = addAspect<ArgumentsAspect>();
|
||||
argumentAspect->setMacroExpander(macroExpander());
|
||||
argumentAspect->setSettingsKey(Constants::QML_VIEWER_ARGUMENTS_KEY);
|
||||
|
||||
setCommandLineGetter([this, target] {
|
||||
|
@@ -42,8 +42,13 @@ public:
|
||||
|
||||
auto envAspect = addAspect<RemoteLinuxEnvironmentAspect>(target);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
|
||||
addAspect<TerminalAspect>();
|
||||
|
||||
auto libAspect = addAspect<StringAspect>();
|
||||
@@ -75,8 +80,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
// QnxRunConfigurationFactory
|
||||
|
||||
QnxRunConfigurationFactory::QnxRunConfigurationFactory()
|
||||
|
@@ -46,8 +46,13 @@ RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *tar
|
||||
symbolsAspect->setSettingsKey("RemoteLinux.CustomRunConfig.LocalExecutable");
|
||||
symbolsAspect->setLabelText(Tr::tr("Local executable:"));
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<TerminalAspect>();
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
|
@@ -47,8 +47,13 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
|
||||
symbolsAspect->setLabelText(Tr::tr("Executable on host:"));
|
||||
symbolsAspect->setDisplayStyle(SymbolFileAspect::LabelDisplay);
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
|
||||
auto argsAspect = addAspect<ArgumentsAspect>();
|
||||
argsAspect->setMacroExpander(macroExpander());
|
||||
|
||||
auto workingDirAspect = addAspect<WorkingDirectoryAspect>();
|
||||
workingDirAspect->setMacroExpander(macroExpander());
|
||||
workingDirAspect->setEnvironment(envAspect);
|
||||
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
addAspect<TerminalAspect>();
|
||||
if (HostOsInfo::isAnyUnixHost())
|
||||
|
Reference in New Issue
Block a user