From ba71b3e9be62bb41a94d3e3833c791e60e1c7129 Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@digia.com>
Date: Fri, 14 Dec 2012 12:34:15 +0100
Subject: [PATCH] Analyzer: Fix soft assert on startup

Fix "SOFT ASSERT: str && *str" when using the analyzer for the
first time / with nuked settings.

Change-Id: Id6f0fc8031fc8d8a24d6d4c0badfbfbdc98974a9
Reviewed-by: hjk <qthjk@ovi.com>
---
 src/plugins/analyzerbase/analyzermanager.cpp | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 74348462084..74da58327ae 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -580,13 +580,16 @@ QAction *AnalyzerManagerPrivate::actionFromToolAndMode(IAnalyzerTool *tool, Star
 void AnalyzerManagerPrivate::selectSavedTool()
 {
     const QSettings *settings = ICore::settings();
-    const Id lastActiveAction(settings->value(QLatin1String(LAST_ACTIVE_TOOL)).toString());
-    foreach (QAction *action, m_actions) {
-        IAnalyzerTool *tool = m_toolFromAction.value(action);
-        StartMode mode = m_modeFromAction.value(action);
-        if (tool->actionId(mode) == lastActiveAction) {
-            selectTool(tool, mode);
-            return;
+
+    if (settings->contains(QLatin1String(LAST_ACTIVE_TOOL))) {
+        const Id lastActiveAction(settings->value(QLatin1String(LAST_ACTIVE_TOOL)).toString());
+        foreach (QAction *action, m_actions) {
+            IAnalyzerTool *tool = m_toolFromAction.value(action);
+            StartMode mode = m_modeFromAction.value(action);
+            if (tool->actionId(mode) == lastActiveAction) {
+                selectTool(tool, mode);
+                return;
+            }
         }
     }
     // fallback to first available tool
-- 
GitLab