diff options
Diffstat (limited to 'src/plugins/analyzerbase')
-rw-r--r-- | src/plugins/analyzerbase/analyzermanager.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp index 0963ac89ecc..9a2ef188c4d 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(); } |