aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-16 17:51:53 +0100
committerhjk <hjk@qt.io>2020-01-17 13:44:25 +0000
commit21f64457816bd27cb19bed8317ffce097d79d20c (patch)
tree8ff856b5b388d85a0341943ff543876f8cf1d950 /src/plugins/valgrind
parent952c7fcfd73569ee4991fc3d5d30dec04611432a (diff)
Valgrind: Apply new SettingsPage patterns
Change-Id: I7b2c7cf06ed79926fbbd00d4df479c0e0a7da249 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/valgrind')
-rw-r--r--src/plugins/valgrind/valgrindconfigwidget.cpp56
-rw-r--r--src/plugins/valgrind/valgrindconfigwidget.h33
-rw-r--r--src/plugins/valgrind/valgrindplugin.cpp37
-rw-r--r--src/plugins/valgrind/valgrindsettings.cpp4
4 files changed, 60 insertions, 70 deletions
diff --git a/src/plugins/valgrind/valgrindconfigwidget.cpp b/src/plugins/valgrind/valgrindconfigwidget.cpp
index 69a1560dfb8..513f2925789 100644
--- a/src/plugins/valgrind/valgrindconfigwidget.cpp
+++ b/src/plugins/valgrind/valgrindconfigwidget.cpp
@@ -30,12 +30,13 @@
#include "ui_valgrindconfigwidget.h"
+#include <debugger/analyzer/analyzericons.h>
+
#include <utils/algorithm.h>
#include <utils/hostosinfo.h>
#include <utils/qtcassert.h>
#include <QDebug>
-
#include <QStandardItemModel>
#include <QFileDialog>
@@ -44,7 +45,39 @@
namespace Valgrind {
namespace Internal {
-ValgrindConfigWidget::ValgrindConfigWidget(ValgrindBaseSettings *settings, bool global)
+class ValgrindBaseSettings;
+
+class ValgrindConfigWidget : public Core::IOptionsPageWidget
+{
+ Q_DECLARE_TR_FUNCTIONS(Valgrind::Internal::ValgrindConfigWidget)
+
+public:
+ explicit ValgrindConfigWidget(ValgrindBaseSettings *settings);
+ ~ValgrindConfigWidget() override;
+
+ void apply() final
+ {
+ ValgrindGlobalSettings::instance()->writeSettings();
+ }
+
+ void setSuppressions(const QStringList &files);
+ QStringList suppressions() const;
+
+ void slotAddSuppression();
+ void slotRemoveSuppression();
+ void slotSuppressionsRemoved(const QStringList &files);
+ void slotSuppressionsAdded(const QStringList &files);
+ void slotSuppressionSelectionChanged();
+
+private:
+ void updateUi();
+
+ ValgrindBaseSettings *m_settings;
+ Ui::ValgrindConfigWidget *m_ui;
+ QStandardItemModel *m_model;
+};
+
+ValgrindConfigWidget::ValgrindConfigWidget(ValgrindBaseSettings *settings)
: m_settings(settings),
m_ui(new Ui::ValgrindConfigWidget)
{
@@ -149,7 +182,7 @@ ValgrindConfigWidget::ValgrindConfigWidget(ValgrindBaseSettings *settings, bool
this, &ValgrindConfigWidget::slotSuppressionSelectionChanged);
slotSuppressionSelectionChanged();
- if (!global) {
+ if (settings != ValgrindGlobalSettings::instance()) {
// In project settings we want a flat vertical list.
auto l = new QVBoxLayout;
while (layout()->count()) {
@@ -268,5 +301,22 @@ void ValgrindConfigWidget::slotSuppressionSelectionChanged()
m_ui->removeSuppression->setEnabled(m_ui->suppressionList->selectionModel()->hasSelection());
}
+// ValgrindOptionsPage
+
+ValgrindOptionsPage::ValgrindOptionsPage()
+{
+ setId(ANALYZER_VALGRIND_SETTINGS);
+ setDisplayName(ValgrindConfigWidget::tr("Valgrind"));
+ setCategory("T.Analyzer");
+ setDisplayCategory(QCoreApplication::translate("Analyzer", "Analyzer"));
+ setCategoryIconPath(Analyzer::Icons::SETTINGSCATEGORY_ANALYZER);
+ setWidgetCreator([] { return new ValgrindConfigWidget(ValgrindGlobalSettings::instance()); });
+}
+
+QWidget *ValgrindOptionsPage::createSettingsWidget(ValgrindBaseSettings *settings)
+{
+ return new ValgrindConfigWidget(settings);
+}
+
} // namespace Internal
} // namespace Valgrind
diff --git a/src/plugins/valgrind/valgrindconfigwidget.h b/src/plugins/valgrind/valgrindconfigwidget.h
index a0e9bb15280..56807f2cb50 100644
--- a/src/plugins/valgrind/valgrindconfigwidget.h
+++ b/src/plugins/valgrind/valgrindconfigwidget.h
@@ -26,42 +26,17 @@
#pragma once
-#include <QWidget>
-
-QT_BEGIN_NAMESPACE
-class QStandardItemModel;
-QT_END_NAMESPACE
+#include <coreplugin/dialogs/ioptionspage.h>
namespace Valgrind {
namespace Internal {
-namespace Ui { class ValgrindConfigWidget; }
-
-class ValgrindBaseSettings;
-
-class ValgrindConfigWidget : public QWidget
+class ValgrindOptionsPage : public Core::IOptionsPage
{
- Q_OBJECT
-
public:
- ValgrindConfigWidget(ValgrindBaseSettings *settings, bool global);
- ~ValgrindConfigWidget() override;
-
- void setSuppressions(const QStringList &files);
- QStringList suppressions() const;
-
- void slotAddSuppression();
- void slotRemoveSuppression();
- void slotSuppressionsRemoved(const QStringList &files);
- void slotSuppressionsAdded(const QStringList &files);
- void slotSuppressionSelectionChanged();
-
-private:
- void updateUi();
+ ValgrindOptionsPage();
- ValgrindBaseSettings *m_settings;
- Ui::ValgrindConfigWidget *m_ui;
- QStandardItemModel *m_model;
+ static QWidget *createSettingsWidget(class ValgrindBaseSettings *settings);
};
} // namespace Internal
diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp
index 79a02e31184..ee0d1378516 100644
--- a/src/plugins/valgrind/valgrindplugin.cpp
+++ b/src/plugins/valgrind/valgrindplugin.cpp
@@ -53,40 +53,6 @@ using namespace ProjectExplorer;
namespace Valgrind {
namespace Internal {
-class ValgrindOptionsPage : public IOptionsPage
-{
-public:
- explicit ValgrindOptionsPage(QObject *parent)
- : IOptionsPage(parent)
- {
- setId(ANALYZER_VALGRIND_SETTINGS);
- setDisplayName(QCoreApplication::translate("Valgrind::Internal::ValgrindOptionsPage", "Valgrind"));
- setCategory("T.Analyzer");
- setDisplayCategory(QCoreApplication::translate("Analyzer", "Analyzer"));
- setCategoryIconPath(Analyzer::Icons::SETTINGSCATEGORY_ANALYZER);
- }
-
- QWidget *widget() override
- {
- if (!m_widget)
- m_widget = new ValgrindConfigWidget(ValgrindGlobalSettings::instance(), true);
- return m_widget;
- }
-
- void apply() override
- {
- ValgrindGlobalSettings::instance()->writeSettings();
- }
-
- void finish() override
- {
- delete m_widget;
- }
-
-private:
- QPointer<QWidget> m_widget;
-};
-
class ValgrindRunConfigurationAspect : public GlobalOrProjectAspect
{
public:
@@ -109,6 +75,7 @@ public:
ValgrindGlobalSettings valgrindGlobalSettings; // Needs to come before the tools.
MemcheckTool memcheckTool;
CallgrindTool callgrindTool;
+ ValgrindOptionsPage valgrindOptionsPage;
};
ValgrindPlugin::~ValgrindPlugin()
@@ -120,8 +87,6 @@ bool ValgrindPlugin::initialize(const QStringList &, QString *)
{
d = new ValgrindPluginPrivate;
- new ValgrindOptionsPage(this);
-
RunConfiguration::registerAspect<ValgrindRunConfigurationAspect>();
return true;
diff --git a/src/plugins/valgrind/valgrindsettings.cpp b/src/plugins/valgrind/valgrindsettings.cpp
index d4585d73b19..5c3db87c8f4 100644
--- a/src/plugins/valgrind/valgrindsettings.cpp
+++ b/src/plugins/valgrind/valgrindsettings.cpp
@@ -305,7 +305,7 @@ ValgrindGlobalSettings::ValgrindGlobalSettings()
{
theGlobalSettings = this;
- setConfigWidgetCreator([this] { return new ValgrindConfigWidget(this, true); });
+ setConfigWidgetCreator([this] { return ValgrindOptionsPage::createSettingsWidget(this); });
readSettings();
}
@@ -494,7 +494,7 @@ void ValgrindGlobalSettings::setShortenTemplates(bool on)
ValgrindProjectSettings::ValgrindProjectSettings()
{
- setConfigWidgetCreator([this] { return new ValgrindConfigWidget(this, false); });
+ setConfigWidgetCreator([this] { return ValgrindOptionsPage::createSettingsWidget(this); });
}
void ValgrindProjectSettings::fromMap(const QVariantMap &map)