mirror of
https://github.com/cookiengineer/audacity
synced 2025-09-17 16:50:26 +02:00
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 <wx/frame.h>
|
||||||
|
|
||||||
#include "AudioIO.h"
|
#include "AudioIO.h"
|
||||||
#include "LabelTrack.h"
|
|
||||||
#include "Menus.h"
|
#include "Menus.h"
|
||||||
#include "NoteTrack.h"
|
#include "NoteTrack.h"
|
||||||
#include "Project.h"
|
#include "Project.h"
|
||||||
@ -276,29 +275,6 @@ const ReservedCommandFlag&
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
}; return flag; }
|
}; 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&
|
const ReservedCommandFlag&
|
||||||
PlayRegionLockedFlag() { static ReservedCommandFlag flag{
|
PlayRegionLockedFlag() { static ReservedCommandFlag flag{
|
||||||
[](const AudacityProject &project){
|
[](const AudacityProject &project){
|
||||||
|
@ -43,7 +43,6 @@ extern AUDACITY_DLL_API const ReservedCommandFlag
|
|||||||
&RedoAvailableFlag(),
|
&RedoAvailableFlag(),
|
||||||
&ZoomInAvailableFlag(),
|
&ZoomInAvailableFlag(),
|
||||||
&ZoomOutAvailableFlag(),
|
&ZoomOutAvailableFlag(),
|
||||||
&LabelsSelectedFlag(),
|
|
||||||
&PlayRegionLockedFlag(), //msmeyer
|
&PlayRegionLockedFlag(), //msmeyer
|
||||||
&PlayRegionNotLockedFlag(), //msmeyer
|
&PlayRegionNotLockedFlag(), //msmeyer
|
||||||
&WaveTracksExistFlag(),
|
&WaveTracksExistFlag(),
|
||||||
|
@ -18,6 +18,30 @@
|
|||||||
// private helper classes and functions
|
// private helper classes and functions
|
||||||
namespace {
|
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.
|
//Adds label and returns index of label in labeltrack.
|
||||||
int DoAddLabel(
|
int DoAddLabel(
|
||||||
AudacityProject &project, const SelectedRegion ®ion,
|
AudacityProject &project, const SelectedRegion ®ion,
|
||||||
@ -571,7 +595,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
|||||||
|
|
||||||
static const auto NotBusyLabelsAndWaveFlags =
|
static const auto NotBusyLabelsAndWaveFlags =
|
||||||
AudioIONotBusyFlag() |
|
AudioIONotBusyFlag() |
|
||||||
LabelsSelectedFlag() | WaveTracksExistFlag() | TimeSelectedFlag();
|
LabelsSelectedFlag | WaveTracksExistFlag() | TimeSelectedFlag();
|
||||||
|
|
||||||
// Returns TWO menus.
|
// Returns TWO menus.
|
||||||
|
|
||||||
@ -612,11 +636,11 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
|||||||
Menu( wxT("Labeled"), XO("La&beled Audio"),
|
Menu( wxT("Labeled"), XO("La&beled Audio"),
|
||||||
/* i18n-hint: (verb)*/
|
/* i18n-hint: (verb)*/
|
||||||
Command( wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels),
|
Command( wxT("CutLabels"), XXO("&Cut"), FN(OnCutLabels),
|
||||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
|
AudioIONotBusyFlag() | LabelsSelectedFlag | WaveTracksExistFlag() |
|
||||||
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
||||||
Options{ wxT("Alt+X"), XO("Label Cut") } ),
|
Options{ wxT("Alt+X"), XO("Label Cut") } ),
|
||||||
Command( wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels),
|
Command( wxT("DeleteLabels"), XXO("&Delete"), FN(OnDeleteLabels),
|
||||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag() |
|
AudioIONotBusyFlag() | LabelsSelectedFlag | WaveTracksExistFlag() |
|
||||||
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
TimeSelectedFlag() | IsNotSyncLockedFlag(),
|
||||||
Options{ wxT("Alt+K"), XO("Label Delete") } ),
|
Options{ wxT("Alt+K"), XO("Label Delete") } ),
|
||||||
|
|
||||||
@ -644,7 +668,7 @@ MenuTable::BaseItemSharedPtr LabelEditMenus()
|
|||||||
|
|
||||||
/* i18n-hint: (verb)*/
|
/* i18n-hint: (verb)*/
|
||||||
Command( wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels),
|
Command( wxT("SplitLabels"), XXO("Spli&t"), FN(OnSplitLabels),
|
||||||
AudioIONotBusyFlag() | LabelsSelectedFlag() | WaveTracksExistFlag(),
|
AudioIONotBusyFlag() | LabelsSelectedFlag | WaveTracksExistFlag(),
|
||||||
Options{ wxT("Alt+I"), XO("Label Split") } ),
|
Options{ wxT("Alt+I"), XO("Label Split") } ),
|
||||||
/* i18n-hint: (verb)*/
|
/* i18n-hint: (verb)*/
|
||||||
Command( wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels),
|
Command( wxT("JoinLabels"), XXO("&Join"), FN(OnJoinLabels),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user