From 5e50b9d604ae8855c50f06a19bd1444509163a9f Mon Sep 17 00:00:00 2001 From: Alexander Pershin Date: Wed, 30 Nov 2022 01:10:44 +0300 Subject: CMake: Checkbox for showing advanced options by default Change-Id: I32f6ca068de60adf90eb0d9bc5eb7cfadc613e2d Reviewed-by: Cristian Adam Reviewed-by: Leena Miettinen --- src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | 3 +++ src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp | 7 +++++++ src/plugins/cmakeprojectmanager/cmakespecificsettings.h | 1 + 3 files changed, 11 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 098a85227e..31ab93d879 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -299,6 +299,9 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) : m_showAdvancedCheckBox = new QCheckBox(Tr::tr("Advanced")); + CMakeSpecificSettings *settings = CMakeProjectPlugin::projectTypeSpecificSettings(); + m_showAdvancedCheckBox->setChecked(settings->showAdvancedOptionsByDefault.value()); + connect(m_configView->selectionModel(), &QItemSelectionModel::selectionChanged, this, [this](const QItemSelection &, const QItemSelection &) { updateSelection(); diff --git a/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp b/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp index b87e539b88..8f4cadb40c 100644 --- a/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp +++ b/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp @@ -58,6 +58,12 @@ CMakeSpecificSettings::CMakeSpecificSettings() showSourceSubFolders.setDefaultValue(true); showSourceSubFolders.setLabelText( ::CMakeProjectManager::Tr::tr("Show subfolders inside source group folders")); + + registerAspect(&showAdvancedOptionsByDefault); + showAdvancedOptionsByDefault.setSettingsKey("ShowAdvancedOptionsByDefault"); + showAdvancedOptionsByDefault.setDefaultValue(false); + showAdvancedOptionsByDefault.setLabelText( + ::CMakeProjectManager::Tr::tr("Show advanced options by default")); } // CMakeSpecificSettingsPage @@ -82,6 +88,7 @@ CMakeSpecificSettingsPage::CMakeSpecificSettingsPage(CMakeSpecificSettings *sett s.packageManagerAutoSetup, s.askBeforeReConfigureInitialParams, s.showSourceSubFolders, + s.showAdvancedOptionsByDefault, st }.attachTo(widget); }); diff --git a/src/plugins/cmakeprojectmanager/cmakespecificsettings.h b/src/plugins/cmakeprojectmanager/cmakespecificsettings.h index 6fccc790b9..7b6b34e90f 100644 --- a/src/plugins/cmakeprojectmanager/cmakespecificsettings.h +++ b/src/plugins/cmakeprojectmanager/cmakespecificsettings.h @@ -25,6 +25,7 @@ public: Utils::BoolAspect packageManagerAutoSetup; Utils::BoolAspect askBeforeReConfigureInitialParams; Utils::BoolAspect showSourceSubFolders; + Utils::BoolAspect showAdvancedOptionsByDefault; }; class CMakeSpecificSettingsPage final : public Core::IOptionsPage -- cgit v1.2.3