mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-06 17:13:49 +01:00
Change AutoSelect to only select Audio.
This commit is contained in:
@@ -813,8 +813,8 @@ bool MenuManager::TryToMakeActionAllowed
|
||||
// This was 'DoSelectSomething()'.
|
||||
// This made autoselect more confusing.
|
||||
// When autoselect triggers, it might not select all audio in all tracks.
|
||||
// So changed to DoSelectAll.
|
||||
SelectActions::DoSelectAll(project);
|
||||
// So changed to DoSelectAllAudio.
|
||||
SelectActions::DoSelectAllAudio(project);
|
||||
flags = GetMenuManager(project).GetUpdateFlags(project);
|
||||
bAllowed = ((flags & mask) == (flagsRqd & mask));
|
||||
return bAllowed;
|
||||
|
||||
@@ -119,6 +119,7 @@ void DoListSelection(
|
||||
AudacityProject &project, Track *t,
|
||||
bool shift, bool ctrl, bool modifyState );
|
||||
void DoSelectAll( AudacityProject &project );
|
||||
void DoSelectAllAudio( AudacityProject &project );
|
||||
void DoSelectSomething( AudacityProject &project );
|
||||
}
|
||||
|
||||
|
||||
@@ -5701,7 +5701,7 @@ void AudacityProject::SelectAllIfNone()
|
||||
auto flags = GetMenuManager(*this).GetUpdateFlags(*this);
|
||||
if(!(flags & TracksSelectedFlag) ||
|
||||
(mViewInfo.selectedRegion.isPoint()))
|
||||
SelectActions::DoSelectAll(*this);
|
||||
SelectActions::DoSelectAllAudio(*this);
|
||||
}
|
||||
|
||||
// Stop playing or recording, if paused.
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "../TimeDialog.h"
|
||||
#include "../TrackPanel.h"
|
||||
#include "../WaveTrack.h"
|
||||
#include "../NoteTrack.h"
|
||||
#include "../commands/CommandContext.h"
|
||||
#include "../commands/CommandManager.h"
|
||||
#include "../toolbars/ControlToolBar.h"
|
||||
@@ -30,8 +31,35 @@ void DoSelectTimeAndTracks
|
||||
tracks->GetMinOffset(), tracks->GetEndTime());
|
||||
|
||||
if( bAllTracks ) {
|
||||
for (auto t : tracks->Any())
|
||||
for (auto t : tracks->Any()){
|
||||
t->SetSelected(true);
|
||||
}
|
||||
|
||||
project.ModifyState(false);
|
||||
trackPanel->Refresh(false);
|
||||
}
|
||||
}
|
||||
|
||||
// Temporal selection (not TimeTrack selection)
|
||||
// potentially for all wave or not tracks.
|
||||
void DoSelectTimeAndAudioTracks
|
||||
(AudacityProject &project, bool bAllTime, bool bAllTracks)
|
||||
{
|
||||
auto tracks = project.GetTracks();
|
||||
auto trackPanel = project.GetTrackPanel();
|
||||
auto &selectedRegion = project.GetViewInfo().selectedRegion;
|
||||
|
||||
if( bAllTime )
|
||||
selectedRegion.setTimes(
|
||||
tracks->GetMinOffset(), tracks->GetEndTime());
|
||||
|
||||
if( bAllTracks ) {
|
||||
for (auto t : tracks->Any()){
|
||||
auto wt = dynamic_cast<WaveTrack *>(t);
|
||||
auto nt = dynamic_cast<NoteTrack *>(t);
|
||||
if( wt || nt )
|
||||
t->SetSelected(true);
|
||||
}
|
||||
|
||||
project.ModifyState(false);
|
||||
trackPanel->Refresh(false);
|
||||
@@ -482,6 +510,11 @@ void DoSelectAll(AudacityProject &project)
|
||||
DoSelectTimeAndTracks( project, true, true );
|
||||
}
|
||||
|
||||
void DoSelectAllAudio(AudacityProject &project)
|
||||
{
|
||||
DoSelectTimeAndAudioTracks( project, true, true );
|
||||
}
|
||||
|
||||
// This function selects all tracks if no tracks selected,
|
||||
// and all time if no time selected.
|
||||
// There is an argument for making it just count wave tracks,
|
||||
|
||||
Reference in New Issue
Block a user