Valgrind: Simplify RunControlFactory setup

Change-Id: Ibef142e84ce1d4aca299dd8fa53b1eabcf517100
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2017-07-03 13:55:25 +02:00
parent d12f5ca4aa
commit 3408b1ed30
9 changed files with 82 additions and 212 deletions

View File

@@ -28,7 +28,6 @@
#include "callgrindtool.h"
#include "memchecktool.h"
#include "valgrindruncontrolfactory.h"
#include "valgrindsettings.h"
#include "valgrindconfigwidget.h"
@@ -40,6 +39,7 @@
#include <coreplugin/dialogs/ioptionspage.h>
#include <coreplugin/icontext.h>
#include <coreplugin/icore.h>
#include <debugger/analyzer/analyzerrunconfigwidget.h>
#include <projectexplorer/projectexplorer.h>
@@ -88,6 +88,37 @@ private:
QPointer<QWidget> m_widget;
};
class ValgrindRunConfigurationAspect : public IRunConfigurationAspect
{
public:
ValgrindRunConfigurationAspect(RunConfiguration *parent)
: IRunConfigurationAspect(parent)
{
setProjectSettings(new ValgrindProjectSettings());
setGlobalSettings(ValgrindPlugin::globalSettings());
setId(ANALYZER_VALGRIND_SETTINGS);
setDisplayName(QCoreApplication::translate("Valgrind::Internal::ValgrindRunConfigurationAspect",
"Valgrind Settings"));
setUsingGlobalSettings(true);
resetProjectToGlobalSettings();
setRunConfigWidgetCreator([this] { return new Debugger::AnalyzerRunConfigWidget(this); });
}
ValgrindRunConfigurationAspect *create(RunConfiguration *parent) const override
{
return new ValgrindRunConfigurationAspect(parent);
}
};
class ValgrindRunControlFactory : public IRunControlFactory
{
public:
IRunConfigurationAspect *createRunConfigurationAspect(RunConfiguration *rc) override
{
return new ValgrindRunConfigurationAspect(rc);
}
};
ValgrindPlugin::~ValgrindPlugin()
{
delete theGlobalSettings;
@@ -100,6 +131,7 @@ bool ValgrindPlugin::initialize(const QStringList &, QString *)
theGlobalSettings->readSettings();
addAutoReleasedObject(new ValgrindOptionsPage);
addAutoReleasedObject(new ValgrindRunControlFactory);
return true;
}