From 0a33ef362a6980d3ef240b0049da8d1bc4e38a92 Mon Sep 17 00:00:00 2001
From: Yuchen Deng <loaden@gmail.com>
Date: Sat, 6 Oct 2012 10:54:54 +0800
Subject: [PATCH] Restore system kits only if the kit file exist

Change-Id: I2e5e31d2d744203d2a0834a3169a73c43e61447d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/projectexplorer/kitmanager.cpp | 23 +++++++++++-----------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp
index 1e8a4dc3785..d72e1d68a57 100644
--- a/src/plugins/projectexplorer/kitmanager.cpp
+++ b/src/plugins/projectexplorer/kitmanager.cpp
@@ -154,26 +154,25 @@ void KitManager::restoreKits()
 
     // read all kits from SDK
     QFileInfo systemSettingsFile(Core::ICore::settings(QSettings::SystemScope)->fileName());
-    KitList system = restoreKits(Utils::FileName::fromString(systemSettingsFile.absolutePath() + QLatin1String(KIT_FILENAME)));
-    QList<Kit *> readKits = system.kits;
-    // make sure we mark these as autodetected!
-    foreach (Kit *k, readKits)
-        k->setAutoDetected(true);
-
-    kitsToRegister = readKits; // SDK kits are always considered to be up-to-date, so no need to
-                             // recheck them.
+    QFileInfo kitFile(systemSettingsFile.absolutePath(), QLatin1String(KIT_FILENAME));
+    if (kitFile.exists()) {
+        KitList system = restoreKits(Utils::FileName(kitFile));
+        // make sure we mark these as autodetected!
+        foreach (Kit *k, system.kits)
+            k->setAutoDetected(true);
+
+        // SDK kits are always considered to be up-to-date, so no need to recheck them.
+        kitsToRegister = system.kits;
+    }
 
     // read all kit chains from user file
     KitList userKits = restoreKits(settingsFileName());
-    readKits = userKits.kits;
-
-    foreach (Kit *k, readKits) {
+    foreach (Kit *k, userKits.kits) {
         if (k->isAutoDetected())
             kitsToCheck.append(k);
         else
             kitsToRegister.append(k);
     }
-    readKits.clear();
 
     // Then auto create kits:
     QList<Kit *> detectedKits;
-- 
GitLab