mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-19 23:21:33 +01:00
Separate the flags mentioned in TellUserWhyDisallowed
This commit is contained in:
@@ -454,28 +454,68 @@ const ReservedCommandFlag
|
|||||||
return !AudioIOBusyPred( project );
|
return !AudioIOBusyPred( project );
|
||||||
},
|
},
|
||||||
CommandFlagOptions{}.QuickTest()
|
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{
|
TimeSelectedFlag{
|
||||||
TimeSelectedPred
|
TimeSelectedPred
|
||||||
},
|
},
|
||||||
TracksSelectedFlag{
|
CutCopyAvailableFlag{
|
||||||
TracksSelectedPred
|
[](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{
|
TracksExistFlag{
|
||||||
[](const AudacityProject &project){
|
[](const AudacityProject &project){
|
||||||
return !TrackList::Get( project ).Any().empty();
|
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{
|
LabelTracksExistFlag{
|
||||||
[](const AudacityProject &project){
|
[](const AudacityProject &project){
|
||||||
return !TrackList::Get( project ).Any<const LabelTrack>().empty();
|
return !TrackList::Get( project ).Any<const LabelTrack>().empty();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
WaveTracksSelectedFlag{
|
|
||||||
[](const AudacityProject &project){
|
|
||||||
return !TrackList::Get( project ).Selected<const WaveTrack>().empty();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
UnsavedChangesFlag{
|
UnsavedChangesFlag{
|
||||||
[](const AudacityProject &project){
|
[](const AudacityProject &project){
|
||||||
auto &undoManager = UndoManager::Get( 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{
|
LabelsSelectedFlag{
|
||||||
[](const AudacityProject &project){
|
[](const AudacityProject &project){
|
||||||
// At least one label track selected, having at least one label
|
// At least one label track selected, having at least one label
|
||||||
@@ -575,25 +596,6 @@ const ReservedCommandFlag
|
|||||||
return !playRegion.Locked() && !playRegion.Empty();
|
return !playRegion.Locked() && !playRegion.Empty();
|
||||||
}
|
}
|
||||||
}, //msmeyer
|
}, //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{
|
WaveTracksExistFlag{
|
||||||
[](const AudacityProject &project){
|
[](const AudacityProject &project){
|
||||||
return !TrackList::Get( project ).Any<const WaveTrack>().empty();
|
return !TrackList::Get( project ).Any<const WaveTrack>().empty();
|
||||||
|
|||||||
@@ -59,25 +59,26 @@ public:
|
|||||||
// ReservedCommandFlag values
|
// ReservedCommandFlag values
|
||||||
|
|
||||||
extern const ReservedCommandFlag
|
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
|
TimeSelectedFlag, // This is equivalent to check if there is a valid selection, so it's used for Zoom to Selection too
|
||||||
TracksSelectedFlag,
|
CutCopyAvailableFlag,
|
||||||
TracksExistFlag,
|
|
||||||
LabelTracksExistFlag,
|
|
||||||
WaveTracksSelectedFlag,
|
WaveTracksSelectedFlag,
|
||||||
|
TracksExistFlag,
|
||||||
|
TracksSelectedFlag,
|
||||||
|
TrackPanelHasFocus, //lll
|
||||||
|
|
||||||
|
AudioIONotBusyFlag,
|
||||||
|
LabelTracksExistFlag,
|
||||||
UnsavedChangesFlag,
|
UnsavedChangesFlag,
|
||||||
HasLastEffectFlag,
|
HasLastEffectFlag,
|
||||||
UndoAvailableFlag,
|
UndoAvailableFlag,
|
||||||
RedoAvailableFlag,
|
RedoAvailableFlag,
|
||||||
ZoomInAvailableFlag,
|
ZoomInAvailableFlag,
|
||||||
ZoomOutAvailableFlag,
|
ZoomOutAvailableFlag,
|
||||||
StereoRequiredFlag, //lda
|
|
||||||
TrackPanelHasFocus, //lll
|
|
||||||
LabelsSelectedFlag,
|
LabelsSelectedFlag,
|
||||||
AudioIOBusyFlag, //lll
|
|
||||||
PlayRegionLockedFlag, //msmeyer
|
PlayRegionLockedFlag, //msmeyer
|
||||||
PlayRegionNotLockedFlag, //msmeyer
|
PlayRegionNotLockedFlag, //msmeyer
|
||||||
CutCopyAvailableFlag,
|
|
||||||
WaveTracksExistFlag,
|
WaveTracksExistFlag,
|
||||||
NoteTracksExistFlag, //gsw
|
NoteTracksExistFlag, //gsw
|
||||||
NoteTracksSelectedFlag, //gsw
|
NoteTracksSelectedFlag, //gsw
|
||||||
|
|||||||
Reference in New Issue
Block a user