1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-02 17:09:26 +02:00

Remove unwanted items from 'Select Command' in chains.

- Remove menu-version of effects.  They are already there because of EffectsManager.
-- This gets rid of all the entries with long paths in them.
- Mark more menu items as prompting, using '...', and so not suitable for chains.
This commit is contained in:
James Crook 2018-03-01 14:05:57 +00:00
parent 1ef4d73629
commit f01fed2ba2
3 changed files with 50 additions and 25 deletions

View File

@ -1230,8 +1230,8 @@ void AudacityProject::CreateMenusAndCommands()
c->AddItem(wxT("QuickHelp"), _("&Getting Started"), FN(OnQuickHelp)); c->AddItem(wxT("QuickHelp"), _("&Getting Started"), FN(OnQuickHelp));
c->AddItem(wxT("Manual"), wxT("Audacity &Manual"), FN(OnManual)); c->AddItem(wxT("Manual"), wxT("Audacity &Manual"), FN(OnManual));
#else #else
c->AddItem(wxT("QuickHelp"), _("&Quick Help"), FN(OnQuickHelp)); c->AddItem(wxT("QuickHelp"), _("&Quick Help..."), FN(OnQuickHelp));
c->AddItem(wxT("Manual"), _("&Manual"), FN(OnManual)); c->AddItem(wxT("Manual"), _("&Manual..."), FN(OnManual));
#endif #endif
@ -1371,10 +1371,10 @@ void AudacityProject::CreateMenusAndCommands()
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag); c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
c->BeginSubMenu(_("Mi&xer")); c->BeginSubMenu(_("Mi&xer"));
c->AddItem(wxT("OutputGain"), _("Ad&just Playback Volume"), FN(OnOutputGain)); c->AddItem(wxT("OutputGain"), _("Ad&just Playback Volume..."), FN(OnOutputGain));
c->AddItem(wxT("OutputGainInc"), _("&Increase Playback Volume"), FN(OnOutputGainInc)); c->AddItem(wxT("OutputGainInc"), _("&Increase Playback Volume"), FN(OnOutputGainInc));
c->AddItem(wxT("OutputGainDec"), _("&Decrease Playback Volume"), FN(OnOutputGainDec)); c->AddItem(wxT("OutputGainDec"), _("&Decrease Playback Volume"), FN(OnOutputGainDec));
c->AddItem(wxT("InputGain"), _("Adj&ust Recording Volume"), FN(OnInputGain)); c->AddItem(wxT("InputGain"), _("Adj&ust Recording Volume..."), FN(OnInputGain));
c->AddItem(wxT("InputGainInc"), _("I&ncrease Recording Volume"), FN(OnInputGainInc)); c->AddItem(wxT("InputGainInc"), _("I&ncrease Recording Volume"), FN(OnInputGainInc));
c->AddItem(wxT("InputGainDec"), _("D&ecrease Recording Volume"), FN(OnInputGainDec)); c->AddItem(wxT("InputGainDec"), _("D&ecrease Recording Volume"), FN(OnInputGainDec));
c->EndSubMenu(); c->EndSubMenu();
@ -1401,7 +1401,7 @@ void AudacityProject::CreateMenusAndCommands()
c->AddItem(wxT("PlayAtSpeed"), _("Pl&ay-at-Speed"), FN(OnPlayAtSpeed)); c->AddItem(wxT("PlayAtSpeed"), _("Pl&ay-at-Speed"), FN(OnPlayAtSpeed));
c->AddItem(wxT("PlayAtSpeedLooped"), _("&Loop Play-at-Speed"), FN(OnPlayAtSpeedLooped)); c->AddItem(wxT("PlayAtSpeedLooped"), _("&Loop Play-at-Speed"), FN(OnPlayAtSpeedLooped));
c->AddItem(wxT("PlayAtSpeedCutPreview"), _("Play C&ut Preview-at-Speed"), FN(OnPlayAtSpeedCutPreview)); c->AddItem(wxT("PlayAtSpeedCutPreview"), _("Play C&ut Preview-at-Speed"), FN(OnPlayAtSpeedCutPreview));
c->AddItem(wxT("SetPlaySpeed"), _("Ad&just Playback Speed"), FN(OnSetPlaySpeed)); c->AddItem(wxT("SetPlaySpeed"), _("Ad&just Playback Speed..."), FN(OnSetPlaySpeed));
c->AddItem(wxT("PlaySpeedInc"), _("&Increase Playback Speed"), FN(OnPlaySpeedInc)); c->AddItem(wxT("PlaySpeedInc"), _("&Increase Playback Speed"), FN(OnPlaySpeedInc));
c->AddItem(wxT("PlaySpeedDec"), _("&Decrease Playback Speed"), FN(OnPlaySpeedDec)); c->AddItem(wxT("PlaySpeedDec"), _("&Decrease Playback Speed"), FN(OnPlaySpeedDec));
@ -1429,16 +1429,16 @@ void AudacityProject::CreateMenusAndCommands()
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag); c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
c->BeginSubMenu(_("De&vice")); c->BeginSubMenu(_("De&vice"));
c->AddItem(wxT("InputDevice"), _("Change &Recording Device"), FN(OnInputDevice), wxT("Shift+I"), c->AddItem(wxT("InputDevice"), _("Change &Recording Device..."), FN(OnInputDevice), wxT("Shift+I"),
AudioIONotBusyFlag, AudioIONotBusyFlag,
AudioIONotBusyFlag); AudioIONotBusyFlag);
c->AddItem(wxT("OutputDevice"), _("Change &Playback Device"), FN(OnOutputDevice), wxT("Shift+O"), c->AddItem(wxT("OutputDevice"), _("Change &Playback Device..."), FN(OnOutputDevice), wxT("Shift+O"),
AudioIONotBusyFlag, AudioIONotBusyFlag,
AudioIONotBusyFlag); AudioIONotBusyFlag);
c->AddItem(wxT("AudioHost"), _("Change Audio &Host"), FN(OnAudioHost), wxT("Shift+H"), c->AddItem(wxT("AudioHost"), _("Change Audio &Host..."), FN(OnAudioHost), wxT("Shift+H"),
AudioIONotBusyFlag, AudioIONotBusyFlag,
AudioIONotBusyFlag); AudioIONotBusyFlag);
c->AddItem(wxT("InputChannels"), _("Change Recording Cha&nnels"), FN(OnInputChannels), wxT("Shift+N"), c->AddItem(wxT("InputChannels"), _("Change Recording Cha&nnels..."), FN(OnInputChannels), wxT("Shift+N"),
AudioIONotBusyFlag, AudioIONotBusyFlag,
AudioIONotBusyFlag); AudioIONotBusyFlag);
c->EndSubMenu(); c->EndSubMenu();
@ -1543,7 +1543,7 @@ void AudacityProject::CreateMenusAndCommands()
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag); c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
c->BeginSubMenu(_("&Track")); c->BeginSubMenu(_("&Track"));
c->AddItem(wxT("TrackPan"), _("Change P&an on Focused Track"), FN(OnTrackPan), wxT("Shift+P"), c->AddItem(wxT("TrackPan"), _("Change P&an on Focused Track..."), FN(OnTrackPan), wxT("Shift+P"),
TrackPanelHasFocus | TracksExistFlag, TrackPanelHasFocus | TracksExistFlag,
TrackPanelHasFocus | TracksExistFlag); TrackPanelHasFocus | TracksExistFlag);
c->AddItem(wxT("TrackPanLeft"), _("Pan &Left on Focused Track"), FN(OnTrackPanLeft), wxT("Alt+Shift+Left"), c->AddItem(wxT("TrackPanLeft"), _("Pan &Left on Focused Track"), FN(OnTrackPanLeft), wxT("Alt+Shift+Left"),
@ -1552,7 +1552,7 @@ void AudacityProject::CreateMenusAndCommands()
c->AddItem(wxT("TrackPanRight"), _("Pan &Right on Focused Track"), FN(OnTrackPanRight), wxT("Alt+Shift+Right"), c->AddItem(wxT("TrackPanRight"), _("Pan &Right on Focused Track"), FN(OnTrackPanRight), wxT("Alt+Shift+Right"),
TrackPanelHasFocus | TracksExistFlag, TrackPanelHasFocus | TracksExistFlag,
TrackPanelHasFocus | TracksExistFlag); TrackPanelHasFocus | TracksExistFlag);
c->AddItem(wxT("TrackGain"), _("Change Gai&n on Focused Track"), FN(OnTrackGain), wxT("Shift+G"), c->AddItem(wxT("TrackGain"), _("Change Gai&n on Focused Track..."), FN(OnTrackGain), wxT("Shift+G"),
TrackPanelHasFocus | TracksExistFlag, TrackPanelHasFocus | TracksExistFlag,
TrackPanelHasFocus | TracksExistFlag); TrackPanelHasFocus | TracksExistFlag);
c->AddItem(wxT("TrackGainInc"), _("&Increase Gain on Focused Track"), FN(OnTrackGainInc), wxT("Alt+Shift+Up"), c->AddItem(wxT("TrackGainInc"), _("&Increase Gain on Focused Track"), FN(OnTrackGainInc), wxT("Alt+Shift+Up"),
@ -1561,7 +1561,7 @@ void AudacityProject::CreateMenusAndCommands()
c->AddItem(wxT("TrackGainDec"), _("&Decrease Gain on Focused Track"), FN(OnTrackGainDec), wxT("Alt+Shift+Down"), c->AddItem(wxT("TrackGainDec"), _("&Decrease Gain on Focused Track"), FN(OnTrackGainDec), wxT("Alt+Shift+Down"),
TrackPanelHasFocus | TracksExistFlag, TrackPanelHasFocus | TracksExistFlag,
TrackPanelHasFocus | TracksExistFlag); TrackPanelHasFocus | TracksExistFlag);
c->AddItem(wxT("TrackMenu"), _("Op&en Menu on Focused Track"), FN(OnTrackMenu), wxT("Shift+M\tskipKeydown"), c->AddItem(wxT("TrackMenu"), _("Op&en Menu on Focused Track..."), FN(OnTrackMenu), wxT("Shift+M\tskipKeydown"),
TracksExistFlag | TrackPanelHasFocus, TracksExistFlag | TrackPanelHasFocus,
TracksExistFlag | TrackPanelHasFocus); TracksExistFlag | TrackPanelHasFocus);
c->AddItem(wxT("TrackMute"), _("M&ute/Unmute Focused Track"), FN(OnTrackMute), wxT("Shift+U"), c->AddItem(wxT("TrackMute"), _("M&ute/Unmute Focused Track"), FN(OnTrackMute), wxT("Shift+U"),
@ -1945,7 +1945,7 @@ void AudacityProject::AddEffectMenuItemGroup(CommandManager *c,
item, item,
FN(OnEffect), FN(OnEffect),
flags[i], flags[i],
flags[i], plugs[i]); flags[i], true, plugs[i]);
i++; i++;
} }
@ -1960,7 +1960,7 @@ void AudacityProject::AddEffectMenuItemGroup(CommandManager *c,
names[i], names[i],
FN(OnEffect), FN(OnEffect),
flags[i], flags[i],
flags[i], plugs[i]); flags[i], true, plugs[i]);
} }
if (max > 0) if (max > 0)

