Analyzer: Store FancyMainWindow defaults without QSettings.

Store hash directly, do not keep QSettings objects around.
This commit is contained in:
Friedemann Kleint
2011-04-26 13:43:08 +02:00
parent f15f5945c0
commit be3768328e

View File

@@ -172,6 +172,8 @@ public:
class AnalyzerManager::AnalyzerManagerPrivate class AnalyzerManager::AnalyzerManagerPrivate
{ {
public: public:
typedef QHash<QString, QVariant> FancyMainWindowSettings;
AnalyzerManagerPrivate(AnalyzerManager *qq); AnalyzerManagerPrivate(AnalyzerManager *qq);
~AnalyzerManagerPrivate(); ~AnalyzerManagerPrivate();
@@ -214,7 +216,8 @@ public:
typedef QList<ToolWidgetPair> ToolWidgetPairList; typedef QList<ToolWidgetPair> ToolWidgetPairList;
QMap<IAnalyzerTool *, ToolWidgetPairList> m_toolWidgets; QMap<IAnalyzerTool *, ToolWidgetPairList> m_toolWidgets;
DockWidgetEventFilter *m_resizeEventFilter; DockWidgetEventFilter *m_resizeEventFilter;
QMap<IAnalyzerTool *, QSettings *> m_defaultSettings;
QMap<IAnalyzerTool *, FancyMainWindowSettings> m_defaultSettings;
// list of dock widgets to prevent memory leak // list of dock widgets to prevent memory leak
typedef QWeakPointer<QDockWidget> DockPtr; typedef QWeakPointer<QDockWidget> DockPtr;
@@ -712,9 +715,7 @@ void AnalyzerManager::addTool(IAnalyzerTool *tool)
tool->initialize(plugin); tool->initialize(plugin);
QSettings *defaultSettings = new QSettings(this); d->m_defaultSettings.insert(tool, d->m_mainWindow->saveSettings());
d->m_defaultSettings[tool] = defaultSettings;
d->m_mainWindow->saveSettings(defaultSettings);
loadToolSettings(tool); loadToolSettings(tool);
} }
@@ -737,11 +738,9 @@ QDockWidget *AnalyzerManager::createDockWidget(IAnalyzerTool *tool, const QStrin
IAnalyzerTool *AnalyzerManager::currentTool() const IAnalyzerTool *AnalyzerManager::currentTool() const
{ {
if (!d->m_toolGroup->checkedAction()) { if (const QAction *ca = d->m_toolGroup->checkedAction())
return 0; return d->m_tools.value(ca->data().toInt());
} return 0;
return d->m_tools.value(d->m_toolGroup->checkedAction()->data().toInt());
} }
QList<IAnalyzerTool *> AnalyzerManager::tools() const QList<IAnalyzerTool *> AnalyzerManager::tools() const