mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-02 17:09:26 +02:00
Separate the flags mentioned in TellUserWhyDisallowed
This commit is contained in:
parent
f9b0281b47
commit
b09a1af564
@ -454,28 +454,68 @@ const ReservedCommandFlag
|
||||
return !AudioIOBusyPred( project );
|
||||
},
|
||||
CommandFlagOptions{}.QuickTest()
|
||||
},
|
||||
}, //lll
|
||||
StereoRequiredFlag{
|
||||
[](const AudacityProject &project){
|
||||
// True iff at least one stereo track is selected, i.e., at least
|
||||
// one right channel is selected.
|
||||
// TODO: more-than-two-channels
|
||||
auto range = TrackList::Get( project ).Selected<const WaveTrack>()
|
||||
- &Track::IsLeader;
|
||||
return !range.empty();
|
||||
}
|
||||
}, //lda
|
||||
TimeSelectedFlag{
|
||||
TimeSelectedPred
|
||||
},
|
||||
TracksSelectedFlag{
|
||||
TracksSelectedPred
|
||||
CutCopyAvailableFlag{
|
||||
[](const AudacityProject &project){
|
||||
auto range = TrackList::Get( project ).Any<const LabelTrack>()
|
||||
+ &LabelTrack::IsTextSelected;
|
||||
if ( !range.empty() )
|
||||
return true;
|
||||
|
||||
if (
|
||||
!AudioIOBusyPred( project )
|
||||
&&
|
||||
TimeSelectedPred( project )
|
||||
&&
|
||||
TracksSelectedPred( project )
|
||||
)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
},
|
||||
WaveTracksSelectedFlag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Selected<const WaveTrack>().empty();
|
||||
}
|
||||
},
|
||||
TracksExistFlag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Any().empty();
|
||||
}
|
||||
},
|
||||
TracksSelectedFlag{
|
||||
TracksSelectedPred
|
||||
},
|
||||
TrackPanelHasFocus{
|
||||
[](const AudacityProject &project){
|
||||
for (auto w = wxWindow::FindFocus(); w; w = w->GetParent()) {
|
||||
if (dynamic_cast<const NonKeystrokeInterceptingWindow*>(w))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}; //lll
|
||||
|
||||
const ReservedCommandFlag
|
||||
LabelTracksExistFlag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Any<const LabelTrack>().empty();
|
||||
}
|
||||
},
|
||||
WaveTracksSelectedFlag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Selected<const WaveTrack>().empty();
|
||||
}
|
||||
},
|
||||
UnsavedChangesFlag{
|
||||
[](const AudacityProject &project){
|
||||
auto &undoManager = UndoManager::Get( project );
|
||||
@ -519,25 +559,6 @@ const ReservedCommandFlag
|
||||
;
|
||||
}
|
||||
},
|
||||
StereoRequiredFlag{
|
||||
[](const AudacityProject &project){
|
||||
// True iff at least one stereo track is selected, i.e., at least
|
||||
// one right channel is selected.
|
||||
// TODO: more-than-two-channels
|
||||
auto range = TrackList::Get( project ).Selected<const WaveTrack>()
|
||||
- &Track::IsLeader;
|
||||
return !range.empty();
|
||||
}
|
||||
}, //lda
|
||||
TrackPanelHasFocus{
|
||||
[](const AudacityProject &project){
|
||||
for (auto w = wxWindow::FindFocus(); w; w = w->GetParent()) {
|
||||
if (dynamic_cast<const NonKeystrokeInterceptingWindow*>(w))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}, //lll
|
||||
LabelsSelectedFlag{
|
||||
[](const AudacityProject &project){
|
||||
// At least one label track selected, having at least one label
|
||||
@ -575,25 +596,6 @@ const ReservedCommandFlag
|
||||
return !playRegion.Locked() && !playRegion.Empty();
|
||||
}
|
||||
}, //msmeyer
|
||||
CutCopyAvailableFlag{
|
||||
[](const AudacityProject &project){
|
||||
auto range = TrackList::Get( project ).Any<const LabelTrack>()
|
||||
+ &LabelTrack::IsTextSelected;
|
||||
if ( !range.empty() )
|
||||
return true;
|
||||
|
||||
if (
|
||||
!AudioIOBusyPred( project )
|
||||
&&
|
||||
TimeSelectedPred( project )
|
||||
&&
|
||||
TracksSelectedPred( project )
|
||||
)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
},
|
||||
WaveTracksExistFlag{
|
||||
[](const AudacityProject &project){
|
||||
return !TrackList::Get( project ).Any<const WaveTrack>().empty();
|
||||
|
@ -59,25 +59,26 @@ public:
|
||||
// ReservedCommandFlag values
|
||||
|
||||
extern const ReservedCommandFlag
|
||||
AudioIONotBusyFlag,
|
||||
AudioIOBusyFlag, //lll
|
||||
StereoRequiredFlag, //lda
|
||||
TimeSelectedFlag, // This is equivalent to check if there is a valid selection, so it's used for Zoom to Selection too
|
||||
TracksSelectedFlag,
|
||||
TracksExistFlag,
|
||||
LabelTracksExistFlag,
|
||||
CutCopyAvailableFlag,
|
||||
WaveTracksSelectedFlag,
|
||||
TracksExistFlag,
|
||||
TracksSelectedFlag,
|
||||
TrackPanelHasFocus, //lll
|
||||
|
||||
AudioIONotBusyFlag,
|
||||
LabelTracksExistFlag,
|
||||
UnsavedChangesFlag,
|
||||
HasLastEffectFlag,
|
||||
UndoAvailableFlag,
|
||||
RedoAvailableFlag,
|
||||
ZoomInAvailableFlag,
|
||||
ZoomOutAvailableFlag,
|
||||
StereoRequiredFlag, //lda
|
||||
TrackPanelHasFocus, //lll
|
||||
LabelsSelectedFlag,
|
||||
AudioIOBusyFlag, //lll
|
||||
PlayRegionLockedFlag, //msmeyer
|
||||
PlayRegionNotLockedFlag, //msmeyer
|
||||
CutCopyAvailableFlag,
|
||||
WaveTracksExistFlag,
|
||||
NoteTracksExistFlag, //gsw
|
||||
NoteTracksSelectedFlag, //gsw
|
||||
|
Loading…
x
Reference in New Issue
Block a user