forked from qt-creator/qt-creator
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:
@@ -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));
|
||||||
}
|
}
|
||||||
|
@@ -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,
|
||||||
|
@@ -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"));
|
||||||
|
@@ -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,
|
||||||
|
@@ -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";
|
||||||
|
@@ -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;
|
||||||
|
@@ -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>();
|
||||||
|
@@ -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>();
|
||||||
|
Reference in New Issue
Block a user