ProjectExplorer: Add convenience Project::addTargetFor{Default,}Kit

Less noise on the user side.

Change-Id: I5cdf4af4910a3cc1ee0af1b43fcbc7329a6d59db
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-08-01 14:58:00 +02:00
parent 72fe2c706e
commit 09e5c167bd
10 changed files with 41 additions and 44 deletions

View File

@@ -267,6 +267,27 @@ void Project::addTarget(std::unique_ptr<Target> &&t)
SessionManager::setActiveTarget(this, pointer, SetActive::Cascade);
}
Target *Project::addTargetForDefaultKit()
{
return addTargetForKit(KitManager::defaultKit());
}
Target *Project::addTargetForKit(Kit *kit)
{
if (!kit || target(kit))
return nullptr;
auto t = std::make_unique<Target>(this, kit, Target::_constructor_tag{});
Target *pointer = t.get();
if (!setupTarget(pointer))
return {};
addTarget(std::move(t));
return pointer;
}
bool Project::removeTarget(Target *target)
{
QTC_ASSERT(target && Utils::contains(d->m_targets, target), return false);
@@ -336,17 +357,6 @@ Tasks Project::projectIssues(const Kit *k) const
return {};
}
std::unique_ptr<Target> Project::createTarget(Kit *k)
{
if (!k || target(k))
return nullptr;
auto t = std::make_unique<Target>(this, k, Target::_constructor_tag{});
if (!setupTarget(t.get()))
return {};
return t;
}
bool Project::copySteps(Target *sourceTarget, Target *newTarget)
{
QTC_ASSERT(newTarget, return false);