From 8fe0cb2be9c9493df5b5b811c875bd2334a36185 Mon Sep 17 00:00:00 2001
From: Tobias Hunger <tobias.hunger@nokia.com>
Date: Thu, 18 Feb 2010 18:37:11 +0100
Subject: [PATCH] Warn when failing to restore .user-file settings

---
 .../projectexplorer/buildconfiguration.cpp    | 24 ++++++++++++++-----
 src/plugins/projectexplorer/project.cpp       | 10 ++++++--
 src/plugins/qt4projectmanager/qt4project.cpp  |  4 +++-
 3 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index 05be2a1b472..b6b5f1fa904 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -126,14 +126,20 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
         maxI = 0;
     for (int i = 0; i < maxI; ++i) {
         QVariantMap bsData(map.value(QString::fromLatin1(BUILD_STEPS_PREFIX) + QString::number(i)).toMap());
-        if (bsData.isEmpty())
+        if (bsData.isEmpty()) {
+            qWarning() << "No buildstep data found (continuing).";
             continue;
+        }
         IBuildStepFactory *factory(findRestoreFactory(this, bsData));
-        if (!factory)
+        if (!factory) {
+            qWarning() << "No factory for buildstep found (continuing).";
             continue;
+        }
         BuildStep *bs(factory->restore(this, bsData));
-        if (!bs)
+        if (!bs) {
+            qWarning() << "Restoration of buildstep failed (continuing).";
             continue;
+        }
         insertBuildStep(m_buildSteps.count(), bs);
     }
 
@@ -142,14 +148,20 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
         maxI = 0;
     for (int i = 0; i < maxI; ++i) {
         QVariantMap bsData(map.value(QString::fromLatin1(CLEAN_STEPS_PREFIX) + QString::number(i)).toMap());
-        if (bsData.isEmpty())
+        if (bsData.isEmpty()) {
+            qWarning() << "No cleanstep data found for (continuing).";
             continue;
+        }
         IBuildStepFactory *factory(findRestoreFactory(this, bsData));
-        if (!factory)
+        if (!factory) {
+            qWarning() << "No factory for cleanstep found (continuing).";
             continue;
+        }
         BuildStep *bs(factory->restore(this, bsData));
-        if (!bs)
+        if (!bs) {
+            qWarning() << "Restoration of cleanstep failed (continuing).";
             continue;
+        }
         insertCleanStep(m_cleanSteps.count(), bs);
     }
 
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index 1537d5d9e7c..10d00aa4630 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -40,6 +40,8 @@
 #include <extensionsystem/pluginmanager.h>
 #include <utils/qtcassert.h>
 
+#include <QtCore/QDebug>
+
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 
@@ -245,11 +247,15 @@ bool Project::fromMap(const QVariantMap &map)
 
     for (int i = 0; i < maxI; ++i) {
         const QString key(QString::fromLatin1(TARGET_KEY_PREFIX) + QString::number(i));
-        if (!map.contains(key))
+        if (!map.contains(key)) {
+            qWarning() << key << "was not found in data.";
             return false;
+        }
         Target *t(targetFactory()->restore(this, map.value(key).toMap()));
-        if (!t)
+        if (!t) {
+            qWarning() << "Restoration of a target failed! (Continuing)";
             continue;
+        }
         addTarget(t);
         if (i == active)
             setActiveTarget(t);
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index f0734a2de3d..e20cc249156 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -277,8 +277,10 @@ bool Qt4Project::fromMap(const QVariantMap &map)
     // This can happen esp. when updating from a old version of Qt Creator
     QList<Target *>ts(targets());
     foreach (Target *t, ts) {
-        if (t->buildConfigurations().isEmpty())
+        if (t->buildConfigurations().isEmpty()) {
+            qWarning() << "Removing" << t->id() << "since it has no buildconfigurations!";
             removeTarget(t);
+        }
     }
 
     // Add buildconfigurations so we can parse the pro-files.
-- 
GitLab