From 22f21b3245eb55c3dc74809881266014b485c497 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Mon, 29 Jul 2019 15:24:29 -0400 Subject: [PATCH] Enh2049 residual: do it without making a new dependency cycle... ... Do not include CommonCommandFlags in Menus.cpp, but PluginMenus is high-level enough to do the special case changing of flags. see commit 0bd1beae9a92c9753b04c160c0dd649ddd13939d --- src/Menus.cpp | 5 ----- src/menus/PluginMenus.cpp | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Menus.cpp b/src/Menus.cpp index 84fa4f97b..55d7feff4 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -38,7 +38,6 @@ #include "ProjectSettings.h" #include "UndoManager.h" #include "commands/CommandManager.h" -#include "CommonCommandFlags.h" #include "prefs/TracksPrefs.h" #include "toolbars/ToolManager.h" #include "widgets/ErrorDialog.h" @@ -306,10 +305,6 @@ void MenuCreator::CreateMenusAndCommands(AudacityProject &project) wxASSERT(menubar); VisitItem( project, menuTree.get() ); - commandManager.SetCommandFlags( - wxT("Noise Reduction..."), - AudioIONotBusyFlag | NoiseReductionTimeSelectedFlag | WaveTracksSelectedFlag - ); GetProjectFrame( project ).SetMenuBar(menubar.release()); mLastFlags = AlwaysEnabledFlag; diff --git a/src/menus/PluginMenus.cpp b/src/menus/PluginMenus.cpp index 1fd4bedad..4c1094973 100644 --- a/src/menus/PluginMenus.cpp +++ b/src/menus/PluginMenus.cpp @@ -203,6 +203,15 @@ void AddEffectMenuItems( grouped = true; } + // Some weird special case stuff just for Noise Reduction so that there is + // more informative help + const auto getBatchFlags = [&]( const PluginDescriptor *plug ){ + if ( plug->GetSymbol().Msgid() == wxT( "Noise Reduction" ) ) + return + ( batchflags | NoiseReductionTimeSelectedFlag ) & ~TimeSelectedFlag; + return batchflags; + }; + std::vector vHasDialog; wxArrayString groupNames; PluginIDs groupPlugs; @@ -266,7 +275,7 @@ void AddEffectMenuItems( vHasDialog.push_back(hasDialog); groupPlugs.push_back(plug->GetID()); groupFlags.push_back( - plug->IsEffectRealtime() ? realflags : batchflags); + plug->IsEffectRealtime() ? realflags : getBatchFlags( plug ) ); } if (groupNames.size() > 0) @@ -320,7 +329,8 @@ void AddEffectMenuItems( groupNames.push_back(group + name); vHasDialog.push_back(hasDialog); groupPlugs.push_back(plug->GetID()); - groupFlags.push_back(plug->IsEffectRealtime() ? realflags : batchflags); + groupFlags.push_back( + plug->IsEffectRealtime() ? realflags : getBatchFlags( plug ) ); } if (groupNames.size() > 0)