ProjectExplorer: Pass macroexpander (again) to WorkingDirectoryAspect

Broke with 8dacb123e0.

Probably calls for a more centralized approach again. Later.

Change-Id: Ibf52487d68d7938d4b5dfb38f1f0a5b0e1a97bc3
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2022-05-30 14:56:20 +02:00
parent 17ee387756
commit 2837f4d777
15 changed files with 23 additions and 20 deletions

View File

@@ -192,7 +192,7 @@ public:
EnvironmentChange m_environmentChange; EnvironmentChange m_environmentChange;
BinaryVersionToolTipEventFilter *m_binaryVersionToolTipEventFilter = nullptr; BinaryVersionToolTipEventFilter *m_binaryVersionToolTipEventFilter = nullptr;
QList<QAbstractButton *> m_buttons; QList<QAbstractButton *> m_buttons;
MacroExpander *m_macroExpander = globalMacroExpander(); const MacroExpander *m_macroExpander = globalMacroExpander();
std::function<void()> m_openTerminal; std::function<void()> m_openTerminal;
}; };
@@ -732,7 +732,7 @@ void PathChooser::setHistoryCompleter(const QString &historyKey, bool restoreLas
d->m_lineEdit->setHistoryCompleter(historyKey, restoreLastItemFromHistory); d->m_lineEdit->setHistoryCompleter(historyKey, restoreLastItemFromHistory);
} }
void PathChooser::setMacroExpander(MacroExpander *macroExpander) void PathChooser::setMacroExpander(const MacroExpander *macroExpander)
{ {
d->m_macroExpander = macroExpander; d->m_macroExpander = macroExpander;
} }

View File

@@ -136,7 +136,7 @@ public:
// Sets a macro expander that is used when producing path and fileName. // Sets a macro expander that is used when producing path and fileName.
// By default, the global expander is used. // By default, the global expander is used.
// nullptr can be passed to disable macro expansion. // nullptr can be passed to disable macro expansion.
void setMacroExpander(MacroExpander *macroExpander); void setMacroExpander(const MacroExpander *macroExpander);
bool isReadOnly() const; bool isReadOnly() const;
void setReadOnly(bool b); void setReadOnly(bool b);

View File

