ProjectExplorer: Remove BuildTargetInfoList wrapper class

Change-Id: I1a2ae06ec8c5b7278abca2386834d7edd31597d7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-05-03 17:26:49 +02:00
parent f3b6d60a01
commit ce449e4219
13 changed files with 27 additions and 41 deletions

View File

@@ -86,8 +86,7 @@ ChooseProFilePage::ChooseProFilePage(CreateAndroidManifestWizard *wizard)
currentBuildTarget = rc->buildKey(); currentBuildTarget = rc->buildKey();
m_comboBox = new QComboBox(this); m_comboBox = new QComboBox(this);
const BuildTargetInfoList buildTargets = wizard->target()->applicationTargets(); for (const BuildTargetInfo &bti : wizard->target()->applicationTargets()) {
for (const BuildTargetInfo &bti : buildTargets.list) {
const QString displayName = bti.buildKey; const QString displayName = bti.buildKey;
m_comboBox->addItem(displayName, QVariant(bti.buildKey)); // TODO something more? m_comboBox->addItem(displayName, QVariant(bti.buildKey)); // TODO something more?
if (bti.buildKey == currentBuildTarget) if (bti.buildKey == currentBuildTarget)
@@ -214,15 +213,15 @@ CreateAndroidManifestWizard::CreateAndroidManifestWizard(ProjectExplorer::Target
{ {
setWindowTitle(tr("Create Android Template Files Wizard")); setWindowTitle(tr("Create Android Template Files Wizard"));
const BuildTargetInfoList buildTargets = target->applicationTargets(); const QList<BuildTargetInfo> buildTargets = target->applicationTargets();
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit()); QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit());
m_copyGradle = version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0); m_copyGradle = version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0);
if (buildTargets.list.isEmpty()) { if (buildTargets.isEmpty()) {
// oh uhm can't create anything // oh uhm can't create anything
addPage(new NoApplicationProFilePage(this)); addPage(new NoApplicationProFilePage(this));
} else if (buildTargets.list.size() == 1) { } else if (buildTargets.size() == 1) {
setBuildKey(buildTargets.list.first().buildKey); setBuildKey(buildTargets.first().buildKey);
addPage(new ChooseDirectoryPage(this)); addPage(new ChooseDirectoryPage(this));
} else { } else {
addPage(new ChooseProFilePage(this)); addPage(new ChooseProFilePage(this));

View File

@@ -140,7 +140,7 @@ void TestConfiguration::completeTestInformation(TestRunMode runMode)
const QSet<QString> buildSystemTargets = m_buildTargets; const QSet<QString> buildSystemTargets = m_buildTargets;
qCDebug(LOG) << "BuildSystemTargets\n " << buildSystemTargets; qCDebug(LOG) << "BuildSystemTargets\n " << buildSystemTargets;
BuildTargetInfo targetInfo BuildTargetInfo targetInfo
= Utils::findOrDefault(target->applicationTargets().list, = Utils::findOrDefault(target->applicationTargets(),
[&buildSystemTargets] (const BuildTargetInfo &bti) { [&buildSystemTargets] (const BuildTargetInfo &bti) {
return buildSystemTargets.contains(bti.buildKey); return buildSystemTargets.contains(bti.buildKey);
}); });
@@ -148,7 +148,7 @@ void TestConfiguration::completeTestInformation(TestRunMode runMode)
// there would be no BuildTargetInfo that could match // there would be no BuildTargetInfo that could match
if (targetInfo.targetFilePath.isEmpty()) { if (targetInfo.targetFilePath.isEmpty()) {
qCDebug(LOG) << "BuildTargetInfos"; qCDebug(LOG) << "BuildTargetInfos";
const QList<BuildTargetInfo> buildTargets = target->applicationTargets().list; const QList<BuildTargetInfo> buildTargets = target->applicationTargets();
// if there is only one build target just use it (but be honest that we're deducing) // if there is only one build target just use it (but be honest that we're deducing)
if (buildTargets.size() == 1) { if (buildTargets.size() == 1) {
targetInfo = buildTargets.first(); targetInfo = buildTargets.first();

View File

@@ -192,9 +192,9 @@ bool CMakeBuildConfiguration::isParsing() const
return project()->isParsing() && isActive(); return project()->isParsing() && isActive();
} }
BuildTargetInfoList CMakeBuildConfiguration::appTargets() const const QList<BuildTargetInfo> CMakeBuildConfiguration::appTargets() const
{ {
BuildTargetInfoList appTargetList; QList<BuildTargetInfo> appTargetList;
bool forAndroid = DeviceTypeKitAspect::deviceTypeId(target()->kit()) == Android::Constants::ANDROID_DEVICE_TYPE; bool forAndroid = DeviceTypeKitAspect::deviceTypeId(target()->kit()) == Android::Constants::ANDROID_DEVICE_TYPE;
for (const CMakeBuildTarget &ct : m_buildTargets) { for (const CMakeBuildTarget &ct : m_buildTargets) {
if (ct.targetType == UtilityType) if (ct.targetType == UtilityType)
@@ -208,7 +208,7 @@ BuildTargetInfoList CMakeBuildConfiguration::appTargets() const
bti.projectFilePath.appendString('/'); bti.projectFilePath.appendString('/');
bti.workingDirectory = ct.workingDirectory; bti.workingDirectory = ct.workingDirectory;
bti.buildKey = CMakeTargetNode::generateId(ct.sourceDirectory, ct.title); bti.buildKey = CMakeTargetNode::generateId(ct.sourceDirectory, ct.title);
appTargetList.list.append(bti); appTargetList.append(bti);
} }
} }

View File

@@ -64,7 +64,7 @@ public:
QStringList buildTargetTitles() const; QStringList buildTargetTitles() const;
const QList<CMakeBuildTarget> &buildTargets() const; const QList<CMakeBuildTarget> &buildTargets() const;
ProjectExplorer::BuildTargetInfoList appTargets() const; const QList<ProjectExplorer::BuildTargetInfo> appTargets() const;
ProjectExplorer::DeploymentData deploymentData() const; ProjectExplorer::DeploymentData deploymentData() const;
static Utils::FileName static Utils::FileName

View File

@@ -78,7 +78,7 @@ void CMakeRunConfiguration::doAdditionalSetup(const RunConfigurationCreationInfo
bool CMakeRunConfiguration::isBuildTargetValid() const bool CMakeRunConfiguration::isBuildTargetValid() const
{ {
return Utils::anyOf(target()->applicationTargets().list, [this](const BuildTargetInfo &bti) { return Utils::anyOf(target()->applicationTargets(), [this](const BuildTargetInfo &bti) {
return bti.buildKey == buildKey(); return bti.buildKey == buildKey();
}); });
} }

View File

@@ -642,10 +642,7 @@ CompilationDatabaseBuildConfiguration::CompilationDatabaseBuildConfiguration(
ProjectExplorer::Target *target, Core::Id id) ProjectExplorer::Target *target, Core::Id id)
: ProjectExplorer::BuildConfiguration(target, id) : ProjectExplorer::BuildConfiguration(target, id)
{ {
BuildTargetInfoList appTargetList; target->setApplicationTargets({BuildTargetInfo()});
BuildTargetInfo bti;
appTargetList.list.append(bti);
target->setApplicationTargets(appTargetList);
} }
void CompilationDatabaseBuildConfiguration::initialize(const ProjectExplorer::BuildInfo &info) void CompilationDatabaseBuildConfiguration::initialize(const ProjectExplorer::BuildInfo &info)

View File

@@ -32,7 +32,6 @@
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <QList> #include <QList>
#include <QSet>
namespace ProjectExplorer { namespace ProjectExplorer {
@@ -76,10 +75,4 @@ inline uint qHash(const BuildTargetInfo &ti)
return qHash(ti.displayName) ^ qHash(ti.buildKey); return qHash(ti.displayName) ^ qHash(ti.buildKey);
} }
class PROJECTEXPLORER_EXPORT BuildTargetInfoList
{
public:
QList<BuildTargetInfo> list;
};
} // namespace ProjectExplorer } // namespace ProjectExplorer

View File

@@ -453,7 +453,7 @@ QString RunConfigurationFactory::decoratedTargetName(const QString &targetName,
QList<RunConfigurationCreationInfo> QList<RunConfigurationCreationInfo>
RunConfigurationFactory::availableCreators(Target *parent) const RunConfigurationFactory::availableCreators(Target *parent) const
{ {
const QList<BuildTargetInfo> buildTargets = parent->applicationTargets().list; const QList<BuildTargetInfo> buildTargets = parent->applicationTargets();
const bool hasAnyQtcRunnable = Utils::anyOf(buildTargets, const bool hasAnyQtcRunnable = Utils::anyOf(buildTargets,
Utils::equal(&BuildTargetInfo::isQtcRunnable, true)); Utils::equal(&BuildTargetInfo::isQtcRunnable, true));
return Utils::transform(buildTargets, [&](const BuildTargetInfo &ti) { return Utils::transform(buildTargets, [&](const BuildTargetInfo &ti) {
@@ -496,8 +496,6 @@ void RunConfigurationFactory::setDecorateDisplayNames(bool on)
m_decorateDisplayNames = on; m_decorateDisplayNames = on;
} }
void RunConfigurationFactory::addSupportedProjectType(Core::Id id) void RunConfigurationFactory::addSupportedProjectType(Core::Id id)
{ {
m_supportedProjectTypes.append(id); m_supportedProjectTypes.append(id);

View File

@@ -102,7 +102,7 @@ public:
QList<RunConfiguration *> m_runConfigurations; QList<RunConfiguration *> m_runConfigurations;
RunConfiguration* m_activeRunConfiguration = nullptr; RunConfiguration* m_activeRunConfiguration = nullptr;
DeploymentData m_deploymentData; DeploymentData m_deploymentData;
BuildTargetInfoList m_appTargets; QList<BuildTargetInfo> m_appTargets;
QVariantMap m_pluginSettings; QVariantMap m_pluginSettings;
Kit *const m_kit; Kit *const m_kit;
@@ -345,22 +345,22 @@ DeploymentData Target::deploymentData() const
return d->m_deploymentData; return d->m_deploymentData;
} }
void Target::setApplicationTargets(const BuildTargetInfoList &appTargets) void Target::setApplicationTargets(const QList<BuildTargetInfo> &appTargets)
{ {
if (appTargets.list.toSet() != d->m_appTargets.list.toSet()) { if (appTargets.toSet() != d->m_appTargets.toSet()) {
d->m_appTargets = appTargets; d->m_appTargets = appTargets;
emit applicationTargetsChanged(); emit applicationTargetsChanged();
} }
} }
BuildTargetInfoList Target::applicationTargets() const const QList<BuildTargetInfo> Target::applicationTargets() const
{ {
return d->m_appTargets; return d->m_appTargets;
} }
BuildTargetInfo Target::buildTarget(const QString &buildKey) const BuildTargetInfo Target::buildTarget(const QString &buildKey) const
{ {
return Utils::findOrDefault(d->m_appTargets.list, [&buildKey](const BuildTargetInfo &ti) { return Utils::findOrDefault(d->m_appTargets, [&buildKey](const BuildTargetInfo &ti) {
return ti.buildKey == buildKey; return ti.buildKey == buildKey;
}); });
} }

View File

@@ -36,7 +36,6 @@ QT_FORWARD_DECLARE_CLASS(QIcon)
namespace ProjectExplorer { namespace ProjectExplorer {
class BuildConfiguration; class BuildConfiguration;
class BuildTargetInfoList;
class BuildTargetInfo; class BuildTargetInfo;
class DeployConfiguration; class DeployConfiguration;
class DeploymentData; class DeploymentData;
@@ -82,8 +81,8 @@ public:
void setDeploymentData(const DeploymentData &deploymentData); void setDeploymentData(const DeploymentData &deploymentData);
DeploymentData deploymentData() const; DeploymentData deploymentData() const;
void setApplicationTargets(const BuildTargetInfoList &appTargets); void setApplicationTargets(const QList<BuildTargetInfo> &appTargets);
BuildTargetInfoList applicationTargets() const; const QList<BuildTargetInfo> applicationTargets() const;
BuildTargetInfo buildTarget(const QString &buildKey) const; BuildTargetInfo buildTarget(const QString &buildKey) const;
QList<ProjectConfiguration *> projectConfigurations() const; QList<ProjectConfiguration *> projectConfigurations() const;

View File

@@ -551,7 +551,7 @@ void PythonProject::refresh(Target *target)
parseProject(); parseProject();
const QDir baseDir(projectDirectory().toString()); const QDir baseDir(projectDirectory().toString());
BuildTargetInfoList appTargets; QList<BuildTargetInfo> appTargets;
auto newRoot = std::make_unique<PythonProjectNode>(this); auto newRoot = std::make_unique<PythonProjectNode>(this);
for (const QString &f : qAsConst(m_files)) { for (const QString &f : qAsConst(m_files)) {
const QString displayName = baseDir.relativeFilePath(f); const QString displayName = baseDir.relativeFilePath(f);
@@ -564,7 +564,7 @@ void PythonProject::refresh(Target *target)
bti.buildKey = f; bti.buildKey = f;
bti.targetFilePath = FileName::fromString(f); bti.targetFilePath = FileName::fromString(f);
bti.projectFilePath = projectFilePath(); bti.projectFilePath = projectFilePath();
appTargets.list.append(bti); appTargets.append(bti);
} }
} }
setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));

View File

@@ -1079,7 +1079,7 @@ void QbsProject::updateQmlJsCodeModel()
void QbsProject::updateApplicationTargets() void QbsProject::updateApplicationTargets()
{ {
BuildTargetInfoList applications; QList<BuildTargetInfo> applications;
foreach (const qbs::ProductData &productData, m_projectData.allProducts()) { foreach (const qbs::ProductData &productData, m_projectData.allProducts()) {
if (!productData.isEnabled() || !productData.isRunnable()) if (!productData.isEnabled() || !productData.isRunnable())
continue; continue;
@@ -1125,7 +1125,7 @@ void QbsProject::updateApplicationTargets()
} }
}; };
applications.list.append(bti); applications.append(bti);
} }
if (activeTarget()) if (activeTarget())
activeTarget()->setApplicationTargets(applications); activeTarget()->setApplicationTargets(applications);

View File

@@ -947,7 +947,7 @@ void QmakeProject::updateBuildSystemData()
collectData(file, deploymentData); collectData(file, deploymentData);
target->setDeploymentData(deploymentData); target->setDeploymentData(deploymentData);
BuildTargetInfoList appTargetList; QList<BuildTargetInfo> appTargetList;
rootProjectNode()->forEachProjectNode([this, target, &appTargetList](const ProjectNode *pn) { rootProjectNode()->forEachProjectNode([this, target, &appTargetList](const ProjectNode *pn) {
auto node = dynamic_cast<const QmakeProFileNode *>(pn); auto node = dynamic_cast<const QmakeProFileNode *>(pn);
@@ -1031,7 +1031,7 @@ void QmakeProject::updateBuildSystemData()
env.prependOrSetLibrarySearchPaths(libraryPaths); env.prependOrSetLibrarySearchPaths(libraryPaths);
}; };
appTargetList.list.append(bti); appTargetList.append(bti);
}); });
target->setApplicationTargets(appTargetList); target->setApplicationTargets(appTargetList);