From c442b0332589a334a2eac5957d4cd2f1a1516084 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 7 Jan 2020 14:32:44 +0100 Subject: [PATCH] ProjectExplorer: Use new settings page convenience for BuildProperties Following the pattern introduced in 809e62e373. Change-Id: I7d31afbe5c66e0266ecbb75ab8ef58b4664d0832 Reviewed-by: Christian Kandeler --- .../buildpropertiessettingspage.cpp | 29 +++++-------------- .../buildpropertiessettingspage.h | 10 ------- 2 files changed, 7 insertions(+), 32 deletions(-) diff --git a/src/plugins/projectexplorer/buildpropertiessettingspage.cpp b/src/plugins/projectexplorer/buildpropertiessettingspage.cpp index 607a3b2d950..5055fb68875 100644 --- a/src/plugins/projectexplorer/buildpropertiessettingspage.cpp +++ b/src/plugins/projectexplorer/buildpropertiessettingspage.cpp @@ -34,11 +34,11 @@ namespace ProjectExplorer { namespace Internal { -class BuildPropertiesSettingsPage::SettingsWidget : public QWidget +class BuildPropertiesSettingsWidget : public Core::IOptionsPageWidget { Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::Internal::BuildPropertiesSettingsPage) public: - SettingsWidget() + BuildPropertiesSettingsWidget() { const BuildPropertiesSettings &settings = ProjectExplorerPlugin::buildPropertiesSettings(); for (QComboBox * const comboBox : {&m_separateDebugInfoComboBox, &m_qmlDebuggingComboBox, @@ -64,15 +64,17 @@ public: } } - BuildPropertiesSettings settings() const + void apply() final { BuildPropertiesSettings s; s.separateDebugInfo = TriState::fromVariant(m_separateDebugInfoComboBox.currentData()); s.qmlDebugging = TriState::fromVariant(m_qmlDebuggingComboBox.currentData()); s.qtQuickCompiler = TriState::fromVariant(m_qtQuickCompilerComboBox.currentData()); - return s; + ProjectExplorerPlugin::setBuildPropertiesSettings(s); } + void finish() final {} + private: QComboBox m_separateDebugInfoComboBox; QComboBox m_qmlDebuggingComboBox; @@ -84,24 +86,7 @@ BuildPropertiesSettingsPage::BuildPropertiesSettingsPage() setId("AB.ProjectExplorer.BuildPropertiesSettingsPage"); setDisplayName(tr("Default Build Properties")); setCategory(Constants::BUILD_AND_RUN_SETTINGS_CATEGORY); -} - -QWidget *BuildPropertiesSettingsPage::widget() -{ - if (!m_widget) - m_widget = new SettingsWidget; - return m_widget; -} - -void BuildPropertiesSettingsPage::apply() -{ - if (m_widget) - ProjectExplorerPlugin::setBuildPropertiesSettings(m_widget->settings()); -} - -void BuildPropertiesSettingsPage::finish() -{ - delete m_widget; + setWidgetCreator([] { return new BuildPropertiesSettingsWidget; }); } } // namespace Internal diff --git a/src/plugins/projectexplorer/buildpropertiessettingspage.h b/src/plugins/projectexplorer/buildpropertiessettingspage.h index 7b7c333a763..2064662d393 100644 --- a/src/plugins/projectexplorer/buildpropertiessettingspage.h +++ b/src/plugins/projectexplorer/buildpropertiessettingspage.h @@ -27,8 +27,6 @@ #include -#include - namespace ProjectExplorer { namespace Internal { @@ -37,14 +35,6 @@ class BuildPropertiesSettingsPage : public Core::IOptionsPage Q_OBJECT public: BuildPropertiesSettingsPage(); - -private: - QWidget *widget() override; - void apply() override; - void finish() override; - - class SettingsWidget; - QPointer m_widget; }; } // namespace Internal