summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2013-08-05 18:00:36 +0200
committerhjk <hjk121@nokiamail.com>2013-08-06 16:14:54 +0200
commit0d2ef9fca2f0801fc4168a5fedab528640c87e13 (patch)
treeec1171f8ed3507e826cc12cafcd4cdab9a4cd2e1
parentd95ae65c62e651715c89eed4d12b76eba26d7b58 (diff)
downloadqt-creator-0d2ef9fca2f0801fc4168a5fedab528640c87e13.tar.gz
Analyzer: Inline Setting::registerTool into its only user
Change-Id: I10f57785bd26a15aef6fe72f26e7bf28a3a8d31f Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
-rw-r--r--src/plugins/analyzerbase/analyzermanager.cpp1
-rw-r--r--src/plugins/analyzerbase/analyzersettings.cpp11
-rw-r--r--src/plugins/analyzerbase/analyzersettings.h2
-rw-r--r--src/plugins/analyzerbase/ianalyzertool.cpp5
-rw-r--r--src/plugins/analyzerbase/ianalyzertool.h3
-rw-r--r--src/plugins/valgrind/callgrindtool.cpp25
-rw-r--r--src/plugins/valgrind/memchecktool.cpp5
-rw-r--r--src/plugins/valgrind/memchecktool.h1
-rw-r--r--src/plugins/valgrind/valgrindplugin.cpp12
9 files changed, 30 insertions, 35 deletions
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index a71196a962..686bb000af 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -667,7 +667,6 @@ void AnalyzerManager::shutdown()
void AnalyzerManager::addTool(IAnalyzerTool *tool, const StartModes &modes)
{
m_instance->d->addTool(tool, modes);
- AnalyzerGlobalSettings::instance()->registerTool(tool);
}
QDockWidget *AnalyzerManager::createDockWidget(IAnalyzerTool *tool, const QString &title,
diff --git a/src/plugins/analyzerbase/analyzersettings.cpp b/src/plugins/analyzerbase/analyzersettings.cpp
index 6ce78412f8..e481edc36e 100644
--- a/src/plugins/analyzerbase/analyzersettings.cpp
+++ b/src/plugins/analyzerbase/analyzersettings.cpp
@@ -143,14 +143,11 @@ void AnalyzerGlobalSettings::writeSettings() const
settings->endGroup();
}
-void AnalyzerGlobalSettings::registerTool(IAnalyzerTool *tool)
+void AnalyzerGlobalSettings::registerConfig(AbstractAnalyzerSubConfig *config)
{
- AbstractAnalyzerSubConfig *config = tool->createGlobalSettings();
- if (config) {
- m_subConfigs.append(config);
- AnalyzerPlugin::instance()->addAutoReleasedObject(new AnalyzerOptionsPage(config));
- readSettings();
- }
+ instance()->m_subConfigs.append(config);
+ AnalyzerPlugin::instance()->addAutoReleasedObject(new AnalyzerOptionsPage(config));
+ m_instance->readSettings();
}
diff --git a/src/plugins/analyzerbase/analyzersettings.h b/src/plugins/analyzerbase/analyzersettings.h
index 328b0dc335..3bbd8c18e5 100644
--- a/src/plugins/analyzerbase/analyzersettings.h
+++ b/src/plugins/analyzerbase/analyzersettings.h
@@ -142,7 +142,7 @@ public:
void writeSettings() const;
void readSettings();
- void registerTool(IAnalyzerTool *tool);
+ static void registerConfig(AbstractAnalyzerSubConfig *config);
private:
AnalyzerGlobalSettings(QObject *parent);
diff --git a/src/plugins/analyzerbase/ianalyzertool.cpp b/src/plugins/analyzerbase/ianalyzertool.cpp
index 57a7f0379e..a982c2ae54 100644
--- a/src/plugins/analyzerbase/ianalyzertool.cpp
+++ b/src/plugins/analyzerbase/ianalyzertool.cpp
@@ -60,11 +60,6 @@ IAnalyzerTool::IAnalyzerTool(QObject *parent)
: QObject(parent)
{}
-AbstractAnalyzerSubConfig *IAnalyzerTool::createGlobalSettings()
-{
- return 0;
-}
-
AbstractAnalyzerSubConfig *IAnalyzerTool::createProjectSettings()
{
return 0;
diff --git a/src/plugins/analyzerbase/ianalyzertool.h b/src/plugins/analyzerbase/ianalyzertool.h
index b815665970..465434c82d 100644
--- a/src/plugins/analyzerbase/ianalyzertool.h
+++ b/src/plugins/analyzerbase/ianalyzertool.h
@@ -114,9 +114,6 @@ public:
/// Called when tools gets deselected.
virtual void toolDeselected() const {}
- /// Factory method to create the global tool setting
- virtual AbstractAnalyzerSubConfig *createGlobalSettings();
-
/// Factory method to create the project tool setting
virtual AbstractAnalyzerSubConfig *createProjectSettings();
};
diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp
index 85ef8d36c0..1a30eaedf9 100644
--- a/src/plugins/valgrind/callgrindtool.cpp
+++ b/src/plugins/valgrind/callgrindtool.cpp
@@ -210,10 +210,15 @@ public:
QAction *m_showCostsOfFunctionAction;
QString m_toggleCollectFunction;
- ValgrindGlobalSettings *m_settings; // Not owned
};
+static ValgrindGlobalSettings *globalSettings()
+{
+ return AnalyzerGlobalSettings::instance()->subConfig<ValgrindGlobalSettings>();
+}
+
+
CallgrindToolPrivate::CallgrindToolPrivate(CallgrindTool *parent)
: q(parent)
, m_dataModel(new DataModel(this))
@@ -238,7 +243,6 @@ CallgrindToolPrivate::CallgrindToolPrivate(CallgrindTool *parent)
, m_resetAction(0)
, m_pauseAction(0)
, m_showCostsOfFunctionAction(0)
- , m_settings(0)
{
m_updateTimer->setInterval(200);
m_updateTimer->setSingleShot(true);
@@ -249,8 +253,6 @@ CallgrindToolPrivate::CallgrindToolPrivate(CallgrindTool *parent)
m_proxyModel->setFilterKeyColumn(DataModel::NameColumn);
m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
- m_settings = AnalyzerGlobalSettings::instance()->subConfig<ValgrindGlobalSettings>();
-
connect(m_stackBrowser, SIGNAL(currentChanged()), SLOT(stackBrowserChanged()));
connect(m_updateTimer, SIGNAL(timeout()), SLOT(updateFilterString()));
}
@@ -397,8 +399,8 @@ void CallgrindToolPrivate::updateCostFormat()
m_calleesView->setCostFormat(format);
m_callersView->setCostFormat(format);
}
- if (m_settings)
- m_settings->setCostFormat(format);
+ if (ValgrindGlobalSettings *settings = globalSettings())
+ settings->setCostFormat(format);
}
void CallgrindToolPrivate::handleFilterProjectCosts()
@@ -798,13 +800,16 @@ QWidget *CallgrindToolPrivate::createWidgets()
layout->addWidget(button);
}
+
+ ValgrindGlobalSettings *settings = globalSettings();
+
// cycle detection
//action = new QAction(QLatin1String("Cycle Detection"), this); ///FIXME: icon
action = new QAction(QLatin1String("O"), this); ///FIXME: icon
action->setToolTip(tr("Enable cycle detection to properly handle recursive or circular function calls."));
action->setCheckable(true);
connect(action, SIGNAL(toggled(bool)), m_dataModel, SLOT(enableCycleDetection(bool)));
- connect(action, SIGNAL(toggled(bool)), m_settings, SLOT(setDetectCycles(bool)));
+ connect(action, SIGNAL(toggled(bool)), settings, SLOT(setDetectCycles(bool)));
layout->addWidget(createToolButton(action));
m_cycleDetection = action;
@@ -813,7 +818,7 @@ QWidget *CallgrindToolPrivate::createWidgets()
action->setToolTip(tr("This removes template parameter lists when displaying function names."));
action->setCheckable(true);
connect(action, SIGNAL(toggled(bool)), m_dataModel, SLOT(setShortenTemplates(bool)));
- connect(action, SIGNAL(toggled(bool)), m_settings, SLOT(setShortenTemplates(bool)));
+ connect(action, SIGNAL(toggled(bool)), settings, SLOT(setShortenTemplates(bool)));
layout->addWidget(createToolButton(action));
m_shortenTemplates = action;
@@ -834,8 +839,8 @@ QWidget *CallgrindToolPrivate::createWidgets()
layout->addWidget(filter);
m_searchFilter = filter;
- setCostFormat(m_settings->costFormat());
- enableCycleDetection(m_settings->detectCycles());
+ setCostFormat(settings->costFormat());
+ enableCycleDetection(settings->detectCycles());
layout->addWidget(new Utils::StyledSeparator);
layout->addStretch();
diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp
index 323d8eaf4f..2eb42de864 100644
--- a/src/plugins/valgrind/memchecktool.cpp
+++ b/src/plugins/valgrind/memchecktool.cpp
@@ -297,11 +297,6 @@ QString MemcheckTool::description() const
"memory leaks");
}
-AbstractAnalyzerSubConfig *MemcheckTool::createGlobalSettings()
-{
- return new ValgrindGlobalSettings();
-}
-
AbstractAnalyzerSubConfig *MemcheckTool::createProjectSettings()
{
return new ValgrindProjectSettings();
diff --git a/src/plugins/valgrind/memchecktool.h b/src/plugins/valgrind/memchecktool.h
index 6934465969..5560f6c31c 100644
--- a/src/plugins/valgrind/memchecktool.h
+++ b/src/plugins/valgrind/memchecktool.h
@@ -90,7 +90,6 @@ public:
QString description() const;
// Create the valgrind settings (for all valgrind tools)
- Analyzer::AbstractAnalyzerSubConfig *createGlobalSettings();
Analyzer::AbstractAnalyzerSubConfig *createProjectSettings();
private slots:
diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp
index f62d963eca..07e89087f2 100644
--- a/src/plugins/valgrind/valgrindplugin.cpp
+++ b/src/plugins/valgrind/valgrindplugin.cpp
@@ -35,6 +35,10 @@
#include "valgrindruncontrolfactory.h"
#include <analyzerbase/analyzermanager.h>
+#include <analyzerbase/analyzersettings.h>
+
+#include <valgrind/valgrindsettings.h>
+
#include <utils/hostosinfo.h>
#include <QtPlugin>
@@ -46,13 +50,17 @@ namespace Internal {
bool ValgrindPlugin::initialize(const QStringList &, QString *)
{
+ AnalyzerGlobalSettings::registerConfig(new ValgrindGlobalSettings());
+
StartModes modes;
if (!Utils::HostOsInfo::isWindowsHost())
modes.append(StartMode(StartLocal));
modes.append(StartMode(StartRemote));
- AnalyzerManager::addTool(new MemcheckTool(this), modes);
- AnalyzerManager::addTool(new CallgrindTool(this), modes);
+ IAnalyzerTool *memcheckTool = new MemcheckTool(this);
+ IAnalyzerTool *callgrindTool = new CallgrindTool(this);
+ AnalyzerManager::addTool(memcheckTool, modes);
+ AnalyzerManager::addTool(callgrindTool, modes);
addAutoReleasedObject(new ValgrindRunControlFactory());