gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

commit 73c04ee02510d30dae01c5a44a2fc6eda95bc986
parent 99c6d48ba5b0d45a24280ea6dc7286707fd3fcd9
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Thu, 18 Apr 2024 18:55:59 +0200

do not show lock regions menu if no lock regions defined

Diffstat:
Msource/jucePluginEditorLib/pluginEditorState.cpp | 63+++++++++++++++++++++++++++++++++------------------------------
1 file changed, 33 insertions(+), 30 deletions(-)

diff --git a/source/jucePluginEditorLib/pluginEditorState.cpp b/source/jucePluginEditorLib/pluginEditorState.cpp @@ -241,48 +241,51 @@ void PluginEditorState::openMenu() initContextMenu(menu); - juce::PopupMenu lockRegions; - auto& regions = m_processor.getController().getParameterDescriptions().getRegions(); - lockRegions.addItem("Unlock All", [&] + if(!regions.empty()) { - for (const auto& region : regions) - m_processor.getController().unlockRegion(region.first); - }); + juce::PopupMenu lockRegions; - lockRegions.addItem("Lock All", [&] - { - for (const auto& region : regions) - m_processor.getController().lockRegion(region.first); - }); + lockRegions.addItem("Unlock All", [&] + { + for (const auto& region : regions) + m_processor.getController().unlockRegion(region.first); + }); - lockRegions.addSeparator(); + lockRegions.addItem("Lock All", [&] + { + for (const auto& region : regions) + m_processor.getController().lockRegion(region.first); + }); - uint32_t count = 0; + lockRegions.addSeparator(); - std::map<std::string, pluginLib::ParameterRegion> sortedRegions; - for (const auto& region : regions) - sortedRegions.insert(region); + uint32_t count = 0; - for (const auto& region : sortedRegions) - { - lockRegions.addItem(region.second.getName(), true, m_processor.getController().isRegionLocked(region.first), [this, id=region.first] - { - if(m_processor.getController().isRegionLocked(id)) - m_processor.getController().unlockRegion(id); - else - m_processor.getController().lockRegion(id); - }); + std::map<std::string, pluginLib::ParameterRegion> sortedRegions; + for (const auto& region : regions) + sortedRegions.insert(region); - if(++count == 16) + for (const auto& region : sortedRegions) { - lockRegions.addColumnBreak(); - count = 0; + lockRegions.addItem(region.second.getName(), true, m_processor.getController().isRegionLocked(region.first), [this, id=region.first] + { + if(m_processor.getController().isRegionLocked(id)) + m_processor.getController().unlockRegion(id); + else + m_processor.getController().lockRegion(id); + }); + + if(++count == 16) + { + lockRegions.addColumnBreak(); + count = 0; + } } - } - menu.addSubMenu("Lock Regions...", lockRegions); + menu.addSubMenu("Lock Regions...", lockRegions); + } { const auto allowAdvanced = config.getBoolValue("allow_advanced_options", false);