1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-21 08:27:13 +01:00

CommonCommandFlags does not depend on LabelTrack

This commit is contained in:
Paul Licameli
2019-07-23 21:06:16 -04:00
parent 9093364b8c
commit 873d067e74
3 changed files with 28 additions and 29 deletions

View File

@@ -18,6 +18,30 @@
// private helper classes and functions
namespace {
const ReservedCommandFlag
LabelsSelectedFlag{
[](const AudacityProject &project){
// At least one label track selected, having at least one label
// completely within the time selection.
const auto &selectedRegion = ViewInfo::Get( project ).selectedRegion;
const auto &test = [&]( const LabelTrack *pTrack ){
const auto &labels = pTrack->GetLabels();
return std::any_of( labels.begin(), labels.end(),
[&](const LabelStruct &label){
return
label.getT0() >= selectedRegion.t0()
&&
label.getT1() <= selectedRegion.t1()
;
}
);
};
auto range = TrackList::Get( project ).Selected<const LabelTrack>()
+ test;
return !range.empty();
}
};
//Adds label and returns index of label in labeltrack.
int DoAddLabel(
AudacityProject &project, const SelectedRegion &region,
@@ -571,7 +595,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
static const auto NotBusyLabelsAndWaveFlags =
AudioIONotBusyFlag() |
LabelsSelectedFlag() | WaveTracksExistFlag() | TimeSelectedFlag();
LabelsSelectedFlag | WaveTracksExistFlag() | TimeSelectedFlag();
// Returns TWO menus.
@@ -612,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") } ),
@@ -644,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),