From 8dc2b30c6b562ee526974a4b9b6ad581c4636840 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Wed, 4 Aug 2021 02:45:48 -0400 Subject: [PATCH] Add module deselection to context menu. --- include/app/RackWidget.hpp | 1 + src/app/ModuleWidget.cpp | 5 +++++ src/app/RackWidget.cpp | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/include/app/RackWidget.hpp b/include/app/RackWidget.hpp index 159fd8eb..8665e67d 100644 --- a/include/app/RackWidget.hpp +++ b/include/app/RackWidget.hpp @@ -71,6 +71,7 @@ struct RackWidget : widget::OpaqueWidget { history::ComplexAction* getModuleDragAction(); void updateModuleSelections(); + void clearModuleSelections(); int getNumSelectedModules(); std::list getSelectedModules(); void resetSelectedModulesAction(); diff --git a/src/app/ModuleWidget.cpp b/src/app/ModuleWidget.cpp index 3f833595..3bba9709 100644 --- a/src/app/ModuleWidget.cpp +++ b/src/app/ModuleWidget.cpp @@ -1088,6 +1088,11 @@ void ModuleWidget::createSelectionContextMenu() { int n = APP->scene->rack->getNumSelectedModules(); menu->addChild(createMenuLabel(string::f("%d selected %s", n, n == 1 ? "module" : "modules"))); + // Deselect + menu->addChild(createMenuItem("Deselect", "", [=]() { + APP->scene->rack->clearModuleSelections(); + })); + // Initialize menu->addChild(createMenuItem("Initialize", RACK_MOD_CTRL_NAME "+I", [=]() { APP->scene->rack->resetSelectedModulesAction(); diff --git a/src/app/RackWidget.cpp b/src/app/RackWidget.cpp index 25dbb670..ad436a93 100644 --- a/src/app/RackWidget.cpp +++ b/src/app/RackWidget.cpp @@ -653,6 +653,12 @@ void RackWidget::updateModuleSelections() { } } +void RackWidget::clearModuleSelections() { + for (ModuleWidget* mw : getModules()) { + mw->selected() = false; + } +} + int RackWidget::getNumSelectedModules() { int count = 0; for (widget::Widget* w : internal->moduleContainer->children) {