CommonCommandFlags does not depend on LabelTrack
This commit is contained in:
parent
9093364b8c
commit
873d067e74
|
@ -16,7 +16,6 @@ Paul Licameli split from Menus.cpp
|
|||
#include <wx/frame.h>
|
||||
|
||||
#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<const LabelTrack>()
|
||||
+ test;
|
||||
return !range.empty();
|
||||
}
|
||||
}; return flag; }
|
||||
const ReservedCommandFlag&
|
||||
PlayRegionLockedFlag() { static ReservedCommandFlag flag{
|
||||
[](const AudacityProject &project){
|
||||
|
|
|
@ -43,7 +43,6 @@ extern AUDACITY_DLL_API const ReservedCommandFlag
|
|||
&RedoAvailableFlag(),
|
||||
&ZoomInAvailableFlag(),
|
||||
&ZoomOutAvailableFlag(),
|
||||
&LabelsSelectedFlag(),
|
||||
&PlayRegionLockedFlag(), //msmeyer
|
||||
&PlayRegionNotLockedFlag(), //msmeyer
|
||||
&WaveTracksExistFlag(),
|
||||
|
|
|
@ -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 ®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),
|
||||
|
|
Loading…
Reference in New Issue