aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/analyzerbase/analyzermanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/analyzerbase/analyzermanager.cpp')
-rw-r--r--src/plugins/analyzerbase/analyzermanager.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 0963ac89ec..9a2ef188c4 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -616,9 +616,15 @@ void AnalyzerManagerPrivate::selectSavedTool()
StartMode mode = m_modeFromAction.value(action);
if (tool->actionId(mode) == lastActiveAction) {
selectTool(tool, mode);
- break;
+ return;
}
}
+ // fallback to first available tool
+ if (!m_actions.isEmpty()) {
+ IAnalyzerTool *tool = m_toolFromAction.value(m_actions.first());
+ StartMode mode = m_modeFromAction.value(m_actions.first());
+ selectTool(tool, mode);
+ }
}
void AnalyzerManagerPrivate::selectMenuAction()
@@ -727,6 +733,8 @@ void AnalyzerManagerPrivate::loadToolSettings(IAnalyzerTool *tool)
settings->beginGroup(QLatin1String("AnalyzerViewSettings_") + tool->id());
if (settings->value("ToolSettingsSaved", false).toBool())
m_mainWindow->restoreSettings(settings);
+ else
+ m_mainWindow->restoreSettings(m_defaultSettings.value(tool));
settings->endGroup();
}