forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
|
||||
@@ -32,8 +32,6 @@
|
||||
|
||||
#include "valgrindsettings.h"
|
||||
|
||||
#include <analyzerbase/analyzersettings.h>
|
||||
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
#include <projectexplorer/taskhub.h>
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user