ProjectExplorer: Use the new way for dependent aspects

... for WorkingDirectory aspects.

Change-Id: Idf64f1daeb74a70637bb983db1b45f0132cfc299
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-05-24 15:16:50 +02:00
parent d25c7ea137
commit 774d2063d0
8 changed files with 17 additions and 14 deletions

View File

@@ -50,7 +50,7 @@ BareMetalCustomRunConfiguration::BareMetalCustomRunConfiguration(Target *target,
exeAspect->setExpectedKind(PathChooser::Any); exeAspect->setExpectedKind(PathChooser::Any);
addAspect<ArgumentsAspect>(); addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>(nullptr); addAspect<WorkingDirectoryAspect>();
setDefaultDisplayName(RunConfigurationFactory::decoratedTargetName(tr("Custom Executable"), target)); setDefaultDisplayName(RunConfigurationFactory::decoratedTargetName(tr("Custom Executable"), target));
} }

View File

@@ -60,7 +60,7 @@ CMakeRunConfiguration::CMakeRunConfiguration(Target *target, Core::Id id)
addAspect<ExecutableAspect>(); addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>(); addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
connect(target->project(), &Project::parsingFinished, connect(target->project(), &Project::parsingFinished,

View File

@@ -45,11 +45,10 @@ namespace Nim {
NimRunConfiguration::NimRunConfiguration(Target *target, Core::Id id) NimRunConfiguration::NimRunConfiguration(Target *target, Core::Id id)
: RunConfiguration(target, id) : RunConfiguration(target, id)
{ {
auto envAspect = addAspect<LocalEnvironmentAspect>(target); addAspect<LocalEnvironmentAspect>(target);
addAspect<ExecutableAspect>(); addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>(); addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
setDisplayName(tr("Current Build Target")); setDisplayName(tr("Current Build Target"));

View File

@@ -94,8 +94,7 @@ private:
CustomExecutableDialog::CustomExecutableDialog(RunConfiguration *rc) CustomExecutableDialog::CustomExecutableDialog(RunConfiguration *rc)
: QDialog(Core::ICore::dialogParent()), : QDialog(Core::ICore::dialogParent()),
m_rc(rc), m_rc(rc)
m_workingDirectory(rc->aspect<EnvironmentAspect>())
{ {
auto vbox = new QVBoxLayout(this); auto vbox = new QVBoxLayout(this);
vbox->addWidget(new QLabel(tr("Could not find the executable, please specify one."))); vbox->addWidget(new QLabel(tr("Could not find the executable, please specify one.")));
@@ -194,7 +193,7 @@ CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Target *targe
exeAspect->setEnvironment(envAspect->environment()); exeAspect->setEnvironment(envAspect->environment());
addAspect<ArgumentsAspect>(); addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
connect(envAspect, &EnvironmentAspect::environmentChanged, connect(envAspect, &EnvironmentAspect::environmentChanged,

View File

@@ -131,8 +131,7 @@ bool TerminalAspect::isUserSet() const
\class ProjectExplorer::WorkingDirectoryAspect \class ProjectExplorer::WorkingDirectoryAspect
*/ */
WorkingDirectoryAspect::WorkingDirectoryAspect(EnvironmentAspect *envAspect) WorkingDirectoryAspect::WorkingDirectoryAspect()
: m_envAspect(envAspect)
{ {
setDisplayName(tr("Working Directory")); setDisplayName(tr("Working Directory"));
setId("WorkingDirectoryAspect"); setId("WorkingDirectoryAspect");
@@ -174,6 +173,11 @@ void WorkingDirectoryAspect::addToConfigurationLayout(QFormLayout *layout)
layout->addRow(tr("Working directory:"), hbox); layout->addRow(tr("Working directory:"), hbox);
} }
void WorkingDirectoryAspect::acquaintSiblings(const ProjectConfigurationAspects &siblings)
{
m_envAspect = siblings.aspect<EnvironmentAspect>();
}
QString WorkingDirectoryAspect::keyForDefaultWd() const QString WorkingDirectoryAspect::keyForDefaultWd() const
{ {
return settingsKey() + ".default"; return settingsKey() + ".default";

View File

@@ -67,9 +67,10 @@ class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public ProjectConfiguratio
Q_OBJECT Q_OBJECT
public: public:
explicit WorkingDirectoryAspect(EnvironmentAspect *envAspect = nullptr); WorkingDirectoryAspect();
void addToConfigurationLayout(QFormLayout *layout) override; void addToConfigurationLayout(QFormLayout *layout) override;
void acquaintSiblings(const ProjectConfigurationAspects &) override;
Utils::FileName workingDirectory(const Utils::MacroExpander *expander) const; Utils::FileName workingDirectory(const Utils::MacroExpander *expander) const;
Utils::FileName defaultWorkingDirectory() const; Utils::FileName defaultWorkingDirectory() const;
@@ -84,7 +85,7 @@ private:
void resetPath(); void resetPath();
QString keyForDefaultWd() const; QString keyForDefaultWd() const;
EnvironmentAspect * const m_envAspect = nullptr; EnvironmentAspect *m_envAspect = nullptr;
Utils::FileName m_workingDirectory; Utils::FileName m_workingDirectory;
Utils::FileName m_defaultWorkingDirectory; Utils::FileName m_defaultWorkingDirectory;
QPointer<Utils::PathChooser> m_chooser; QPointer<Utils::PathChooser> m_chooser;

View File

@@ -66,7 +66,7 @@ QbsRunConfiguration::QbsRunConfiguration(Target *target, Core::Id id)
addAspect<ExecutableAspect>(); addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>(); addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
setOutputFormatter<QtSupport::QtOutputFormatter>(); setOutputFormatter<QtSupport::QtOutputFormatter>();

View File

@@ -71,7 +71,7 @@ DesktopQmakeRunConfiguration::DesktopQmakeRunConfiguration(Target *target, Core:
addAspect<ExecutableAspect>(); addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>(); addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>(envAspect); addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
setOutputFormatter<QtSupport::QtOutputFormatter>(); setOutputFormatter<QtSupport::QtOutputFormatter>();