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:
parent
90a1783779
commit
76460c73da
@ -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;
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user