1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-16 16:10:06 +02:00

Add long names for some commands in menu.

This commit is contained in:
James Crook 2018-03-19 19:08:37 +00:00
parent 63879f2fc4
commit bd30e1f16d
3 changed files with 62 additions and 42 deletions

View File

@ -545,34 +545,34 @@ void AudacityProject::CreateMenusAndCommands()
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag | TimeSelectedFlag);
/* i18n-hint: (verb)*/
c->AddItem(wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels), wxT("Alt+X"),
c->SetLongName( _("Label Cut"))->AddItem(wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels), wxT("Alt+X"),
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag | TimeSelectedFlag | IsNotSyncLockedFlag,
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag | TimeSelectedFlag | IsNotSyncLockedFlag);
c->AddItem(wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels), wxT("Alt+K"),
c->SetLongName( _("Label Delete"))->AddItem(wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels), wxT("Alt+K"),
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag | TimeSelectedFlag | IsNotSyncLockedFlag,
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag | TimeSelectedFlag | IsNotSyncLockedFlag);
c->AddSeparator();
/* i18n-hint: (verb) A special way to cut out a piece of audio*/
c->AddItem(wxT("SplitCutLabels"), XXO("&Split Cut"), FN(OnSplitCutLabels), wxT("Alt+Shift+X"));
c->AddItem(wxT("SplitDeleteLabels"), XXO("Sp&lit Delete"), FN(OnSplitDeleteLabels), wxT("Alt+Shift+K"));
c->SetLongName( _("Label Split Cut"))->AddItem(wxT("SplitCutLabels"), XXO("&Split Cut"), FN(OnSplitCutLabels), wxT("Alt+Shift+X"));
c->SetLongName( _("Label Split Delete"))->AddItem(wxT("SplitDeleteLabels"), XXO("Sp&lit Delete"), FN(OnSplitDeleteLabels), wxT("Alt+Shift+K"));
c->AddSeparator();
c->AddItem(wxT("SilenceLabels"), XXO("Silence &Audio"), FN(OnSilenceLabels), wxT("Alt+L"));
c->SetLongName( _("Label Silence"))->AddItem(wxT("SilenceLabels"), XXO("Silence &Audio"), FN(OnSilenceLabels), wxT("Alt+L"));
/* i18n-hint: (verb)*/
c->AddItem(wxT("CopyLabels"), XXO("Co&py"), FN(OnCopyLabels), wxT("Alt+Shift+C"));
c->SetLongName( _("Label Copy"))->AddItem(wxT("CopyLabels"), XXO("Co&py"), FN(OnCopyLabels), wxT("Alt+Shift+C"));
c->AddSeparator();
/* i18n-hint: (verb)*/
c->AddItem(wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels), wxT("Alt+I"),
c->SetLongName( _("Label Split"))->AddItem(wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels), wxT("Alt+I"),
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag,
AudioIONotBusyFlag | LabelsSelectedFlag | WaveTracksExistFlag);
/* i18n-hint: (verb)*/
c->AddItem(wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels), wxT("Alt+J"));
c->SetLongName( _("Label Join"))->AddItem(wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels), wxT("Alt+J"));
c->AddItem(wxT("DisjoinLabels"), XXO("Detac&h at Silences"), FN(OnDisjoinLabels), wxT("Alt+Shift+J"));
c->EndSubMenu();
@ -608,8 +608,8 @@ void AudacityProject::CreateMenusAndCommands()
c->BeginMenu(_("&Select"));
c->SetDefaultFlags(TracksExistFlag, TracksExistFlag);
c->AddItem(wxT("SelectAll"), XXO("&All"), FN(OnSelectAll), wxT("Ctrl+A"));
c->AddItem(wxT("SelectNone"), XXO("&None"), FN(OnSelectNone), wxT("Ctrl+Shift+A"));
c->SetLongName( _("Select All"))->AddItem(wxT("SelectAll"), XXO("&All"), FN(OnSelectAll), wxT("Ctrl+A"));
c->SetLongName( _("Select None"))->AddItem(wxT("SelectNone"), XXO("&None"), FN(OnSelectNone), wxT("Ctrl+Shift+A"));
/////////////////////////////////////////////////////////////////////////////
@ -621,7 +621,7 @@ void AudacityProject::CreateMenusAndCommands()
TracksExistFlag, TracksExistFlag);
#ifdef EXPERIMENTAL_SYNC_LOCK
c->AddItem(wxT("SelSyncLockTracks"), XXO("In All &Sync-Locked Tracks"),
c->SetLongName( _("Select Sync-Locked"))->AddItem(wxT("SelSyncLockTracks"), XXO("In All &Sync-Locked Tracks"),
FN(OnSelectSyncLockSel), wxT("Ctrl+Shift+Y"),
TracksSelectedFlag | IsSyncLockedFlag,
TracksSelectedFlag | IsSyncLockedFlag);
@ -635,12 +635,12 @@ void AudacityProject::CreateMenusAndCommands()
c->BeginSubMenu(_("R&egion"));
c->AddItem(wxT("SetLeftSelection"), XXO("&Left at Playback Position"), FN(OnSetLeftSelection), wxT("["));
c->AddItem(wxT("SetRightSelection"), XXO("&Right at Playback Position"), FN(OnSetRightSelection), wxT("]"));
c->SetLongName( _("Set Selection Left at Play Position"))->AddItem(wxT("SetLeftSelection"), XXO("&Left at Playback Position"), FN(OnSetLeftSelection), wxT("["));
c->SetLongName( _("Set Selection Right at Play Position"))->AddItem(wxT("SetRightSelection"), XXO("&Right at Playback Position"), FN(OnSetRightSelection), wxT("]"));
c->SetDefaultFlags(TracksSelectedFlag, TracksSelectedFlag);
c->AddItem(wxT("SelectTrackStartToCursor"), XXO("Track &Start to Cursor"), FN(OnSelectStartCursor), wxT("Shift+J"),AlwaysEnabledFlag,AlwaysEnabledFlag);
c->AddItem(wxT("SelectCursorToTrackEnd"), XXO("Cursor to Track &End"), FN(OnSelectCursorEnd), wxT("Shift+K"),AlwaysEnabledFlag,AlwaysEnabledFlag);
c->AddItem(wxT("SelectTrackStartToEnd"), XXO("Track Start to En&d"), FN(OnSelectTrackStartToEnd), wxT(""),AlwaysEnabledFlag,AlwaysEnabledFlag);
c->SetLongName( _("Select Track Start to Cursor"))->AddItem(wxT("SelTrackStartToCursor"), XXO("Track &Start to Cursor"), FN(OnSelectStartCursor), wxT("Shift+J"),AlwaysEnabledFlag,AlwaysEnabledFlag);
c->SetLongName( _("Select Cursor to Track End"))->AddItem(wxT("SelCursorToTrackEnd"), XXO("Cursor to Track &End"), FN(OnSelectCursorEnd), wxT("Shift+K"),AlwaysEnabledFlag,AlwaysEnabledFlag);
c->SetLongName( _("Select Track Start to End"))->AddItem(wxT("SelTrackStartToEnd"), XXO("Track Start to En&d"), FN(OnSelectTrackStartToEnd), wxT(""),AlwaysEnabledFlag,AlwaysEnabledFlag);
c->AddSeparator();
// GA: Audacity had 'Store Re&gion' here previously. There is no one-step
// way to restore the 'Saved Cursor Position' in Select Menu, so arguably
@ -679,9 +679,9 @@ void AudacityProject::CreateMenusAndCommands()
c->AddItem(wxT("SelCursorToNextClipBoundary"), XXO("Cursor to Ne&xt Clip Boundary"),
FN(OnSelectCursorToNextClipBoundary), wxT(""),
WaveTracksExistFlag, WaveTracksExistFlag);
c->AddItem(wxT("SelPrevClip"), XXO("Previo&us Clip"), FN(OnSelectPrevClip), wxT("Alt+P"),
c->SetLongName( _("Select Previous Clip"))->AddItem(wxT("SelPrevClip"), XXO("Previo&us Clip"), FN(OnSelectPrevClip), wxT("Alt+P"),
WaveTracksExistFlag, WaveTracksExistFlag);
c->AddItem(wxT("SelNextClip"), XXO("N&ext Clip"), FN(OnSelectNextClip), wxT("Alt+N"),
c->SetLongName( _("Select Next Clip"))->AddItem(wxT("SelNextClip"), XXO("N&ext Clip"), FN(OnSelectNextClip), wxT("Alt+N"),
WaveTracksExistFlag, WaveTracksExistFlag);
c->EndSubMenu();
@ -689,7 +689,7 @@ void AudacityProject::CreateMenusAndCommands()
c->AddSeparator();
c->AddItem(wxT("SelCursorStoredCursor"), XXO("Cursor to Stored &Cursor Position"), FN(OnSelectCursorStoredCursor),
c->SetLongName( _("Select Cursor to Stored"))->AddItem(wxT("SelCursorStoredCursor"), XXO("Cursor to Stored &Cursor Position"), FN(OnSelectCursorStoredCursor),
wxT(""), TracksExistFlag, TracksExistFlag);
c->AddItem(wxT("StoreCursorPosition"), XXO("Store Cursor Pos&ition"), FN(OnCursorPositionStore),
@ -700,7 +700,7 @@ void AudacityProject::CreateMenusAndCommands()
c->AddSeparator();
c->AddItem(wxT("ZeroCross"), XXO("At &Zero Crossings"), FN(OnZeroCrossing), wxT("Z"));
c->SetLongName( _("Select Zero Crossing"))->AddItem(wxT("ZeroCross"), XXO("At &Zero Crossings"), FN(OnZeroCrossing), wxT("Z"));
c->EndMenu();
@ -735,9 +735,9 @@ void AudacityProject::CreateMenusAndCommands()
c->EndSubMenu();
c->BeginSubMenu(_("Sk&ip to"));
c->AddItem(wxT("SkipSelStart"), XXO("Selection Sta&rt"), FN(OnGoSelStart), wxT("Ctrl+["),
c->SetLongName( _("Skip to Selection Start"))->AddItem(wxT("SkipSelStart"), XXO("Selection Sta&rt"), FN(OnGoSelStart), wxT("Ctrl+["),
TimeSelectedFlag, TimeSelectedFlag);
c->AddItem(wxT("SkipSelEnd"), XXO("Selection En&d"), FN(OnGoSelEnd), wxT("Ctrl+]"),
c->SetLongName( _("Skip to Selection End"))->AddItem(wxT("SkipSelEnd"), XXO("Selection En&d"), FN(OnGoSelEnd), wxT("Ctrl+]"),
TimeSelectedFlag, TimeSelectedFlag);
c->EndSubMenu();
@ -877,23 +877,23 @@ void AudacityProject::CreateMenusAndCommands()
// selection. 'Cursor to' does neither. 'Center at' might describe it better than 'Skip'.
c->BeginSubMenu(_("&Cursor to"));
c->AddItem(wxT("CursSelStart"), XXO("Selection Star&t"), FN(OnCursorSelStart),
c->SetLongName( _("Cursor to Selection Start"))->AddItem(wxT("CursSelStart"), XXO("Selection Star&t"), FN(OnCursorSelStart),
TimeSelectedFlag, TimeSelectedFlag);
c->AddItem(wxT("CursSelEnd"), XXO("Selection En&d"), FN(OnCursorSelEnd),
c->SetLongName( _("Cursor to Selection End"))->AddItem(wxT("CursSelEnd"), XXO("Selection En&d"), FN(OnCursorSelEnd),
TimeSelectedFlag, TimeSelectedFlag);
c->AddItem(wxT("CursTrackStart"), XXO("Track &Start"), FN(OnCursorTrackStart), wxT("J"),
c->SetLongName( _("Cursor to Track Start"))->AddItem(wxT("CursTrackStart"), XXO("Track &Start"), FN(OnCursorTrackStart), wxT("J"),
TracksSelectedFlag, TracksSelectedFlag);
c->AddItem(wxT("CursTrackEnd"), XXO("Track &End"), FN(OnCursorTrackEnd), wxT("K"),
c->SetLongName( _("Cursor to Track End"))->AddItem(wxT("CursTrackEnd"), XXO("Track &End"), FN(OnCursorTrackEnd), wxT("K"),
TracksSelectedFlag, TracksSelectedFlag);
c->AddItem(wxT("CursPrevClipBoundary"), XXO("Pre&vious Clip Boundary"), FN(OnCursorPrevClipBoundary), wxT(""),
c->SetLongName( _("Cursor to Prev Clip Boundary"))->AddItem(wxT("CursPrevClipBoundary"), XXO("Pre&vious Clip Boundary"), FN(OnCursorPrevClipBoundary), wxT(""),
WaveTracksExistFlag, WaveTracksExistFlag);
c->AddItem(wxT("CursNextClipBoundary"), XXO("Ne&xt Clip Boundary"), FN(OnCursorNextClipBoundary), wxT(""),
c->SetLongName( _("Cursor to Next Clip Boundary"))->AddItem(wxT("CursNextClipBoundary"), XXO("Ne&xt Clip Boundary"), FN(OnCursorNextClipBoundary), wxT(""),
WaveTracksExistFlag, WaveTracksExistFlag);
c->AddItem(wxT("CursProjectStart"), XXO("&Project Start"), FN(OnSkipStart), wxT("Home"));
c->AddItem(wxT("CursProjectEnd"), XXO("Project E&nd"), FN(OnSkipEnd), wxT("End"));
c->SetLongName( _("Cursor to Project Start"))->AddItem(wxT("CursProjectStart"), XXO("&Project Start"), FN(OnSkipStart), wxT("Home"));
c->SetLongName( _("Cursor to Project End"))->AddItem(wxT("CursProjectEnd"), XXO("Project E&nd"), FN(OnSkipEnd), wxT("End"));
c->EndSubMenu();
@ -1012,9 +1012,9 @@ void AudacityProject::CreateMenusAndCommands()
// As Pan changes are not saved on Undo stack, pan settings for all tracks
// in the project could very easily be lost unless we require the tracks to be selcted.
c->SetDefaultFlags(TracksSelectedFlag, TracksSelectedFlag);
c->AddItem(wxT("PanLeft"), XXO("&Left"), FN(OnPanLeft));
c->AddItem(wxT("PanRight"), XXO("&Right"), FN(OnPanRight));
c->AddItem(wxT("PanCenter"), XXO("&Center"), FN(OnPanCenter));
c->SetLongName( _("Pan Left"))->AddItem(wxT("PanLeft"), XXO("&Left"), FN(OnPanLeft));
c->SetLongName( _("Pan Right"))->AddItem(wxT("PanRight"), XXO("&Right"), FN(OnPanRight));
c->SetLongName( _("Pan Center"))->AddItem(wxT("PanCenter"), XXO("&Center"), FN(OnPanCenter));
c->EndSubMenu();
@ -1081,10 +1081,10 @@ void AudacityProject::CreateMenusAndCommands()
c->BeginSubMenu(_("S&ort Tracks"));
c->AddItem(wxT("SortByTime"), XXO("By &Start time"), FN(OnSortTime),
c->SetLongName( _("Sort by Time"))->AddItem(wxT("SortByTime"), XXO("By &Start Time"), FN(OnSortTime),
TracksExistFlag,
TracksExistFlag);
c->AddItem(wxT("SortByName"), XXO("By &Name"), FN(OnSortName),
c->SetLongName( _("Sort by Name"))->AddItem(wxT("SortByName"), XXO("By &Name"), FN(OnSortName),
TracksExistFlag,
TracksExistFlag);

View File

@ -428,6 +428,7 @@ CommandManager::CommandManager():
bMakingOccultCommands( false )
{
mbSeparatorAllowed = false;
mLongNameForItem = "";
SetMaxList();
}
@ -833,8 +834,13 @@ void CommandManager::AddItem(const wxChar *name,
else
cookedParameter = parameter;
CommandListEntry *entry =
NewIdentifier(name, label_in, hasDialog, accel, CurrentMenu(), finder, callback,
{}, 0, 0, bIsEffect, cookedParameter);
NewIdentifier(name,
label_in,
mLongNameForItem,
hasDialog,
accel, CurrentMenu(), finder, callback,
{}, 0, 0, bIsEffect, cookedParameter);
mLongNameForItem = "";
int ID = entry->id;
wxString label = GetLabelWithDisabledAccel(entry);
@ -869,6 +875,7 @@ void CommandManager::AddItemList(const wxString & name,
{
for (size_t i = 0, cnt = nItems; i < cnt; i++) {
CommandListEntry *entry = NewIdentifier(name,
items[i].Translated(),
items[i].Translated(),
// No means yet to specify !
false,
@ -905,7 +912,7 @@ void CommandManager::AddCommand(const wxChar *name,
CommandFlag flags,
CommandMask mask)
{
NewIdentifier(name, label_in, false, accel, NULL, finder, callback, {}, 0, 0, false, {});
NewIdentifier(name, label_in, label_in, false, accel, NULL, finder, callback, {}, 0, 0, false, {});
if (flags != NoFlagsSpecifed || mask != NoFlagsSpecifed) {
SetCommandFlags(name, flags, mask);
@ -920,7 +927,7 @@ void CommandManager::AddGlobalCommand(const wxChar *name,
const wxChar *accel)
{
CommandListEntry *entry =
NewIdentifier(name, label_in, hasDialog, accel, NULL, finder, callback,
NewIdentifier(name, label_in, label_in, hasDialog, accel, NULL, finder, callback,
{}, 0, 0, false, {});
entry->enabled = false;
@ -954,6 +961,7 @@ int CommandManager::NextIdentifier(int ID)
///and keep menus above wxID_HIGHEST
CommandListEntry *CommandManager::NewIdentifier(const wxString & name,
const wxString & label,
const wxString & longLabel,
bool hasDialog,
wxMenu *menu,
CommandHandlerFinder finder,
@ -965,6 +973,7 @@ CommandListEntry *CommandManager::NewIdentifier(const wxString & name,
{
return NewIdentifier(name,
label.BeforeFirst(wxT('\t')),
longLabel.BeforeFirst(wxT('\t')),
hasDialog,
label.AfterFirst(wxT('\t')),
menu,
@ -979,6 +988,7 @@ CommandListEntry *CommandManager::NewIdentifier(const wxString & name,
CommandListEntry *CommandManager::NewIdentifier(const wxString & nameIn,
const wxString & label,
const wxString & longLabel,
bool hasDialog,
const wxString & accel,
wxMenu *menu,
@ -1046,6 +1056,7 @@ CommandListEntry *CommandManager::NewIdentifier(const wxString & nameIn,
entry->name = name;
entry->label = label;
entry->longLabel = longLabel.IsEmpty() ? label : longLabel;
entry->hasDialog = hasDialog;
entry->key = NormalizedKeyString{ accel.BeforeFirst(wxT('\t')) };
entry->defaultKey = entry->key;
@ -1691,9 +1702,9 @@ void CommandManager::GetAllCommandLabels(wxArrayString &names,
if ( entry->isEffect )
continue;
if (!entry->multi)
names.Add(entry->label), vHasDialog.push_back(entry->hasDialog);
names.Add(entry->longLabel), vHasDialog.push_back(entry->hasDialog);
else if( includeMultis )
names.Add(entry->label), vHasDialog.push_back(entry->hasDialog);
names.Add(entry->longLabel), vHasDialog.push_back(entry->hasDialog);
}
}
@ -1752,7 +1763,7 @@ wxString CommandManager::GetLabelFromName(const wxString &name)
if (!entry)
return wxT("");
return entry->label;
return entry->longLabel;
}
wxString CommandManager::GetPrefixedLabelFromName(const wxString &name)

View File

@ -65,6 +65,7 @@ struct CommandListEntry
{
int id;
wxString name;
wxString longLabel;
NormalizedKeyString key;
NormalizedKeyString defaultKey;
wxString label;
@ -244,6 +245,10 @@ class AUDACITY_DLL_API CommandManager final : public XMLTagHandler
CommandMask GetDefaultMask() const { return mDefaultMask; }
void SetOccultCommands( bool bOccult);
CommandManager * SetLongName( const wxString & name ){
mLongNameForItem = name;
return this;
}
void SetCommandFlags(const wxString &name, CommandFlag flags, CommandMask mask);
@ -343,6 +348,7 @@ protected:
int NextIdentifier(int ID);
CommandListEntry *NewIdentifier(const wxString & name,
const wxString & label,
const wxString & longLabel,
bool hasDialog,
wxMenu *menu,
CommandHandlerFinder finder,
@ -353,6 +359,7 @@ protected:
bool bIsEffect);
CommandListEntry *NewIdentifier(const wxString & name,
const wxString & label,
const wxString & longLabel,
bool hasDialog,
const wxString & accel,
wxMenu *menu,
@ -415,6 +422,8 @@ private:
std::unique_ptr<wxMenu> uCurrentMenu;
wxMenu *mCurrentMenu {};
wxString mLongNameForItem;
CommandFlag mDefaultFlags;
CommandMask mDefaultMask;
bool bMakingOccultCommands;