@@ -53,7 +53,7 @@ public:
exeAspect->setPlaceHolderText(tr("Unknown")); exeAspect->setPlaceHolderText(tr("Unknown"));
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(nullptr); addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
setUpdater([this, exeAspect] { setUpdater([this, exeAspect] {
const BuildTargetInfo bti = buildTargetInfo(); const BuildTargetInfo bti = buildTargetInfo();
@@ -80,7 +80,7 @@ public:
exeAspect->setExpectedKind(PathChooser::Any); exeAspect->setExpectedKind(PathChooser::Any);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(nullptr); addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
setDefaultDisplayName(RunConfigurationFactory::decoratedTargetName(tr("Custom Executable"), target)); setDefaultDisplayName(RunConfigurationFactory::decoratedTargetName(tr("Custom Executable"), target));
} }

View File

@@ -102,7 +102,7 @@ QdbRunConfiguration::QdbRunConfiguration(Target *target, Id id)
auto envAspect = addAspect<RemoteLinux::RemoteLinuxEnvironmentAspect>(target); auto envAspect = addAspect<RemoteLinux::RemoteLinuxEnvironmentAspect>(target);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<FullCommandLineAspect>(this); addAspect<FullCommandLineAspect>(this);
setUpdater([this, target, exeAspect, symbolsAspect] { setUpdater([this, target, exeAspect, symbolsAspect] {

View File

@@ -46,7 +46,7 @@ MesonRunConfiguration::MesonRunConfiguration(ProjectExplorer::Target *target, Ut
addAspect<ProjectExplorer::ExecutableAspect>(target); addAspect<ProjectExplorer::ExecutableAspect>(target);
addAspect<ProjectExplorer::ArgumentsAspect>(macroExpander()); addAspect<ProjectExplorer::ArgumentsAspect>(macroExpander());
addAspect<ProjectExplorer::WorkingDirectoryAspect>(envAspect); addAspect<ProjectExplorer::WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<ProjectExplorer::TerminalAspect>(); addAspect<ProjectExplorer::TerminalAspect>();
auto libAspect = addAspect<ProjectExplorer::UseLibraryPathsAspect>(); auto libAspect = addAspect<ProjectExplorer::UseLibraryPathsAspect>();

View File

@@ -54,7 +54,7 @@ public:
auto envAspect = addAspect<LocalEnvironmentAspect>(target); auto envAspect = addAspect<LocalEnvironmentAspect>(target);
addAspect<ExecutableAspect>(target); addAspect<ExecutableAspect>(target);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
setUpdater([this] { setUpdater([this] {
@@ -91,7 +91,8 @@ public:
{ {
addAspect<ExecutableAspect>(target)->setExecutable(Nim::nimblePathFromKit(target->kit())); addAspect<ExecutableAspect>(target)->setExecutable(Nim::nimblePathFromKit(target->kit()));
addAspect<ArgumentsAspect>(macroExpander())->setArguments("test"); addAspect<ArgumentsAspect>(macroExpander())->setArguments("test");
addAspect<WorkingDirectoryAspect>(nullptr)->setDefaultWorkingDirectory(project()->projectDirectory()); addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr)
->setDefaultWorkingDirectory(project()->projectDirectory());
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
setDisplayName(tr("Nimble Test")); setDisplayName(tr("Nimble Test"));

View File

@@ -52,7 +52,7 @@ public:
auto envAspect = addAspect<LocalEnvironmentAspect>(target); auto envAspect = addAspect<LocalEnvironmentAspect>(target);
addAspect<ExecutableAspect>(target); addAspect<ExecutableAspect>(target);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
setDisplayName(tr("Current Build Target")); setDisplayName(tr("Current Build Target"));

View File

@@ -53,7 +53,7 @@ CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *targe
exeAspect->setEnvironmentChange(EnvironmentChange::fromFixedEnvironment(envAspect->environment())); exeAspect->setEnvironmentChange(EnvironmentChange::fromFixedEnvironment(envAspect->environment()));
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
connect(envAspect, &EnvironmentAspect::environmentChanged, this, [exeAspect, envAspect] { connect(envAspect, &EnvironmentAspect::environmentChanged, this, [exeAspect, envAspect] {

View File

@@ -70,7 +70,7 @@ DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Id id, Kind kin
addAspect<ExecutableAspect>(target); addAspect<ExecutableAspect>(target);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
auto libAspect = addAspect<UseLibraryPathsAspect>(); auto libAspect = addAspect<UseLibraryPathsAspect>();

View File

@@ -171,8 +171,9 @@ bool TerminalAspect::isUserSet() const
working directory for running the executable. working directory for running the executable.
*/ */
WorkingDirectoryAspect::WorkingDirectoryAspect(EnvironmentAspect *envAspect) WorkingDirectoryAspect::WorkingDirectoryAspect(const MacroExpander *expander,
: m_envAspect(envAspect) EnvironmentAspect *envAspect)
: m_envAspect(envAspect), m_macroExpander(expander)
{ {
setDisplayName(tr("Working Directory")); setDisplayName(tr("Working Directory"));
setId("WorkingDirectoryAspect"); setId("WorkingDirectoryAspect");

View File

@@ -81,7 +81,8 @@ class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public Utils::BaseAspect
Q_OBJECT Q_OBJECT
public: public:
explicit WorkingDirectoryAspect(EnvironmentAspect *envAspect); explicit WorkingDirectoryAspect(const Utils::MacroExpander *expander,
EnvironmentAspect *envAspect);
void addToLayout(Utils::LayoutBuilder &builder) override; void addToLayout(Utils::LayoutBuilder &builder) override;
@@ -102,7 +103,7 @@ private:
Utils::FilePath m_defaultWorkingDirectory; Utils::FilePath m_defaultWorkingDirectory;
QPointer<Utils::PathChooser> m_chooser; QPointer<Utils::PathChooser> m_chooser;
QPointer<QToolButton> m_resetButton; QPointer<QToolButton> m_resetButton;
Utils::MacroExpander *m_macroExpander = nullptr; const Utils::MacroExpander *m_macroExpander = nullptr;
}; };
class PROJECTEXPLORER_EXPORT ArgumentsAspect : public Utils::BaseAspect class PROJECTEXPLORER_EXPORT ArgumentsAspect : public Utils::BaseAspect

View File

@@ -178,7 +178,7 @@ public:
auto argumentsAspect = addAspect<ArgumentsAspect>(macroExpander()); auto argumentsAspect = addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(nullptr); addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
setCommandLineGetter([bufferedAspect, interpreterAspect, argumentsAspect, scriptAspect] { setCommandLineGetter([bufferedAspect, interpreterAspect, argumentsAspect, scriptAspect] {

View File

@@ -61,7 +61,7 @@ QnxRunConfiguration::QnxRunConfiguration(Target *target, Id id)
auto envAspect = addAspect<RemoteLinuxEnvironmentAspect>(target); auto envAspect = addAspect<RemoteLinuxEnvironmentAspect>(target);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
auto libAspect = addAspect<StringAspect>(); auto libAspect = addAspect<StringAspect>();

View File

@@ -72,7 +72,7 @@ RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *tar
symbolsAspect->setDisplayStyle(SymbolFileAspect::PathChooserDisplay); symbolsAspect->setDisplayStyle(SymbolFileAspect::PathChooserDisplay);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
if (HostOsInfo::isAnyUnixHost()) if (HostOsInfo::isAnyUnixHost())
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
if (HostOsInfo::isAnyUnixHost()) if (HostOsInfo::isAnyUnixHost())

View File

@@ -71,7 +71,7 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
symbolsAspect->setDisplayStyle(SymbolFileAspect::LabelDisplay); symbolsAspect->setDisplayStyle(SymbolFileAspect::LabelDisplay);
addAspect<ArgumentsAspect>(macroExpander()); addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
if (HostOsInfo::isAnyUnixHost()) if (HostOsInfo::isAnyUnixHost())
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
if (HostOsInfo::isAnyUnixHost()) if (HostOsInfo::isAnyUnixHost())