From be3768328e136b2fd16f556ffd49474cc4892f2d Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 26 Apr 2011 13:43:08 +0200 Subject: [PATCH] Analyzer: Store FancyMainWindow defaults without QSettings. Store hash directly, do not keep QSettings objects around. --- src/plugins/analyzerbase/analyzermanager.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp index c20d31b349f..9607645311b 100644 --- a/src/plugins/analyzerbase/analyzermanager.cpp +++ b/src/plugins/analyzerbase/analyzermanager.cpp @@ -172,6 +172,8 @@ public: class AnalyzerManager::AnalyzerManagerPrivate { public: + typedef QHash FancyMainWindowSettings; + AnalyzerManagerPrivate(AnalyzerManager *qq); ~AnalyzerManagerPrivate(); @@ -214,7 +216,8 @@ public: typedef QList ToolWidgetPairList; QMap m_toolWidgets; DockWidgetEventFilter *m_resizeEventFilter; - QMap m_defaultSettings; + + QMap m_defaultSettings; // list of dock widgets to prevent memory leak typedef QWeakPointer DockPtr; @@ -712,9 +715,7 @@ void AnalyzerManager::addTool(IAnalyzerTool *tool) tool->initialize(plugin); - QSettings *defaultSettings = new QSettings(this); - d->m_defaultSettings[tool] = defaultSettings; - d->m_mainWindow->saveSettings(defaultSettings); + d->m_defaultSettings.insert(tool, d->m_mainWindow->saveSettings()); loadToolSettings(tool); } @@ -737,11 +738,9 @@ QDockWidget *AnalyzerManager::createDockWidget(IAnalyzerTool *tool, const QStrin IAnalyzerTool *AnalyzerManager::currentTool() const { - if (!d->m_toolGroup->checkedAction()) { - return 0; - } - - return d->m_tools.value(d->m_toolGroup->checkedAction()->data().toInt()); + if (const QAction *ca = d->m_toolGroup->checkedAction()) + return d->m_tools.value(ca->data().toInt()); + return 0; } QList AnalyzerManager::tools() const