From d2bb1151f5a3876ad352a4c9fdd9e9d90edcad02 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 19 Jul 2023 10:47:51 +0200 Subject: [PATCH] Valgrind: Merge configwidget population to settings aspect container Change-Id: I021ef0ea9b3ab48c805a8af282a4062ddd701dea Reviewed-by: Christian Stenger --- src/plugins/valgrind/CMakeLists.txt | 1 - src/plugins/valgrind/valgrind.qbs | 1 - src/plugins/valgrind/valgrindconfigwidget.cpp | 111 ------------------ src/plugins/valgrind/valgrindconfigwidget.h | 12 -- src/plugins/valgrind/valgrindplugin.cpp | 1 - src/plugins/valgrind/valgrindsettings.cpp | 84 ++++++++++++- src/plugins/valgrind/valgrindsettings.h | 1 - 7 files changed, 82 insertions(+), 129 deletions(-) delete mode 100644 src/plugins/valgrind/valgrindconfigwidget.cpp delete mode 100644 src/plugins/valgrind/valgrindconfigwidget.h diff --git a/src/plugins/valgrind/CMakeLists.txt b/src/plugins/valgrind/CMakeLists.txt index 3e1f149730f..e931c16ece2 100644 --- a/src/plugins/valgrind/CMakeLists.txt +++ b/src/plugins/valgrind/CMakeLists.txt @@ -26,7 +26,6 @@ add_qtc_plugin(Valgrind memchecktool.cpp memchecktool.h suppressiondialog.cpp suppressiondialog.h valgrind.qrc - valgrindconfigwidget.cpp valgrindconfigwidget.h valgrindengine.cpp valgrindengine.h valgrindplugin.cpp valgrindrunner.cpp valgrindrunner.h diff --git a/src/plugins/valgrind/valgrind.qbs b/src/plugins/valgrind/valgrind.qbs index 973b1d7b85a..590ecb4e73c 100644 --- a/src/plugins/valgrind/valgrind.qbs +++ b/src/plugins/valgrind/valgrind.qbs @@ -30,7 +30,6 @@ QtcPlugin { "memchecktool.cpp", "memchecktool.h", "suppressiondialog.cpp", "suppressiondialog.h", "valgrind.qrc", - "valgrindconfigwidget.cpp", "valgrindconfigwidget.h", "valgrindengine.cpp", "valgrindengine.h", "valgrindplugin.cpp", "valgrindrunner.cpp", "valgrindrunner.h", diff --git a/src/plugins/valgrind/valgrindconfigwidget.cpp b/src/plugins/valgrind/valgrindconfigwidget.cpp deleted file mode 100644 index cbd2339ecfc..00000000000 --- a/src/plugins/valgrind/valgrindconfigwidget.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "valgrindconfigwidget.h" -#include "valgrindsettings.h" -#include "valgrindtr.h" - -#include -#include - -#include - -#include -#include -#include - -using namespace Utils; - -namespace Valgrind::Internal { - -class ValgrindConfigWidget : public Core::IOptionsPageWidget -{ -public: - explicit ValgrindConfigWidget(ValgrindBaseSettings *settings); - - void apply() final - { - globalSettings().apply(); - globalSettings().writeSettings(); - } - - void finish() final - { - globalSettings().finish(); - } -}; - -ValgrindConfigWidget::ValgrindConfigWidget(ValgrindBaseSettings *settings) -{ - using namespace Layouting; - ValgrindBaseSettings &s = *settings; - // clang-format off - Grid generic { - s.valgrindExecutable, br, - s.valgrindArguments, br, - s.selfModifyingCodeDetection, br - }; - - Grid memcheck { - s.memcheckArguments, br, - s.trackOrigins, br, - s.showReachable, br, - s.leakCheckOnFinish, br, - s.numCallers, br, - s.filterExternalIssues, br, - s.suppressions - }; - - Grid callgrind { - s.callgrindArguments, br, - s.kcachegrindExecutable, br, - s.minimumInclusiveCostRatio, br, - s.visualizationMinimumInclusiveCostRatio, br, - s.enableEventToolTips, br, - Span { - 2, - Group { - Column { - s.enableCacheSim, - s.enableBranchSim, - s.collectSystime, - s.collectBusEvents, - } - } - } - }; - - Column { - Group { title(Tr::tr("Valgrind Generic Settings")), generic }, - Group { title(Tr::tr("Memcheck Memory Analysis Options")), memcheck }, - Group { title(Tr::tr("Callgrind Profiling Options")), callgrind }, - st, - }.attachTo(this); - // clang-format on -} - -// ValgrindOptionsPage - -class ValgrindOptionsPage final : public Core::IOptionsPage -{ -public: - ValgrindOptionsPage() - { - setId(ANALYZER_VALGRIND_SETTINGS); - setDisplayName(Tr::tr("Valgrind")); - setCategory("T.Analyzer"); - setDisplayCategory(::Debugger::Tr::tr("Analyzer")); - setCategoryIconPath(Analyzer::Icons::SETTINGSCATEGORY_ANALYZER); - setWidgetCreator([] { return new ValgrindConfigWidget(&globalSettings()); }); - } -}; - -const ValgrindOptionsPage settingsPage; - - -QWidget *createSettingsWidget(ValgrindBaseSettings *settings) -{ - return new ValgrindConfigWidget(settings); -} - -} // Valgrind::Internal diff --git a/src/plugins/valgrind/valgrindconfigwidget.h b/src/plugins/valgrind/valgrindconfigwidget.h deleted file mode 100644 index fe77030e914..00000000000 --- a/src/plugins/valgrind/valgrindconfigwidget.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -namespace Valgrind::Internal { - -QWidget *createSettingsWidget(class ValgrindBaseSettings *settings); - -} // Valgrind::Internal diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp index 3b3a8156163..7005efd98ff 100644 --- a/src/plugins/valgrind/valgrindplugin.cpp +++ b/src/plugins/valgrind/valgrindplugin.cpp @@ -3,7 +3,6 @@ #include "callgrindtool.h" #include "memchecktool.h" -#include "valgrindconfigwidget.h" #include "valgrindsettings.h" #include "valgrindtr.h" diff --git a/src/plugins/valgrind/valgrindsettings.cpp b/src/plugins/valgrind/valgrindsettings.cpp index c4e49e8d4ae..1446ab2712a 100644 --- a/src/plugins/valgrind/valgrindsettings.cpp +++ b/src/plugins/valgrind/valgrindsettings.cpp @@ -4,11 +4,14 @@ #include "valgrindsettings.h" #include "callgrindcostdelegate.h" -#include "valgrindconfigwidget.h" #include "valgrindtr.h" #include +#include +#include +#include + #include #include #include @@ -173,6 +176,14 @@ void SuppressionAspect::bufferToGui() d->m_model.appendRow(new QStandardItem(file.toUserOutput())); } +// ValgrindConfigWidget + + +QWidget *createSettingsWidget(ValgrindBaseSettings *settings) +{ + return settings->layouter()().emerge(); +} + ////////////////////////////////////////////////////////////////// // // ValgrindBaseSettings @@ -316,6 +327,54 @@ ValgrindBaseSettings::ValgrindBaseSettings(bool global) for (int i = 0; i < Valgrind::XmlProtocol::MemcheckErrorKindCount; ++i) defaultErrorKinds << i; visibleErrorKinds.setDefaultValue(defaultErrorKinds); + + setLayouter([this] { + using namespace Layouting; + + // clang-format off + Grid generic { + valgrindExecutable, br, + valgrindArguments, br, + selfModifyingCodeDetection, br + }; + + Grid memcheck { + memcheckArguments, br, + trackOrigins, br, + showReachable, br, + leakCheckOnFinish, br, + numCallers, br, + filterExternalIssues, br, + suppressions + }; + + Grid callgrind { + callgrindArguments, br, + kcachegrindExecutable, br, + minimumInclusiveCostRatio, br, + visualizationMinimumInclusiveCostRatio, br, + enableEventToolTips, br, + Span { + 2, + Group { + Column { + enableCacheSim, + enableBranchSim, + collectSystime, + collectBusEvents, + } + } + } + }; + + return Column { + Group { title(Tr::tr("Valgrind Generic Settings")), generic }, + Group { title(Tr::tr("Memcheck Memory Analysis Options")), memcheck }, + Group { title(Tr::tr("Callgrind Profiling Options")), callgrind }, + st, + }; + // clang-format on + }); } @@ -356,8 +415,8 @@ ValgrindGlobalSettings::ValgrindGlobalSettings() shortenTemplates.setToolTip(Tr::tr("Remove template parameter lists when displaying function names.")); setConfigWidgetCreator([this] { return createSettingsWidget(this); }); - readSettings(); + readSettings(); setAutoApply(false); } @@ -424,4 +483,25 @@ ValgrindProjectSettings::ValgrindProjectSettings() }); } +// +// ValgrindOptionsPage +// + +class ValgrindOptionsPage final : public Core::IOptionsPage +{ +public: + ValgrindOptionsPage() + { + setId(ANALYZER_VALGRIND_SETTINGS); + setDisplayName(Tr::tr("Valgrind")); + setCategory("T.Analyzer"); + setDisplayCategory(::Debugger::Tr::tr("Analyzer")); + setCategoryIconPath(Analyzer::Icons::SETTINGSCATEGORY_ANALYZER); + setSettingsProvider([] { return &globalSettings(); }); + } +}; + +const ValgrindOptionsPage settingsPage; + + } // Valgrind::Internal diff --git a/src/plugins/valgrind/valgrindsettings.h b/src/plugins/valgrind/valgrindsettings.h index eb4ef4e867b..9687a545ecf 100644 --- a/src/plugins/valgrind/valgrindsettings.h +++ b/src/plugins/valgrind/valgrindsettings.h @@ -100,7 +100,6 @@ public: QVariantMap defaultSettings() const; }; - /** * Global valgrind settings */