View File

@ -760,7 +760,7 @@ void CommandManager::InsertItem(const wxString & name,
} }
} }
CommandListEntry *entry = NewIdentifier(name, label_in, menu, finder, callback, false, 0, 0); CommandListEntry *entry = NewIdentifier(name, label_in, menu, finder, callback, false, 0, 0, false);
int ID = entry->id; int ID = entry->id;
wxString label = GetLabel(entry); wxString label = GetLabel(entry);
@ -804,9 +804,10 @@ void CommandManager::AddItem(const wxChar *name,
CommandFunctorPointer callback, CommandFunctorPointer callback,
CommandFlag flags, CommandFlag flags,
CommandMask mask, CommandMask mask,
bool bIsEffect,
const CommandParameter &parameter) const CommandParameter &parameter)
{ {
AddItem(name, label, finder, callback, wxT(""), flags, mask, -1, parameter); AddItem(name, label, finder, callback, wxT(""), flags, mask, -1, bIsEffect, parameter);
} }
void CommandManager::AddItem(const wxChar *name, void CommandManager::AddItem(const wxChar *name,
@ -817,6 +818,7 @@ void CommandManager::AddItem(const wxChar *name,
CommandFlag flags, CommandFlag flags,
CommandMask mask, CommandMask mask,
int checkmark, int checkmark,
bool bIsEffect,
const CommandParameter &parameter) const CommandParameter &parameter)
{ {
wxString cookedParameter; wxString cookedParameter;
@ -826,7 +828,7 @@ void CommandManager::AddItem(const wxChar *name,
cookedParameter = parameter; cookedParameter = parameter;
CommandListEntry *entry = CommandListEntry *entry =
NewIdentifier(name, label_in, accel, CurrentMenu(), finder, callback, NewIdentifier(name, label_in, accel, CurrentMenu(), finder, callback,
false, 0, 0, cookedParameter); false, 0, 0, bIsEffect, cookedParameter);
int ID = entry->id; int ID = entry->id;
wxString label = GetLabelWithDisabledAccel(entry); wxString label = GetLabelWithDisabledAccel(entry);
@ -855,7 +857,8 @@ void CommandManager::AddItem(const wxChar *name,
void CommandManager::AddItemList(const wxString & name, void CommandManager::AddItemList(const wxString & name,
const wxArrayString & labels, const wxArrayString & labels,
CommandHandlerFinder finder, CommandHandlerFinder finder,
CommandFunctorPointer callback) CommandFunctorPointer callback,
bool bIsEffect)
{ {
for (size_t i = 0, cnt = labels.GetCount(); i < cnt; i++) { for (size_t i = 0, cnt = labels.GetCount(); i < cnt; i++) {
CommandListEntry *entry = NewIdentifier(name, CommandListEntry *entry = NewIdentifier(name,
@ -865,7 +868,8 @@ void CommandManager::AddItemList(const wxString & name,
callback, callback,
true, true,
i, i,
cnt); cnt,
bIsEffect);
CurrentMenu()->Append(entry->id, GetLabel(entry)); CurrentMenu()->Append(entry->id, GetLabel(entry));
mbSeparatorAllowed = true; mbSeparatorAllowed = true;
} }
@ -892,7 +896,7 @@ void CommandManager::AddCommand(const wxChar *name,
CommandFlag flags, CommandFlag flags,
CommandMask mask) CommandMask mask)
{ {
NewIdentifier(name, label_in, accel, NULL, finder, callback, false, 0, 0, {}); NewIdentifier(name, label_in, accel, NULL, finder, callback, false, 0, 0, false, {});
if (flags != NoFlagsSpecifed || mask != NoFlagsSpecifed) { if (flags != NoFlagsSpecifed || mask != NoFlagsSpecifed) {
SetCommandFlags(name, flags, mask); SetCommandFlags(name, flags, mask);
@ -907,7 +911,7 @@ void CommandManager::AddGlobalCommand(const wxChar *name,
{ {
CommandListEntry *entry = CommandListEntry *entry =
NewIdentifier(name, label_in, accel, NULL, finder, callback, NewIdentifier(name, label_in, accel, NULL, finder, callback,
false, 0, 0, {}); false, 0, 0, false, {});
entry->enabled = false; entry->enabled = false;
entry->isGlobal = true; entry->isGlobal = true;
@ -945,7 +949,8 @@ CommandListEntry *CommandManager::NewIdentifier(const wxString & name,
CommandFunctorPointer callback, CommandFunctorPointer callback,
bool multi, bool multi,
int index, int index,
int count) int count,
bool bIsEffect)
{ {
return NewIdentifier(name, return NewIdentifier(name,
label.BeforeFirst(wxT('\t')), label.BeforeFirst(wxT('\t')),
@ -955,7 +960,9 @@ CommandListEntry *CommandManager::NewIdentifier(const wxString & name,
callback, callback,
multi, multi,
index, index,
count, {}); count,
bIsEffect,
{});
} }
CommandListEntry *CommandManager::NewIdentifier(const wxString & nameIn, CommandListEntry *CommandManager::NewIdentifier(const wxString & nameIn,
@ -967,6 +974,7 @@ CommandListEntry *CommandManager::NewIdentifier(const wxString & nameIn,
bool multi, bool multi,
int index, int index,
int count, int count,
bool bIsEffect,
const CommandParameter &parameter) const CommandParameter &parameter)
{ {
wxString name = nameIn; wxString name = nameIn;
@ -1031,6 +1039,7 @@ CommandListEntry *CommandManager::NewIdentifier(const wxString & nameIn,
entry->menu = menu; entry->menu = menu;
entry->finder = finder; entry->finder = finder;
entry->callback = callback; entry->callback = callback;
entry->isEffect = bIsEffect;
entry->multi = multi; entry->multi = multi;
entry->index = index; entry->index = index;
entry->count = count; entry->count = count;
@ -1644,6 +1653,8 @@ void CommandManager::GetAllCommandNames(wxArrayString &names,
bool includeMultis) bool includeMultis)
{ {
for(const auto &entry : mCommandList) { for(const auto &entry : mCommandList) {
if ( entry->isEffect )
continue;
if (!entry->multi) if (!entry->multi)
names.Add(entry->name); names.Add(entry->name);
else if( includeMultis ) else if( includeMultis )
@ -1655,6 +1666,12 @@ void CommandManager::GetAllCommandLabels(wxArrayString &names,
bool includeMultis) bool includeMultis)
{ {
for(const auto &entry : mCommandList) { for(const auto &entry : mCommandList) {
// This is fetching commands from the menus, for use as batch commands.
// Until we have properly merged EffectManager and CommandManager
// we explicitly exclude effects, as they are already handled by the
// effects Manager.
if ( entry->isEffect )
continue;
if (!entry->multi) if (!entry->multi)
names.Add(entry->label); names.Add(entry->label);
else if( includeMultis ) else if( includeMultis )
@ -1674,6 +1691,8 @@ void CommandManager::GetAllCommandData(
bool includeMultis) bool includeMultis)
{ {
for(const auto &entry : mCommandList) { for(const auto &entry : mCommandList) {
if ( entry->isEffect )
continue;
if (!entry->multi) if (!entry->multi)
{ {
names.Add(entry->name); names.Add(entry->name);

View File

@ -81,6 +81,7 @@ struct CommandListEntry
bool wantKeyup; bool wantKeyup;
bool isGlobal; bool isGlobal;
bool isOccult; bool isOccult;
bool isEffect;
CommandFlag flags; CommandFlag flags;
CommandMask mask; CommandMask mask;
}; };
@ -162,7 +163,8 @@ class AUDACITY_DLL_API CommandManager final : public XMLTagHandler
void AddItemList(const wxString & name, void AddItemList(const wxString & name,
const wxArrayString & labels, const wxArrayString & labels,
CommandHandlerFinder finder, CommandHandlerFinder finder,
CommandFunctorPointer callback); CommandFunctorPointer callback,
bool bIsEffect = false);
void AddCheck(const wxChar *name, void AddCheck(const wxChar *name,
const wxChar *label, const wxChar *label,
@ -184,6 +186,7 @@ class AUDACITY_DLL_API CommandManager final : public XMLTagHandler
CommandFunctorPointer callback, CommandFunctorPointer callback,
CommandFlag flags = NoFlagsSpecifed, CommandFlag flags = NoFlagsSpecifed,
CommandMask mask = NoFlagsSpecifed, CommandMask mask = NoFlagsSpecifed,
bool bIsEffect = false,
const CommandParameter &parameter = CommandParameter{}); const CommandParameter &parameter = CommandParameter{});
void AddItem(const wxChar *name, void AddItem(const wxChar *name,
@ -194,6 +197,7 @@ class AUDACITY_DLL_API CommandManager final : public XMLTagHandler
CommandFlag flags = NoFlagsSpecifed, CommandFlag flags = NoFlagsSpecifed,
CommandMask mask = NoFlagsSpecifed, CommandMask mask = NoFlagsSpecifed,
int checkmark = -1, int checkmark = -1,
bool bIsEffect = false,
const CommandParameter &parameter = CommandParameter{}); const CommandParameter &parameter = CommandParameter{});
void AddSeparator(); void AddSeparator();
@ -335,7 +339,8 @@ protected:
CommandFunctorPointer callback, CommandFunctorPointer callback,
bool multi, bool multi,
int index, int index,
int count); int count,
bool bIsEffect);
CommandListEntry *NewIdentifier(const wxString & name, CommandListEntry *NewIdentifier(const wxString & name,
const wxString & label, const wxString & label,
const wxString & accel, const wxString & accel,
@ -345,6 +350,7 @@ protected:
bool multi, bool multi,
int index, int index,
int count, int count,
bool bIsEffect,
const CommandParameter &parameter); const CommandParameter &parameter);
// //