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:
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);