diff options
Diffstat (limited to 'src/plugins/projectexplorer/target.cpp')
-rw-r--r-- | src/plugins/projectexplorer/target.cpp | 73 |
1 files changed, 42 insertions, 31 deletions
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index b3f04c646f..6f898598d6 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -37,6 +37,7 @@ #include "kit.h" #include "kitinformation.h" #include "kitmanager.h" +#include "miniprojecttargetselector.h" #include "project.h" #include "projectexplorer.h" #include "projectexplorericons.h" @@ -46,8 +47,6 @@ #include <coreplugin/coreconstants.h> -#include <extensionsystem/pluginmanager.h> - #include <utils/algorithm.h> #include <utils/macroexpander.h> #include <utils/qtcassert.h> @@ -150,17 +149,16 @@ Target::Target(Project *project, Kit *k, _constructor_tag) : connect(km, &KitManager::kitUpdated, this, &Target::handleKitUpdates); connect(km, &KitManager::kitRemoved, this, &Target::handleKitRemoval); - Utils::MacroExpander *expander = macroExpander(); - expander->setDisplayName(tr("Target Settings")); - expander->setAccumulating(true); + d->m_macroExpander.setDisplayName(tr("Target Settings")); + d->m_macroExpander.setAccumulating(true); - expander->registerSubProvider([this] { return kit()->macroExpander(); }); + d->m_macroExpander.registerSubProvider([this] { return kit()->macroExpander(); }); - expander->registerVariable("sourceDir", tr("Source directory"), + d->m_macroExpander.registerVariable("sourceDir", tr("Source directory"), [project] { return project->projectDirectory().toUserOutput(); }); // Legacy support. - expander->registerVariable(Constants::VAR_CURRENTPROJECT_NAME, + d->m_macroExpander.registerVariable(Constants::VAR_CURRENTPROJECT_NAME, QCoreApplication::translate("ProjectExplorer", "Name of current project"), [project] { return project->displayName(); }, false); @@ -234,19 +232,22 @@ DeploymentData Target::buildSystemDeploymentData() const return buildSystem()->deploymentData(); } -const QList<BuildTargetInfo> Target::applicationTargets() const +BuildTargetInfo Target::buildTarget(const QString &buildKey) const { QTC_ASSERT(buildSystem(), return {}); - return buildSystem()->applicationTargets(); + return buildSystem()->buildTarget(buildKey); } -BuildTargetInfo Target::buildTarget(const QString &buildKey) const +QString Target::activeBuildKey() const { - QTC_ASSERT(buildSystem(), return {}); - return buildSystem()->buildTarget(buildKey); + // Should not happen. If it does, return a buildKey that wont be found in + // the project tree, so that the project()->findNodeForBuildKey(buildKey) + // returns null. + QTC_ASSERT(d->m_activeRunConfiguration, return QString(QChar(0))); + return d->m_activeRunConfiguration->buildKey(); } -Core::Id Target::id() const +Utils::Id Target::id() const { return d->m_kit->id(); } @@ -261,6 +262,16 @@ QString Target::toolTip() const return d->m_kit->toHtml(); } +QString Target::displayNameKey() +{ + return QString("ProjectExplorer.ProjectConfiguration.DisplayName"); +} + +QString Target::deviceTypeKey() +{ + return QString("DeviceType"); +} + void Target::addBuildConfiguration(BuildConfiguration *bc) { QTC_ASSERT(bc && !d->m_buildConfigurations.contains(bc), return); @@ -280,7 +291,7 @@ void Target::addBuildConfiguration(BuildConfiguration *bc) // add it d->m_buildConfigurations.push_back(bc); - project()->addedProjectConfiguration(bc); + ProjectExplorerPlugin::targetSelector()->addedBuildConfiguration(bc); emit addedBuildConfiguration(bc); d->m_buildConfigurationModel.addProjectConfiguration(bc); @@ -307,7 +318,7 @@ bool Target::removeBuildConfiguration(BuildConfiguration *bc) } emit removedBuildConfiguration(bc); - project()->removedProjectConfiguration(bc); + ProjectExplorerPlugin::targetSelector()->removedBuildConfiguration(bc); d->m_buildConfigurationModel.removeProjectConfiguration(bc); delete bc; @@ -349,7 +360,7 @@ void Target::addDeployConfiguration(DeployConfiguration *dc) // add it d->m_deployConfigurations.push_back(dc); - project()->addedProjectConfiguration(dc); + ProjectExplorerPlugin::targetSelector()->addedDeployConfiguration(dc); d->m_deployConfigurationModel.addProjectConfiguration(dc); emit addedDeployConfiguration(dc); @@ -377,7 +388,7 @@ bool Target::removeDeployConfiguration(DeployConfiguration *dc) SetActive::Cascade); } - project()->removedProjectConfiguration(dc); + ProjectExplorerPlugin::targetSelector()->removedDeployConfiguration(dc); d->m_deployConfigurationModel.removeProjectConfiguration(dc); emit removedDeployConfiguration(dc); @@ -428,7 +439,7 @@ void Target::addRunConfiguration(RunConfiguration *rc) d->m_runConfigurations.push_back(rc); - project()->addedProjectConfiguration(rc); + ProjectExplorerPlugin::targetSelector()->addedRunConfiguration(rc); d->m_runConfigurationModel.addProjectConfiguration(rc); emit addedRunConfiguration(rc); @@ -450,7 +461,7 @@ void Target::removeRunConfiguration(RunConfiguration *rc) } emit removedRunConfiguration(rc); - project()->removedProjectConfiguration(rc); + ProjectExplorerPlugin::targetSelector()->removedRunConfiguration(rc); d->m_runConfigurationModel.removeProjectConfiguration(rc); delete rc; @@ -501,15 +512,15 @@ QVariantMap Target::toMap() const return QVariantMap(); QVariantMap map; + map.insert(displayNameKey(), displayName()); + map.insert(deviceTypeKey(), DeviceTypeKitAspect::deviceTypeId(kit()).toSetting()); { // FIXME: For compatibility within the 4.11 cycle, remove this block later. // This is only read by older versions of Creator, but even there not actively used. const char CONFIGURATION_ID_KEY[] = "ProjectExplorer.ProjectConfiguration.Id"; - const char DISPLAY_NAME_KEY[] = "ProjectExplorer.ProjectConfiguration.DisplayName"; const char DEFAULT_DISPLAY_NAME_KEY[] = "ProjectExplorer.ProjectConfiguration.DefaultDisplayName"; map.insert(QLatin1String(CONFIGURATION_ID_KEY), id().toSetting()); - map.insert(QLatin1String(DISPLAY_NAME_KEY), displayName()); map.insert(QLatin1String(DEFAULT_DISPLAY_NAME_KEY), displayName()); } @@ -557,12 +568,12 @@ void Target::updateDefaultDeployConfigurations() return; } - QList<Core::Id> dcIds; + QList<Utils::Id> dcIds; foreach (DeployConfigurationFactory *dcFactory, dcFactories) dcIds.append(dcFactory->creationId()); QList<DeployConfiguration *> dcList = deployConfigurations(); - QList<Core::Id> toCreate = dcIds; + QList<Utils::Id> toCreate = dcIds; foreach (DeployConfiguration *dc, dcList) { if (dcIds.contains(dc->id())) @@ -571,7 +582,7 @@ void Target::updateDefaultDeployConfigurations() removeDeployConfiguration(dc); } - foreach (Core::Id id, toCreate) { + foreach (Utils::Id id, toCreate) { foreach (DeployConfigurationFactory *dcFactory, dcFactories) { if (dcFactory->creationId() == id) { DeployConfiguration *dc = dcFactory->create(this); @@ -614,7 +625,7 @@ void Target::updateDefaultRunConfigurations() bool present = false; for (const RunConfigurationCreationInfo &item : creators) { QString buildKey = rc->buildKey(); - if (item.id == rc->id() && item.buildKey == buildKey) { + if (item.factory->runConfigurationId() == rc->id() && item.buildKey == buildKey) { existing.append(item); present = true; } @@ -632,7 +643,7 @@ void Target::updateDefaultRunConfigurations() continue; bool exists = false; for (const RunConfigurationCreationInfo &ex : existing) { - if (ex.id == item.id && ex.buildKey == item.buildKey) + if (ex.factory == item.factory && ex.buildKey == item.buildKey) exists = true; } if (exists) @@ -641,7 +652,7 @@ void Target::updateDefaultRunConfigurations() RunConfiguration *rc = item.create(this); if (!rc) continue; - QTC_CHECK(rc->id() == item.id); + QTC_CHECK(rc->id() == item.factory->runConfigurationId()); if (!rc->isConfigured()) newUnconfigured << rc; else @@ -725,7 +736,7 @@ void Target::setNamedSettings(const QString &name, const QVariant &value) d->m_pluginSettings.insert(name, value); } -QVariant Target::additionalData(Core::Id id) const +QVariant Target::additionalData(Utils::Id id) const { return buildSystem()->additionalData(id); } @@ -837,7 +848,7 @@ bool Target::fromMap(const QVariantMap &map) QVariantMap valueMap = map.value(key).toMap(); DeployConfiguration *dc = DeployConfigurationFactory::restore(this, valueMap); if (!dc) { - Core::Id id = idFromMap(valueMap); + Utils::Id id = idFromMap(valueMap); qWarning("No factory found to restore deployment configuration of id '%s'!", id.isValid() ? qPrintable(id.toString()) : "UNKNOWN"); continue; @@ -867,7 +878,7 @@ bool Target::fromMap(const QVariantMap &map) RunConfiguration *rc = RunConfigurationFactory::restore(this, valueMap); if (!rc) continue; - const Core::Id theIdFromMap = ProjectExplorer::idFromMap(valueMap); + const Utils::Id theIdFromMap = ProjectExplorer::idFromMap(valueMap); if (!theIdFromMap.toString().contains("///::///")) { // Hack for cmake 4.10 -> 4.11 QTC_CHECK(rc->id().withSuffix(rc->buildKey()) == theIdFromMap); } |