diff options
Diffstat (limited to 'src/plugins/projectexplorer/project.cpp')
-rw-r--r-- | src/plugins/projectexplorer/project.cpp | 58 |
1 files changed, 17 insertions, 41 deletions
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index c754be241d..dcc632a14d 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -63,7 +63,6 @@ namespace ProjectExplorer { class ProjectPrivate { public: ProjectPrivate(); - QSet<QString> m_supportedTargetIds; QList<Target *> m_targets; Target *m_activeTarget; EditorConfiguration *m_editorConfiguration; @@ -102,34 +101,6 @@ QString Project::makeUnique(const QString &preferredName, const QStringList &use return tryName; } -QSet<QString> Project::supportedTargetIds() const -{ - return d->m_supportedTargetIds; -} - -QSet<QString> Project::possibleTargetIds() const -{ - QSet<QString> result(d->m_supportedTargetIds); - foreach (ProjectExplorer::Target *t, targets()) - result.remove(t->id()); - - return result; -} - -bool Project::canAddTarget(const QString &id) const -{ - return possibleTargetIds().contains(id); -} - -void Project::setSupportedTargetIds(const QSet<QString> &ids) -{ - if (ids == d->m_supportedTargetIds) - return; - - d->m_supportedTargetIds = ids; - emit supportedTargetIdsChanged(); -} - void Project::changeEnvironment() { Target *t(qobject_cast<Target *>(sender())); @@ -280,26 +251,31 @@ bool Project::fromMap(const QVariantMap &map) qWarning() << key << "was not found in data."; return false; } - QVariantMap targetMap = map.value(key).toMap(); + QVariantMap targetMap = map.value(key).toMap(); QList<ITargetFactory *> factories = ExtensionSystem::PluginManager::instance()->getObjects<ITargetFactory>(); Target *t = 0; - foreach (ITargetFactory *factory, factories) { - if (factory->canRestore(this, targetMap)) { - t = factory->restore(this, targetMap); - break; + + if(target(idFromMap(targetMap))) { + qWarning() << "Duplicated target id found, not restoring second target with id"<<idFromMap(targetMap)<<"(Continuing)"; + } else { + foreach (ITargetFactory *factory, factories) { + if (factory->canRestore(this, targetMap)) { + t = factory->restore(this, targetMap); + break; + } } - } - if (!t) { - qWarning() << "Restoration of a target failed! (Continuing)"; - continue; + if (!t) { + qWarning() << "Restoration of a target failed! (Continuing)"; + continue; + } + addTarget(t); + if (i == active) + setActiveTarget(t); } - addTarget(t); - if (i == active) - setActiveTarget(t); } return true; } |