1
0
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:
Paul Licameli
2019-06-14 10:14:56 -04:00
parent f9b0281b47
commit b09a1af564
2 changed files with 57 additions and 54 deletions

View File

@@ -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();

View File

@@ -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