ProjectExplorer: Proliferate FilePath

DeployableFile and fallout.

Change-Id: I9a9c56e4a4ebf8f68df70d65da2e699efedfe907
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-08-27 13:47:24 +02:00
parent 6c9f75ff4a
commit ae11f30b20
9 changed files with 24 additions and 23 deletions

View File

@@ -171,7 +171,7 @@ void TestConfiguration::completeTestInformation(TestRunMode runMode)
// deployment information should get taken into account, but it pretty much seems as if
// each build system uses it differently
const DeploymentData &deployData = target->deploymentData();
const DeployableFile deploy = deployData.deployableForLocalFile(localExecutable.toString());
const DeployableFile deploy = deployData.deployableForLocalFile(localExecutable);
// we might have a deployable executable
const FilePath deployedExecutable = ensureExeEnding((deploy.isValid() && deploy.isExecutable())
? FilePath::fromString(QDir::cleanPath(deploy.remoteFilePath())) : localExecutable);

View File

@@ -112,12 +112,12 @@ ProjectExplorer::RunConfiguration::ConfigurationState QdbRunConfiguration::ensur
void QdbRunConfiguration::updateTargetInformation()
{
BuildTargetInfo bti = buildTargetInfo();
QString localExecutable = bti.targetFilePath.toString();
DeployableFile depFile = target()->deploymentData().deployableForLocalFile(localExecutable);
const BuildTargetInfo bti = buildTargetInfo();
const FilePath localExecutable = bti.targetFilePath;
const DeployableFile depFile = target()->deploymentData().deployableForLocalFile(localExecutable);
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(depFile.remoteFilePath()));
aspect<SymbolFileAspect>()->setValue(localExecutable);
aspect<SymbolFileAspect>()->setFileName(localExecutable);
}
QString QdbRunConfiguration::defaultDisplayName() const

View File

@@ -309,7 +309,7 @@ DeploymentData CMakeBuildConfiguration::deploymentData() const
for (const CMakeBuildTarget &ct : m_buildTargets) {
if (ct.targetType == ExecutableType || ct.targetType == DynamicLibraryType) {
if (!ct.executable.isEmpty()
&& !result.deployableForLocalFile(ct.executable.toString()).isValid()) {
&& !result.deployableForLocalFile(ct.executable).isValid()) {
result.addFile(ct.executable.toString(),
deploymentPrefix + buildDir.relativeFilePath(ct.executable.toFileInfo().dir().path()),
DeployableFile::TypeExecutable);

View File

@@ -55,11 +55,10 @@ void DeploymentData::addFile(const QString &localFilePath, const QString &remote
addFile(DeployableFile(localFilePath, remoteDirectory, type));
}
DeployableFile DeploymentData::deployableForLocalFile(const QString &localFilePath) const
DeployableFile DeploymentData::deployableForLocalFile(const Utils::FilePath &localFilePath) const
{
return Utils::findOrDefault(m_files, [&localFilePath](const DeployableFile &d) {
return d.localFilePath().toString() == localFilePath;
});
return Utils::findOrDefault(m_files,
Utils::equal(&DeployableFile::localFilePath, localFilePath));
}
bool DeploymentData::operator==(const DeploymentData &other) const

View File

@@ -60,7 +60,7 @@ public:
int fileCount() const { return m_files.count(); }
DeployableFile fileAt(int index) const { return m_files.at(index); }
DeployableFile deployableForLocalFile(const QString &localFilePath) const;
DeployableFile deployableForLocalFile(const Utils::FilePath &localFilePath) const;
bool operator==(const DeploymentData &other) const;

View File

@@ -171,14 +171,16 @@ void DesktopRunConfiguration::doAdditionalSetup(const RunConfigurationCreationIn
Utils::FilePath DesktopRunConfiguration::executableToRun(const BuildTargetInfo &targetInfo) const
{
const FilePath appInBuildDir = targetInfo.targetFilePath;
if (target()->deploymentData().localInstallRoot().isEmpty())
const DeploymentData deploymentData = target()->deploymentData();
if (deploymentData.localInstallRoot().isEmpty())
return appInBuildDir;
const QString deployedAppFilePath = target()->deploymentData()
.deployableForLocalFile(appInBuildDir.toString()).remoteFilePath();
const QString deployedAppFilePath = deploymentData
.deployableForLocalFile(appInBuildDir).remoteFilePath();
if (deployedAppFilePath.isEmpty())
return appInBuildDir;
const FilePath appInLocalInstallDir = target()->deploymentData().localInstallRoot()
+ deployedAppFilePath;
const FilePath appInLocalInstallDir = deploymentData.localInstallRoot() + deployedAppFilePath;
return appInLocalInstallDir.exists() ? appInLocalInstallDir : appInBuildDir;
}

View File

@@ -66,7 +66,7 @@ QString QmlPreviewFileOnTargetFinder::findPath(const QString &filePath, bool *su
return filePath;
ProjectExplorer::DeployableFile file
= m_target->deploymentData().deployableForLocalFile(filePath);
= m_target->deploymentData().deployableForLocalFile(Utils::FilePath::fromString(filePath));
if (file.isValid())
return file.remoteFilePath();

View File

@@ -70,12 +70,12 @@ QnxRunConfiguration::QnxRunConfiguration(Target *target, Core::Id id)
auto updateTargetInformation = [this, target, exeAspect, symbolsAspect] {
BuildTargetInfo bti = buildTargetInfo();
QString localExecutable = bti.targetFilePath.toString();
DeployableFile depFile = target->deploymentData().deployableForLocalFile(localExecutable);
const BuildTargetInfo bti = buildTargetInfo();
const FilePath localExecutable = bti.targetFilePath;
const DeployableFile depFile = target->deploymentData().deployableForLocalFile(localExecutable);
exeAspect->setExecutable(FilePath::fromString(depFile.remoteFilePath()));
symbolsAspect->setValue(localExecutable);
symbolsAspect->setFileName(localExecutable);
emit enabledChanged();
};

View File

@@ -90,11 +90,11 @@ Runnable RemoteLinuxRunConfiguration::runnable() const
void RemoteLinuxRunConfiguration::updateTargetInformation()
{
BuildTargetInfo bti = buildTargetInfo();
QString localExecutable = bti.targetFilePath.toString();
const FilePath localExecutable = bti.targetFilePath;
DeployableFile depFile = target()->deploymentData().deployableForLocalFile(localExecutable);
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(depFile.remoteFilePath()));
aspect<SymbolFileAspect>()->setValue(localExecutable);
aspect<SymbolFileAspect>()->setFileName(localExecutable);
emit enabledChanged();
}