From 6b6b1198dd5050a7a896ac9c7505ebcf2c9bce17 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Thu, 15 Jun 2023 13:36:59 +0200 Subject: [PATCH] Utils: Fix inverted logic for checkableDecider `BoolAspect::checkableDecider` was used only in CMakeProjectManager for askBeforePresetsReload and askBeforeReConfigureInitialParams. Now the checkbox with "Ask before presets reload" would also match with the display of the message box. Change-Id: I45fc7a977dbeb13df051375bd3dac36e7be7bdc4 Reviewed-by: hjk --- src/libs/utils/aspects.cpp | 10 +++++++++- src/libs/utils/aspects.h | 4 +++- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 2 +- .../cmakeprojectmanager/cmakeprojectmanager.cpp | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index f0868666c84..9bc51c7f530 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1607,7 +1607,15 @@ void BoolAspect::setLabelPlacement(BoolAspect::LabelPlacement labelPlacement) d->m_labelPlacement = labelPlacement; } -CheckableDecider BoolAspect::checkableDecider() +CheckableDecider BoolAspect::askAgainCheckableDecider() +{ + return CheckableDecider( + [this] { return value(); }, + [this] { setValue(true); } + ); +} + +CheckableDecider BoolAspect::doNotAskAgainCheckableDecider() { return CheckableDecider( [this] { return !value(); }, diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 22dcc9bb0df..146e89198d3 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -223,7 +223,9 @@ public: void addToLayout(Layouting::LayoutItem &parent) override; std::function groupChecker(); - Utils::CheckableDecider checkableDecider(); + + Utils::CheckableDecider askAgainCheckableDecider(); + Utils::CheckableDecider doNotAskAgainCheckableDecider(); QAction *action() override; diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 48acbe50c88..49879bac74f 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -594,7 +594,7 @@ void CMakeBuildSettingsWidget::reconfigureWithInitialParameters() Core::ICore::dialogParent(), Tr::tr("Re-configure with Initial Parameters"), Tr::tr("Clear CMake configuration and configure with initial parameters?"), - settings->askBeforeReConfigureInitialParams.checkableDecider(), + settings->askBeforeReConfigureInitialParams.askAgainCheckableDecider(), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 96d54518c33..88cb4e168a7 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -238,7 +238,7 @@ void CMakeManager::reloadCMakePresets() Tr::tr("Reload CMake Presets"), Tr::tr("Re-generates the kits that were created for CMake presets. All manual " "modifications to the CMake project settings will be lost."), - settings->askBeforePresetsReload.checkableDecider(), + settings->askBeforePresetsReload.askAgainCheckableDecider(), QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::Yes,