diff options
| author | hjk <hjk@qt.io> | 2023-04-20 11:01:48 +0200 |
|---|---|---|
| committer | hjk <hjk@qt.io> | 2023-04-21 12:17:05 +0000 |
| commit | 654dae486ac926c81c4ec87a33ae03815f0c9621 (patch) | |
| tree | d57963b7aa6b396007c813adf8ec25364e72cc9d /src/plugins/cppcheck | |
| parent | 4659053df4cbea7c71e089d5b3f6f2a86b44e014 (diff) | |
| download | qt-creator-654dae486ac926c81c4ec87a33ae03815f0c9621.tar.gz | |
CppCheck: Use IOptionPage::setWidgetCreator() for settings
Change-Id: I0c2b9d96e53ddcecc3d25e519c3df21b1d09ddf7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cppcheck')
| -rw-r--r-- | src/plugins/cppcheck/cppcheckoptions.cpp | 50 | ||||
| -rw-r--r-- | src/plugins/cppcheck/cppcheckoptions.h | 10 |
2 files changed, 30 insertions, 30 deletions
diff --git a/src/plugins/cppcheck/cppcheckoptions.cpp b/src/plugins/cppcheck/cppcheckoptions.cpp index 11563430cc..9a16319bb2 100644 --- a/src/plugins/cppcheck/cppcheckoptions.cpp +++ b/src/plugins/cppcheck/cppcheckoptions.cpp @@ -120,6 +120,33 @@ void OptionsWidget::save(CppcheckOptions &options) const options.guessArguments = m_guessArguments->isChecked(); } +class CppcheckOptionsPageWidget : public Core::IOptionsPageWidget +{ +public: + CppcheckOptionsPageWidget(CppcheckOptionsPage *page) + : m_page(page) + { + m_optionWidget = new OptionsWidget; + + auto vbox = new QVBoxLayout(this); + vbox->addWidget(m_optionWidget); + + m_optionWidget->load(m_page->m_tool.options()); + } + + void apply() final + { + CppcheckOptions options; + m_optionWidget->save(options); + m_page->save(options); + m_page->m_tool.updateOptions(options); + m_page->m_trigger.recheck(); + } + + OptionsWidget *m_optionWidget; + CppcheckOptionsPage *m_page; +}; + CppcheckOptionsPage::CppcheckOptionsPage(CppcheckTool &tool, CppcheckTrigger &trigger): m_tool(tool), m_trigger(trigger) @@ -130,6 +157,8 @@ CppcheckOptionsPage::CppcheckOptionsPage(CppcheckTool &tool, CppcheckTrigger &tr setDisplayCategory(::Debugger::Tr::tr("Analyzer")); setCategoryIconPath(Analyzer::Icons::SETTINGSCATEGORY_ANALYZER); + setWidgetCreator([this] { return new CppcheckOptionsPageWidget(this); }); + CppcheckOptions options; if (HostOsInfo::isAnyUnixHost()) { options.binary = "cppcheck"; @@ -145,27 +174,6 @@ CppcheckOptionsPage::CppcheckOptionsPage(CppcheckTool &tool, CppcheckTrigger &tr m_tool.updateOptions(options); } -QWidget *CppcheckOptionsPage::widget() -{ - if (!m_widget) - m_widget = new OptionsWidget; - m_widget->load(m_tool.options()); - return m_widget.data(); -} - -void CppcheckOptionsPage::apply() -{ - CppcheckOptions options; - m_widget->save(options); - save(options); - m_tool.updateOptions(options); - m_trigger.recheck(); -} - -void CppcheckOptionsPage::finish() -{ -} - void CppcheckOptionsPage::save(const CppcheckOptions &options) const { QSettings *s = Core::ICore::settings(); diff --git a/src/plugins/cppcheck/cppcheckoptions.h b/src/plugins/cppcheck/cppcheckoptions.h index 7c23d69f60..48526cd540 100644 --- a/src/plugins/cppcheck/cppcheckoptions.h +++ b/src/plugins/cppcheck/cppcheckoptions.h @@ -6,10 +6,6 @@ #include <coreplugin/dialogs/ioptionspage.h> #include <utils/filepath.h> -#include <QCoreApplication> -#include <QPointer> -#include <QWidget> - QT_BEGIN_NAMESPACE class QLineEdit; class QCheckBox; @@ -75,17 +71,13 @@ class CppcheckOptionsPage final : public Core::IOptionsPage public: explicit CppcheckOptionsPage(CppcheckTool &tool, CppcheckTrigger &trigger); - QWidget *widget() final; - void apply() final; - void finish() final; - private: + friend class CppcheckOptionsPageWidget; void save(const CppcheckOptions &options) const; void load(CppcheckOptions &options) const; CppcheckTool &m_tool; CppcheckTrigger &m_trigger; - QPointer<OptionsWidget> m_widget; }; } // Cppcheck::Internal |
