summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/project.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/project.cpp')
-rw-r--r--src/plugins/projectexplorer/project.cpp58
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;
}