From 873d067e7413fd71e25fd864201dce5348cbeb03 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 23 Jul 2019 21:06:16 -0400 Subject: [PATCH] CommonCommandFlags does not depend on LabelTrack --- src/CommonCommandFlags.cpp | 24 ------------------------ src/CommonCommandFlags.h | 1 - src/menus/LabelMenus.cpp | 32 ++++++++++++++++++++++++++++---- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/src/CommonCommandFlags.cpp b/src/CommonCommandFlags.cpp index 2bda8632f..e17f73bf1 100644 --- a/src/CommonCommandFlags.cpp +++ b/src/CommonCommandFlags.cpp @@ -16,7 +16,6 @@ Paul Licameli split from Menus.cpp #include #include "AudioIO.h" -#include "LabelTrack.h" #include "Menus.h" #include "NoteTrack.h" #include "Project.h" @@ -276,29 +275,6 @@ const ReservedCommandFlag& ; } }; return flag; } -const ReservedCommandFlag& - LabelsSelectedFlag() { static ReservedCommandFlag flag{ - [](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() - + test; - return !range.empty(); - } - }; return flag; } const ReservedCommandFlag& PlayRegionLockedFlag() { static ReservedCommandFlag flag{ [](const AudacityProject &project){ diff --git a/src/CommonCommandFlags.h b/src/CommonCommandFlags.h index 026f0b14a..b0df13483 100644 --- a/src/CommonCommandFlags.h +++ b/src/CommonCommandFlags.h @@ -43,7 +43,6 @@ extern AUDACITY_DLL_API const ReservedCommandFlag &RedoAvailableFlag(), &ZoomInAvailableFlag(), &ZoomOutAvailableFlag(), - &LabelsSelectedFlag(), &PlayRegionLockedFlag(), //msmeyer &PlayRegionNotLockedFlag(), //msmeyer &WaveTracksExistFlag(), diff --git a/src/menus/LabelMenus.cpp b/src/menus/LabelMenus.cpp index 4e558f9b3..f282b473d 100644 --- a/src/menus/LabelMenus.cpp +++ b/src/menus/LabelMenus.cpp @@ -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() + + test; + return !range.empty(); + } + }; + //Adds label and returns index of label in labeltrack. int DoAddLabel( AudacityProject &project, const SelectedRegion ®ion, @@ -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),