forked from qt-creator/qt-creator
Nim: Use generic RunConfiguration::update setup
Change-Id: I531357a05d01a29ddb9a5d33be1bfac9ca0cc9dd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -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);
|
BuildTargetInfo bti = buildTargetInfo();
|
||||||
|
setDisplayName(bti.displayName);
|
||||||
|
setDefaultDisplayName(bti.displayName);
|
||||||
|
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
||||||
|
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
||||||
|
});
|
||||||
|
|
||||||
updateTargetInformation();
|
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
||||||
}
|
update();
|
||||||
|
|
||||||
void NimbleRunConfiguration::updateTargetInformation()
|
|
||||||
{
|
|
||||||
BuildTargetInfo bti = buildTargetInfo();
|
|
||||||
setDisplayName(bti.displayName);
|
|
||||||
setDefaultDisplayName(bti.displayName);
|
|
||||||
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
|
|
||||||
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NimbleRunConfiguration::isBuildTargetValid() const
|
bool NimbleRunConfiguration::isBuildTargetValid() const
|
||||||
|
@@ -39,8 +39,6 @@ public:
|
|||||||
QString disabledReason() const override;
|
QString disabledReason() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateTargetInformation();
|
|
||||||
|
|
||||||
bool isBuildTargetValid() const;
|
bool isBuildTargetValid() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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);
|
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
|
||||||
updateConfiguration();
|
QTC_ASSERT(buildConfiguration, return);
|
||||||
}
|
const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
|
||||||
|
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
|
||||||
|
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
|
||||||
|
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
|
||||||
|
});
|
||||||
|
|
||||||
void NimRunConfiguration::updateConfiguration()
|
// Connect target signals
|
||||||
{
|
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
||||||
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
|
update();
|
||||||
if (!buildConfiguration)
|
|
||||||
return;
|
|
||||||
const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
|
|
||||||
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
|
|
||||||
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
|
|
||||||
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NimRunConfigurationFactory
|
// NimRunConfigurationFactory
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user