forked from qt-creator/qt-creator
Analyzer: refactor global and project tool settings usage.
IAnalyzerTool has now 2 new virtual methods used to create the global and per-project settings. No need to create any static factory method and pass a pointer to them to the AnalyzerGlobalSettings instance anymore. The Valgrind plugin is now using it, the memchecktool creates the settings for all valgrind tools. Change-Id: I3c5845ceb7151130032cfff4ab5b7b36ca2459d9 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
committed by
hjk
parent
4a8432112a
commit
9b19a9c8e2
@@ -95,6 +95,7 @@ QVariantMap AnalyzerSettings::toMap(const QList<AbstractAnalyzerSubConfig *> &su
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
AnalyzerGlobalSettings::AnalyzerGlobalSettings(QObject *parent)
|
||||
: AnalyzerSettings(parent)
|
||||
{
|
||||
@@ -143,30 +144,26 @@ void AnalyzerGlobalSettings::writeSettings() const
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
void AnalyzerGlobalSettings::registerSubConfigs
|
||||
(AnalyzerSubConfigFactory globalCreator, AnalyzerSubConfigFactory projectCreator)
|
||||
void AnalyzerGlobalSettings::registerTool(IAnalyzerTool *tool)
|
||||
{
|
||||
m_projectSubConfigFactories.append(projectCreator);
|
||||
|
||||
AbstractAnalyzerSubConfig *config = globalCreator();
|
||||
m_subConfigs.append(config);
|
||||
AnalyzerPlugin::instance()->addAutoReleasedObject(new AnalyzerOptionsPage(config));
|
||||
|
||||
readSettings();
|
||||
AbstractAnalyzerSubConfig *config = tool->createGlobalSettings();
|
||||
if (config) {
|
||||
m_subConfigs.append(config);
|
||||
AnalyzerPlugin::instance()->addAutoReleasedObject(new AnalyzerOptionsPage(config));
|
||||
readSettings();
|
||||
}
|
||||
}
|
||||
|
||||
QList<AnalyzerSubConfigFactory> AnalyzerGlobalSettings::projectSubConfigFactories() const
|
||||
{
|
||||
return m_projectSubConfigFactories;
|
||||
}
|
||||
|
||||
AnalyzerProjectSettings::AnalyzerProjectSettings(QObject *parent)
|
||||
: AnalyzerSettings(parent), m_useGlobalSettings(true)
|
||||
{
|
||||
QList<IAnalyzerTool*> tools = AnalyzerManager::tools();
|
||||
// add sub configs
|
||||
foreach (AnalyzerSubConfigFactory factory, AnalyzerGlobalSettings::instance()->projectSubConfigFactories()) {
|
||||
AbstractAnalyzerSubConfig *config = factory();
|
||||
m_customConfigurations.append(config);
|
||||
foreach (IAnalyzerTool *tool, tools) {
|
||||
AbstractAnalyzerSubConfig *config = tool->createProjectSettings();
|
||||
if (config)
|
||||
m_customConfigurations.append(config);
|
||||
}
|
||||
|
||||
m_subConfigs = AnalyzerGlobalSettings::instance()->subConfigs();
|
||||
|
||||
Reference in New Issue
Block a user