1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-16 16:10:06 +02:00

Bug 2366 - Macros: Run does "Select All" ignoring setting in Tracks Behaviors Preferences

Reverted the wrong commit...needed to add an include anyway.
This commit is contained in:
Leland Lucius 2021-01-29 06:37:30 -06:00
parent 90a1783779
commit 76460c73da
4 changed files with 43 additions and 5 deletions

View File

@ -549,11 +549,19 @@ bool MacroCommands::ApplyEffectCommand(
AudacityProject *project = &mProject;
// FIXME: for later versions may want to not select-all in batch mode.
// IF nothing selected, THEN select everything
// IF nothing selected, THEN select everything depending
// on preferences setting.
// (most effects require that you have something selected).
if( plug->GetPluginType() != PluginTypeAudacityCommand )
SelectUtilities::SelectAllIfNone( *project );
{
if( !SelectUtilities::SelectAllIfNoneAndAllowed( *project ) )
{
AudacityMessageBox(
// i18n-hint: %s will be replaced by the name of an action, such as "Remove Tracks".
XO("\"%s\" requires one or more tracks to be selected.").Format(friendlyCommand));
return false;
}
}
bool res = false;

View File

@ -90,6 +90,24 @@ void SelectAllIfNone( AudacityProject &project )
DoSelectAllAudio( project );
}
// Select the full time range, if no time range is selected and
// selecting is allowed. Returns "false" selecting not allowed.
bool SelectAllIfNoneAndAllowed( AudacityProject &project )
{
auto allowed = gPrefs->ReadBool(wxT("/GUI/SelectAllOnNone"), false);
auto &viewInfo = ViewInfo::Get( project );
auto flags = MenuManager::Get( project ).GetUpdateFlags();
if((flags & TracksSelectedFlag()).none() ||
viewInfo.selectedRegion.isPoint()) {
if (!allowed) {
return false;
}
DoSelectAllAudio( project );
}
return true;
}
void DoListSelection
(AudacityProject &project, Track *t, bool shift, bool ctrl, bool modifyState)
{

View File

@ -20,6 +20,7 @@ namespace SelectUtilities {
void DoSelectTimeAndTracks(
AudacityProject &project, bool bAllTime, bool bAllTracks);
void SelectAllIfNone( AudacityProject &project );
bool SelectAllIfNoneAndAllowed( AudacityProject &project );
void SelectNone( AudacityProject &project );
void DoListSelection(
AudacityProject &project, Track *t,

View File

@ -21,8 +21,10 @@
#include "../ProjectFileManager.h"
#include "../ViewInfo.h"
#include "../export/Export.h"
#include "../SelectUtilities.h"
#include "../Shuttle.h"
#include "../ShuttleGui.h"
#include "../Track.h"
#include "../wxFileNameWrapper.h"
#include "CommandContext.h"
@ -47,9 +49,18 @@ void ImportCommand::PopulateOrExchange(ShuttleGui & S)
S.EndMultiColumn();
}
bool ImportCommand::Apply(const CommandContext & context){
return ProjectFileManager::Get( context.project )
bool ImportCommand::Apply(const CommandContext & context)
{
bool wasEmpty = TrackList::Get( context.project ).Any().empty();
bool success = ProjectFileManager::Get( context.project )
.Import(mFileName, false);
if (success && wasEmpty)
{
SelectUtilities::SelectAllIfNone( context.project );
}
return success;
}