ProjectExplorer/Analyzer: Merge RunConfigurationAspects

The Analyzer implementation is now simple and still generic enough
to serve as general base.

Change-Id: I050a21919bf128929b77a64da1f46d157691d849
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
hjk
2013-08-12 17:04:10 +02:00
parent 02105ddf62
commit 20d7d5e5b7
28 changed files with 236 additions and 380 deletions

View File

@@ -47,7 +47,6 @@
#include <valgrind/valgrindsettings.h>
#include <analyzerbase/analyzermanager.h>
#include <analyzerbase/analyzersettings.h>
#include <analyzerbase/analyzerutils.h>
#include <analyzerbase/analyzerconstants.h>
@@ -546,8 +545,7 @@ AnalyzerRunControl *CallgrindToolPrivate::createRunControl(const AnalyzerStartPa
// apply project settings
if (runConfiguration) {
if (AnalyzerRunConfigurationAspect *analyzerAspect
= runConfiguration->extraAspect<AnalyzerRunConfigurationAspect>(ANALYZER_VALGRIND_SETTINGS)) {
if (IRunConfigurationAspect *analyzerAspect = runConfiguration->extraAspect(ANALYZER_VALGRIND_SETTINGS)) {
if (const ValgrindBaseSettings *settings = qobject_cast<ValgrindBaseSettings *>(analyzerAspect->currentSettings())) {
m_visualisation->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
m_proxyModel->setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);

View File

@@ -32,8 +32,6 @@
#include "valgrindsettings.h"
#include <analyzerbase/analyzersettings.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/taskhub.h>

View File

@@ -231,8 +231,8 @@ void MemcheckTool::maybeActiveRunConfigurationChanged()
if (Project *project = pe->startupProject())
if (Target *target = project->activeTarget())
if (RunConfiguration *rc = target->activeRunConfiguration())
if (AnalyzerRunConfigurationAspect *aspect = rc->extraAspect<AnalyzerRunConfigurationAspect>(ANALYZER_VALGRIND_SETTINGS))
settings = qobject_cast<ValgrindBaseSettings *>(aspect->projectSettings());
if (IRunConfigurationAspect *aspect = rc->extraAspect(ANALYZER_VALGRIND_SETTINGS))
settings = qobject_cast<ValgrindBaseSettings *>(aspect->currentSettings());
if (!settings) // fallback to global settings
settings = ValgrindPlugin::globalSettings();

View File

@@ -64,8 +64,8 @@ ValgrindRunControl::ValgrindRunControl(const AnalyzerStartParameters &sp,
m_isStopping(false)
{
if (runConfiguration)
if (AnalyzerRunConfigurationAspect *aspect = runConfiguration->extraAspect<AnalyzerRunConfigurationAspect>(ANALYZER_VALGRIND_SETTINGS))
m_settings = qobject_cast<ValgrindBaseSettings *>(aspect->projectSettings());
if (IRunConfigurationAspect *aspect = runConfiguration->extraAspect(ANALYZER_VALGRIND_SETTINGS))
m_settings = qobject_cast<ValgrindBaseSettings *>(aspect->currentSettings());
if (!m_settings)
m_settings = ValgrindPlugin::globalSettings();

View File

@@ -34,9 +34,9 @@
#include "memchecktool.h"
#include "valgrindruncontrolfactory.h"
#include "valgrindsettings.h"
#include "valgrindconfigwidget.h"
#include <analyzerbase/analyzermanager.h>
#include <analyzerbase/analyzersettings.h>
#include <coreplugin/dialogs/ioptionspage.h>
#include <coreplugin/actionmanager/actioncontainer.h>
@@ -73,7 +73,7 @@ public:
}
QWidget *createPage(QWidget *parent) {
return theGlobalSettings->createConfigWidget(parent);
return new ValgrindConfigWidget(theGlobalSettings, parent, true);
}
void apply() {

View File

@@ -35,7 +35,7 @@
#include <analyzerbase/analyzermanager.h>
#include <analyzerbase/analyzerstartparameters.h>
#include <analyzerbase/analyzerruncontrol.h>
#include <analyzerbase/analyzersettings.h>
#include <analyzerbase/analyzerrunconfigwidget.h>
#include <remotelinux/remotelinuxrunconfiguration.h>
@@ -108,14 +108,34 @@ RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration
return AnalyzerManager::createRunControl(sp, runConfiguration);
}
class ValgrindRunConfigurationAspect : public IRunConfigurationAspect
{
public:
ValgrindRunConfigurationAspect(RunConfiguration *parent)
: IRunConfigurationAspect(parent)
{
setProjectSettings(new ValgrindProjectSettings());
setGlobalSettings(ValgrindPlugin::globalSettings());
setId(ANALYZER_VALGRIND_SETTINGS);
setDisplayName(tr("Valgrind Settings"));
}
IRunConfigurationAspect *create(RunConfiguration *parent) const
{
return new ValgrindRunConfigurationAspect(parent);
}
RunConfigWidget *createConfigurationWidget()
{
return new Analyzer::AnalyzerRunConfigWidget(this);
}
};
IRunConfigurationAspect *ValgrindRunControlFactory::createRunConfigurationAspect(RunConfiguration *rc)
{
Q_UNUSED(rc);
IRunConfigurationAspect *aspect
= new AnalyzerRunConfigurationAspect(new ValgrindProjectSettings(), ValgrindPlugin::globalSettings());
aspect->setId(ANALYZER_VALGRIND_SETTINGS);
aspect->setDisplayName(tr("Valgrind Settings"));
return aspect;
return new ValgrindRunConfigurationAspect(rc);
}
} // namespace Internal

View File

@@ -31,8 +31,8 @@
#ifndef ANALYZER_INTERNAL_VALGRINDSETTINGS_H
#define ANALYZER_INTERNAL_VALGRINDSETTINGS_H
#include <analyzerbase/analyzersettings.h>
#include "callgrindcostdelegate.h"
#include <projectexplorer/runconfiguration.h>
#include <QObject>
#include <QString>
@@ -46,7 +46,7 @@ const char ANALYZER_VALGRIND_SETTINGS[] = "Analyzer.Valgrind.Settings";
/**
* Valgrind settings shared for global and per-project.
*/
class ValgrindBaseSettings : public Analyzer::ISettingsAspect
class ValgrindBaseSettings : public ProjectExplorer::ISettingsAspect
{
Q_OBJECT