mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-25 16:48:44 +02:00
Fix static initialization order problem for more ReservedCommandFlags
This commit is contained in:
parent
25afa10bc4
commit
ef41b8f2ee
@ -999,8 +999,8 @@ static CommandHandlerObject &findCommandHandler(AudacityProject &) {
|
||||
|
||||
MenuTable::BaseItemSharedPtr LabelEditMenus();
|
||||
|
||||
const ReservedCommandFlag
|
||||
CutCopyAvailableFlag {
|
||||
static const ReservedCommandFlag
|
||||
&CutCopyAvailableFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
auto range = TrackList::Get( project ).Any<const LabelTrack>()
|
||||
+ [&](const LabelTrack *pTrack){
|
||||
@ -1022,7 +1022,7 @@ const ReservedCommandFlag
|
||||
return false;
|
||||
},
|
||||
cutCopyOptions()
|
||||
};
|
||||
}; return flag; }
|
||||
|
||||
// Under /MenuBar
|
||||
MenuTable::BaseItemSharedPtr EditMenu()
|
||||
@ -1072,14 +1072,14 @@ MenuTable::BaseItemSharedPtr EditMenu()
|
||||
// Basic Edit commands
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Cut"), XXO("Cu&t"), FN(OnCut),
|
||||
AudioIONotBusyFlag() | CutCopyAvailableFlag | NoAutoSelect(),
|
||||
AudioIONotBusyFlag() | CutCopyAvailableFlag() | NoAutoSelect(),
|
||||
wxT("Ctrl+X") ),
|
||||
Command( wxT("Delete"), XXO("&Delete"), FN(OnDelete),
|
||||
AudioIONotBusyFlag() | TracksSelectedFlag() | TimeSelectedFlag() | NoAutoSelect(),
|
||||
wxT("Ctrl+K") ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Copy"), XXO("&Copy"), FN(OnCopy),
|
||||
AudioIONotBusyFlag() | CutCopyAvailableFlag, wxT("Ctrl+C") ),
|
||||
AudioIONotBusyFlag() | CutCopyAvailableFlag(), wxT("Ctrl+C") ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("Paste"), XXO("&Paste"), FN(OnPaste),
|
||||
AudioIONotBusyFlag(), wxT("Ctrl+V") ),
|
||||
@ -1197,7 +1197,7 @@ RegisteredMenuItemEnabler selectAnyTracks{{
|
||||
|
||||
RegisteredMenuItemEnabler selectWaveTracks{{
|
||||
[]{ return WaveTracksExistFlag(); },
|
||||
[]{ return TimeSelectedFlag() | WaveTracksSelectedFlag() | CutCopyAvailableFlag; },
|
||||
[]{ return TimeSelectedFlag() | WaveTracksSelectedFlag() | CutCopyAvailableFlag(); },
|
||||
canSelectAll,
|
||||
selectAll
|
||||
}};
|
||||
@ -1205,7 +1205,7 @@ RegisteredMenuItemEnabler selectWaveTracks{{
|
||||
// Also enable select for the noise reduction case.
|
||||
RegisteredMenuItemEnabler selectWaveTracks2{{
|
||||
[]{ return WaveTracksExistFlag(); },
|
||||
[]{ return NoiseReductionTimeSelectedFlag() | WaveTracksSelectedFlag() | CutCopyAvailableFlag; },
|
||||
[]{ return NoiseReductionTimeSelectedFlag() | WaveTracksSelectedFlag() | CutCopyAvailableFlag(); },
|
||||
canSelectAll,
|
||||
selectAll
|
||||
}};
|
||||
|
@ -19,7 +19,7 @@
|
||||
namespace {
|
||||
|
||||
const ReservedCommandFlag
|
||||
LabelsSelectedFlag{
|
||||
&LabelsSelectedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
// At least one label track selected, having at least one label
|
||||
// completely within the time selection.
|
||||
@ -40,7 +40,7 @@ const ReservedCommandFlag
|
||||
+ test;
|
||||
return !range.empty();
|
||||
}
|
||||
};
|
||||
}; return flag; }
|
||||
|
||||
//Adds label and returns index of label in labeltrack.
|
||||
int DoAddLabel(
|
||||
@ -595,7 +595,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
|
||||
static const auto NotBusyLabelsAndWaveFlags =
|
||||
AudioIONotBusyFlag() |
|
||||
LabelsSelectedFlag | WaveTracksExistFlag() | TimeSelectedFlag();
|
||||
LabelsSelectedFlag() | WaveTracksExistFlag() | TimeSelectedFlag();
|
||||
|
||||
// Returns TWO menus.
|
||||
|
||||
@ -636,11 +636,11 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
Menu( wxT("Labeled"), XO("La&beled Audio"),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels),
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag | WaveTracksExistFlag() |
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
|
||||
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
||||
Options{ wxT("Alt+X"), XO("Label Cut") } ),
|
||||
Command( wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels),
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag | WaveTracksExistFlag() |
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
|
||||
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
||||
Options{ wxT("Alt+K"), XO("Label Delete") } ),
|
||||
|
||||
@ -668,7 +668,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
||||
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels),
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag | WaveTracksExistFlag(),
|
||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag(),
|
||||
Options{ wxT("Alt+I"), XO("Label Split") } ),
|
||||
/* i18n-hint: (verb)*/
|
||||
Command( wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels),
|
||||
|
@ -770,12 +770,12 @@ MenuTable::BaseItemSharedPtr GenerateMenu()
|
||||
return menu;
|
||||
}
|
||||
|
||||
const ReservedCommandFlag
|
||||
IsRealtimeNotActiveFlag{
|
||||
static const ReservedCommandFlag
|
||||
&IsRealtimeNotActiveFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &){
|
||||
return !RealtimeEffectManager::Get().RealtimeIsActive();
|
||||
}
|
||||
}; //lll
|
||||
}; return flag; } //lll
|
||||
|
||||
// Under /MenuBar
|
||||
MenuTable::BaseItemSharedPtr EffectMenu()
|
||||
@ -820,7 +820,7 @@ MenuTable::BaseItemSharedPtr EffectMenu()
|
||||
{ return Items( wxEmptyString, PopulateEffectsMenu(
|
||||
EffectTypeProcess,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
IsRealtimeNotActiveFlag )
|
||||
IsRealtimeNotActiveFlag() )
|
||||
); }
|
||||
|
||||
) ) };
|
||||
@ -856,7 +856,7 @@ MenuTable::BaseItemSharedPtr AnalyzeMenu()
|
||||
{ return Items( wxEmptyString, PopulateEffectsMenu(
|
||||
EffectTypeAnalyze,
|
||||
AudioIONotBusyFlag() | TimeSelectedFlag() | WaveTracksSelectedFlag(),
|
||||
IsRealtimeNotActiveFlag )
|
||||
IsRealtimeNotActiveFlag() )
|
||||
); }
|
||||
) ) };
|
||||
return menu;
|
||||
|
@ -255,7 +255,9 @@ static const auto HasWaveDataPred =
|
||||
};
|
||||
|
||||
static const ReservedCommandFlag
|
||||
HasWaveDataFlag{ HasWaveDataPred }; // jkc
|
||||
&HasWaveDataFlag() { static ReservedCommandFlag flag{
|
||||
HasWaveDataPred
|
||||
}; return flag; } // jkc
|
||||
|
||||
namespace {
|
||||
struct MenuItem {
|
||||
@ -278,12 +280,12 @@ namespace {
|
||||
"Seeking" is normal speed playback but with skips, ...
|
||||
*/
|
||||
{ wxT("Scrub"), XO("&Scrub"), XO("Scrubbing"),
|
||||
CaptureNotBusyFlag() | HasWaveDataFlag,
|
||||
CaptureNotBusyFlag() | HasWaveDataFlag(),
|
||||
&Scrubber::OnScrub, false, &Scrubber::Scrubs,
|
||||
},
|
||||
|
||||
{ wxT("Seek"), XO("See&k"), XO("Seeking"),
|
||||
CaptureNotBusyFlag() | HasWaveDataFlag,
|
||||
CaptureNotBusyFlag() | HasWaveDataFlag(),
|
||||
&Scrubber::OnSeek, true, &Scrubber::Seeks,
|
||||
},
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user