ProjectExplorer: Remove direct runconfig dependency from ISettingsAspect

Change-Id: I5d8a6a31f6bf97c34163b64b8d37f9ea070717ba
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
hjk
2018-09-10 15:39:27 +02:00
parent 02d8dde4c9
commit 69753cf9b6
12 changed files with 29 additions and 53 deletions

View File

@@ -44,10 +44,8 @@
namespace Valgrind {
namespace Internal {
ValgrindConfigWidget::ValgrindConfigWidget(ValgrindBaseSettings *settings,
QWidget *parent, bool global)
: QWidget(parent),
m_settings(settings),
ValgrindConfigWidget::ValgrindConfigWidget(ValgrindBaseSettings *settings, bool global)
: m_settings(settings),
m_ui(new Ui::ValgrindConfigWidget)
{
m_ui->setupUi(this);

View File

@@ -44,7 +44,7 @@ class ValgrindConfigWidget : public QWidget
Q_OBJECT
public:
ValgrindConfigWidget(ValgrindBaseSettings *settings, QWidget *parent, bool global);
ValgrindConfigWidget(ValgrindBaseSettings *settings, bool global);
virtual ~ValgrindConfigWidget();
void setSuppressions(const QStringList &files);

View File

@@ -71,7 +71,7 @@ public:
QWidget *widget()
{
if (!m_widget)
m_widget = new ValgrindConfigWidget(theGlobalSettings, 0, true);
m_widget = new ValgrindConfigWidget(theGlobalSettings, true);
return m_widget;
}
@@ -95,7 +95,7 @@ public:
ValgrindRunConfigurationAspect(RunConfiguration *parent)
: IRunConfigurationAspect(parent)
{
setProjectSettings(new ValgrindProjectSettings(parent));
setProjectSettings(new ValgrindProjectSettings);
setGlobalSettings(ValgrindPlugin::globalSettings());
setId(ANALYZER_VALGRIND_SETTINGS);
setDisplayName(QCoreApplication::translate("Valgrind::Internal::ValgrindRunConfigurationAspect",

View File

@@ -81,6 +81,10 @@ template <typename T> void setIfPresent(const QVariantMap &map, const QString &k
*val = map.value(key).template value<T>();
}
ValgrindBaseSettings::ValgrindBaseSettings(const ConfigWidgetCreator &creator)
: ISettingsAspect(creator)
{}
void ValgrindBaseSettings::fromMap(const QVariantMap &map)
{
// General
@@ -113,10 +117,6 @@ void ValgrindBaseSettings::fromMap(const QVariantMap &map)
emit changed();
}
ValgrindBaseSettings::ValgrindBaseSettings(ProjectExplorer::RunConfiguration *runConfiguration) :
ProjectExplorer::ISettingsAspect(runConfiguration)
{}
void ValgrindBaseSettings::toMap(QVariantMap &map) const
{
// General
@@ -289,15 +289,11 @@ void ValgrindBaseSettings::setVisualisationMinimumInclusiveCostRatio(
//////////////////////////////////////////////////////////////////
ValgrindGlobalSettings::ValgrindGlobalSettings()
: ValgrindBaseSettings([this] { return new ValgrindConfigWidget(this, true); })
{
readSettings();
}
QWidget *ValgrindGlobalSettings::createConfigWidget(QWidget *parent)
{
return new ValgrindConfigWidget(this, parent, true);
}
void ValgrindGlobalSettings::fromMap(const QVariantMap &map)
{
ValgrindBaseSettings::fromMap(map);
@@ -475,16 +471,10 @@ void ValgrindGlobalSettings::setShortenTemplates(bool on)
//
//////////////////////////////////////////////////////////////////
ValgrindProjectSettings::ValgrindProjectSettings(
ProjectExplorer::RunConfiguration *runConfiguration) :
ValgrindBaseSettings(runConfiguration)
ValgrindProjectSettings::ValgrindProjectSettings()
: ValgrindBaseSettings([this] { return new ValgrindConfigWidget(this, false); })
{}
QWidget *ValgrindProjectSettings::createConfigWidget(QWidget *parent)
{
return new ValgrindConfigWidget(this, parent, false);
}
void ValgrindProjectSettings::fromMap(const QVariantMap &map)
{
ValgrindBaseSettings::fromMap(map);

View File

@@ -59,7 +59,7 @@ public:
LeakCheckOnFinishYes
};
ValgrindBaseSettings(ProjectExplorer::RunConfiguration *runConfiguration = nullptr);
ValgrindBaseSettings(const ConfigWidgetCreator &creator);
void toMap(QVariantMap &map) const override;
void fromMap(const QVariantMap &map) override;
@@ -183,7 +183,6 @@ class ValgrindGlobalSettings : public ValgrindBaseSettings
public:
ValgrindGlobalSettings();
QWidget *createConfigWidget(QWidget *parent) override;
void toMap(QVariantMap &map) const override;
void fromMap(const QVariantMap &map) override;
@@ -239,9 +238,8 @@ class ValgrindProjectSettings : public ValgrindBaseSettings
Q_OBJECT
public:
ValgrindProjectSettings(ProjectExplorer::RunConfiguration *runConfiguration);
ValgrindProjectSettings();
QWidget *createConfigWidget(QWidget *parent) override;
void toMap(QVariantMap &map) const override;
void fromMap(const QVariantMap &map) override;