diff options
author | hjk <hjk@qt.io> | 2020-01-16 17:51:53 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-17 13:44:25 +0000 |
commit | 21f64457816bd27cb19bed8317ffce097d79d20c (patch) | |
tree | 8ff856b5b388d85a0341943ff543876f8cf1d950 /src/plugins/valgrind | |
parent | 952c7fcfd73569ee4991fc3d5d30dec04611432a (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.cpp | 56 | ||||
-rw-r--r-- | src/plugins/valgrind/valgrindconfigwidget.h | 33 | ||||
-rw-r--r-- | src/plugins/valgrind/valgrindplugin.cpp | 37 | ||||
-rw-r--r-- | src/plugins/valgrind/valgrindsettings.cpp | 4 |
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) |