Nim: Use generic RunConfiguration::update setup

Change-Id: I531357a05d01a29ddb9a5d33be1bfac9ca0cc9dd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-12-11 13:09:54 +01:00
parent d1d9df60b6
commit 4e3bc88eef
4 changed files with 20 additions and 30 deletions

View File

@@ -49,19 +49,16 @@ NimbleRunConfiguration::NimbleRunConfiguration(ProjectExplorer::Target *target,
addAspect<WorkingDirectoryAspect>(); addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>(); addAspect<TerminalAspect>();
connect(target, &Target::buildSystemUpdated, setUpdater([this] {
this, &NimbleRunConfiguration::updateTargetInformation);
updateTargetInformation();
}
void NimbleRunConfiguration::updateTargetInformation()
{
BuildTargetInfo bti = buildTargetInfo(); BuildTargetInfo bti = buildTargetInfo();
setDisplayName(bti.displayName); setDisplayName(bti.displayName);
setDefaultDisplayName(bti.displayName); setDefaultDisplayName(bti.displayName);
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath); aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory); aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
});
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
update();
} }
bool NimbleRunConfiguration::isBuildTargetValid() const bool NimbleRunConfiguration::isBuildTargetValid() const

View File

@@ -39,8 +39,6 @@ public:
QString disabledReason() const override; QString disabledReason() const override;
private: private:
void updateTargetInformation();
bool isBuildTargetValid() const; bool isBuildTargetValid() const;
}; };

View File

@@ -53,20 +53,18 @@ NimRunConfiguration::NimRunConfiguration(Target *target, Core::Id id)
setDisplayName(tr("Current Build Target")); setDisplayName(tr("Current Build Target"));
setDefaultDisplayName(tr("Current Build Target")); setDefaultDisplayName(tr("Current Build Target"));
// Connect target signals setUpdater([this] {
connect(target, &Target::buildSystemUpdated, this, &NimRunConfiguration::updateConfiguration);
updateConfiguration();
}
void NimRunConfiguration::updateConfiguration()
{
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration()); auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
if (!buildConfiguration) QTC_ASSERT(buildConfiguration, return);
return;
const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo(); const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath())); aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath(); const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory)); aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
});
// Connect target signals
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
update();
} }
// NimRunConfigurationFactory // NimRunConfigurationFactory

View File

@@ -35,9 +35,6 @@ class NimRunConfiguration : public ProjectExplorer::RunConfiguration
public: public:
NimRunConfiguration(ProjectExplorer::Target *target, Core::Id id); NimRunConfiguration(ProjectExplorer::Target *target, Core::Id id);
private:
void updateConfiguration();
}; };
class NimRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory class NimRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory