From d2717cac21c25e9a16a2745a90756004f83e2660 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Thu, 25 Apr 2019 10:36:37 -0400 Subject: [PATCH] Move functions from AudacityProject to SelectActions --- src/BatchCommands.cpp | 2 +- src/Menus.h | 2 ++ src/MixerBoard.cpp | 2 +- src/Project.cpp | 28 ++++++---------------------- src/Project.h | 2 -- src/menus/FileMenus.cpp | 5 +++-- src/menus/PluginMenus.cpp | 2 +- src/menus/SelectMenus.cpp | 20 +++++++++++++++++++- src/menus/TrackMenus.cpp | 8 ++++---- 9 files changed, 37 insertions(+), 34 deletions(-) diff --git a/src/BatchCommands.cpp b/src/BatchCommands.cpp index c86ff3b1d..ddd3215b7 100644 --- a/src/BatchCommands.cpp +++ b/src/BatchCommands.cpp @@ -729,7 +729,7 @@ bool MacroCommands::ApplyEffectCommand( // IF nothing selected, THEN select everything // (most effects require that you have something selected). if( plug->GetPluginType() != PluginTypeAudacityCommand ) - project->SelectAllIfNone(); + SelectActions::SelectAllIfNone( *project ); bool res = false; diff --git a/src/Menus.h b/src/Menus.h index f67ab5930..4bc48eae8 100644 --- a/src/Menus.h +++ b/src/Menus.h @@ -115,6 +115,8 @@ void DoUndo( AudacityProject &project ); /// Namespace for functions for Select menu namespace SelectActions { +void SelectAllIfNone( AudacityProject &project ); +void SelectNone( AudacityProject &project ); void DoListSelection( AudacityProject &project, Track *t, bool shift, bool ctrl, bool modifyState ); diff --git a/src/MixerBoard.cpp b/src/MixerBoard.cpp index 383c32fd2..8051b333d 100644 --- a/src/MixerBoard.cpp +++ b/src/MixerBoard.cpp @@ -828,7 +828,7 @@ void MixerBoardScrolledWindow::OnMouseEvent(wxMouseEvent& event) //v Even when I implement MixerBoard::OnMouseEvent and call event.Skip() // here, MixerBoard::OnMouseEvent never gets called. // So, added mProject to MixerBoardScrolledWindow and just directly do what's needed here. - mProject->SelectNone(); + SelectActions::SelectNone( *mProject ); } else event.Skip(); diff --git a/src/Project.cpp b/src/Project.cpp index ed571b392..f9aee039a 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -4281,9 +4281,10 @@ std::vector< std::shared_ptr< Track > > AudacityProject::AddImportedTracks(const FilePath &fileName, TrackHolders &&newTracks) { + auto &project = *this; std::vector< std::shared_ptr< Track > > results; - SelectNone(); + SelectActions::SelectNone( project ); bool initiallyEmpty = mTracks->empty(); double newRate = 0; @@ -4393,6 +4394,7 @@ void AudacityProject::ZoomAfterImport(Track *pTrack) // If pNewTrackList is passed in non-NULL, it gets filled with the pointers to NEW tracks. bool AudacityProject::Import(const FilePath &fileName, WaveTrackArray* pTrackArray /*= NULL*/) { + auto &project = *this; TrackHolders newTracks; wxString errorMessage; @@ -4447,9 +4449,9 @@ bool AudacityProject::Import(const FilePath &fileName, WaveTrackArray* pTrackArr int mode = gPrefs->Read(wxT("/AudioFiles/NormalizeOnLoad"), 0L); if (mode == 1) { //TODO: All we want is a SelectAll() - SelectNone(); - SelectAllIfNone(); - const CommandContext context( *this); + SelectActions::SelectNone( project ); + SelectActions::SelectAllIfNone( project ); + const CommandContext context( project ); PluginActions::DoEffect( EffectManager::Get().GetEffectByIdentifier(wxT("Normalize")), context, @@ -5616,14 +5618,6 @@ ContrastDialog *AudacityProject::GetContrastDialog(bool create) return mContrastDialog.get(); } -void AudacityProject::SelectNone() -{ - for (auto t : GetTracks()->Any()) - t->SetSelected(false); - - mTrackPanel->Refresh(false); -} - void AudacityProject::ZoomInByFactor( double ZoomFactor ) { // LLL: Handling positioning differently when audio is @@ -5714,16 +5708,6 @@ void AudacityProject::ZoomOutByFactor( double ZoomFactor ) TP_ScrollWindow(newh); } -// Select the full time range, if no -// time range is selected. -void AudacityProject::SelectAllIfNone() -{ - auto flags = GetMenuManager(*this).GetUpdateFlags(*this); - if(!(flags & TracksSelectedFlag) || - (mViewInfo.selectedRegion.isPoint())) - SelectActions::DoSelectAllAudio(*this); -} - // Stop playing or recording, if paused. void AudacityProject::StopIfPaused() { diff --git a/src/Project.h b/src/Project.h index 4ea0857a1..524d66aff 100644 --- a/src/Project.h +++ b/src/Project.h @@ -401,8 +401,6 @@ public: void UpdatePrefsVariables(); void RedrawProject(const bool bForceWaveTracks = false); void RefreshCursor(); - void SelectNone(); - void SelectAllIfNone(); void StopIfPaused(); void Zoom(double level); void ZoomBy(double multiplier); diff --git a/src/menus/FileMenus.cpp b/src/menus/FileMenus.cpp index 5ae0ffcd5..57fcf7c0e 100644 --- a/src/menus/FileMenus.cpp +++ b/src/menus/FileMenus.cpp @@ -5,6 +5,7 @@ #include "../FileNames.h" #include "../LabelTrack.h" #include "../MissingAliasFileDialog.h" +#include "../Menus.h" #include "../NoteTrack.h" #include "../Prefs.h" #include "../Printing.h" @@ -121,7 +122,7 @@ AudacityProject *DoImportMIDI( if (::ImportMIDI(fileName, newTrack.get())) { - pProject->SelectNone(); + SelectActions::SelectNone( *pProject ); auto pTrack = tracks->Add( newTrack ); pTrack->SetSelected(true); @@ -467,7 +468,7 @@ void OnImportLabels(const CommandContext &context) newTrack->Import(f); - project.SelectNone(); + SelectActions::SelectNone( project ); newTrack->SetSelected(true); tracks->Add( newTrack ); diff --git a/src/menus/PluginMenus.cpp b/src/menus/PluginMenus.cpp index 29df0f45f..b2df9d829 100644 --- a/src/menus/PluginMenus.cpp +++ b/src/menus/PluginMenus.cpp @@ -412,7 +412,7 @@ bool DoEffect( if (flags & kConfigured) { TransportActions::DoStop(project); - project.SelectAllIfNone(); + SelectActions::SelectAllIfNone( project ); } MissingAliasFilesDialog::SetShouldShow(true); diff --git a/src/menus/SelectMenus.cpp b/src/menus/SelectMenus.cpp index b61806eb8..54e489a1b 100644 --- a/src/menus/SelectMenus.cpp +++ b/src/menus/SelectMenus.cpp @@ -484,6 +484,24 @@ namespace SelectActions { // exported helper functions +void SelectNone( AudacityProject &project ) +{ + for (auto t : project.GetTracks()->Any()) + t->SetSelected(false); + + project.GetTrackPanel()->Refresh(false); +} + +// Select the full time range, if no +// time range is selected. +void SelectAllIfNone( AudacityProject &project ) +{ + auto flags = GetMenuManager( project ).GetUpdateFlags( project ); + if(!(flags & TracksSelectedFlag) || + (project.GetViewInfo().selectedRegion.isPoint())) + DoSelectAllAudio( project ); +} + void DoListSelection (AudacityProject &project, Track *t, bool shift, bool ctrl, bool modifyState) { @@ -549,7 +567,7 @@ void OnSelectNone(const CommandContext &context) auto &selectedRegion = project.GetViewInfo().selectedRegion; selectedRegion.collapseToT0(); - project.SelectNone(); + SelectNone( project ); project.ModifyState(false); } diff --git a/src/menus/TrackMenus.cpp b/src/menus/TrackMenus.cpp index 64efc1cb2..dc1479ffc 100644 --- a/src/menus/TrackMenus.cpp +++ b/src/menus/TrackMenus.cpp @@ -802,7 +802,7 @@ void OnNewWaveTrack(const CommandContext &context) auto rate = project.GetRate(); auto t = tracks->Add(trackFactory->NewWaveTrack(defaultFormat, rate)); - project.SelectNone(); + SelectActions::SelectNone( project ); t->SetSelected(true); @@ -821,7 +821,7 @@ void OnNewStereoTrack(const CommandContext &context) auto defaultFormat = project.GetDefaultFormat(); auto rate = project.GetRate(); - project.SelectNone(); + SelectActions::SelectNone( project ); auto left = tracks->Add(trackFactory->NewWaveTrack(defaultFormat, rate)); left->SetSelected(true); @@ -846,7 +846,7 @@ void OnNewLabelTrack(const CommandContext &context) auto t = tracks->Add(trackFactory->NewLabelTrack()); - project.SelectNone(); + SelectActions::SelectNone( project ); t->SetSelected(true); @@ -870,7 +870,7 @@ void OnNewTimeTrack(const CommandContext &context) auto t = tracks->AddToHead(trackFactory->NewTimeTrack()); - project.SelectNone(); + SelectActions::SelectNone( project ); t->SetSelected(true);