diff --git a/scripts/piped-work/docimages_labels.py b/scripts/piped-work/docimages_labels.py index d98d6af2e..8e502172e 100644 --- a/scripts/piped-work/docimages_labels.py +++ b/scripts/piped-work/docimages_labels.py @@ -66,141 +66,163 @@ def quickTest() : def setup() : global path + global sample path = '\"C:/Users/James Crook/\"' + sample ='\"C:\\Users\\Public\\Music\\Sample Music\\Concerto.mp3\"' do( 'SetProject: X=10 Y=10 Width=850 Height=800' ) def makeWayForTracks( ) : - do( 'SelectTracks: FirstTrack=0 LastTrack=20' ) + do( 'Select: First=0 Last=20' ) do( 'RemoveTracks' ) -def capture( what ) : +def capture( name, what ) : global path - do( 'Screenshot: Path='+path+' CaptureWhat=' + what ) + do( 'Screenshot: Path='+path+name+' CaptureWhat=' + what ) def makeMonoTracks( num ) : makeWayForTracks( ) for i in range( 0, num ): do( 'NewMonoTrack' ) - do( 'SetTrack: TrackIndex=0 Name="Foxy Lady"') - do( 'SelectTime: StartTime=0 EndTime=30' ) - do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num-1) ) + do( 'SetTrack: Track=0 Name="Foxy Lady"') + do( 'Select: Start=0 End=30 First=0 Last=' + str(num-1) ) do( 'Chirp: StartAmp=0.5' ) do( 'Wahwah' ) do( 'FitInWindow' ) - do( 'SelectTime: StartTime=11 EndTime=14') + do( 'Select: Start=11 End=14') + +def loadStereoTrack(): + global sample + makeWayForTracks( ) + do( 'Import2: Filename='+sample ) + do( 'Select: Start=0 End=150') + do( 'ZoomSel' ) + do( 'SetTrack: Track=0 Name="The Poodle Podcast"') def makeStereoTracks( num ) : makeWayForTracks( ) + if( num == 1 ): + loadStereoTrack() + return for i in range( 0, num ): do( 'NewStereoTrack' ) - do( 'SetTrack: TrackIndex=0 Name="Voodoo Children IN STEREO"') - do( 'SelectTime: StartTime=0 EndTime=30' ) - do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num*2-1) ) + do( 'SetTrack: Track=0 Name="Voodoo Children IN STEREO"') + do( 'Select: Start=0 End=30 First=0 Last=' + str(num*2-1) ) do( 'Chirp: StartAmp=0.5' ) do( 'Wahwah' ) do( 'FitInWindow' ) - do( 'SelectTime: StartTime=11 EndTime=14') + do( 'Select: Start=55 End=70') def addLabels(): - do( 'SelectTime: StartTime=0 EndTime=1' ) + do( 'Select: Start=0 End=1' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) - do( 'SetLabel: LabelIndex=0 Text="Homweward Bound" Start=1 End=1 ') - do( 'SetLabel: LabelIndex=1 Text="Silver Dagger" Start=7 End=7 ') - do( 'SetLabel: LabelIndex=2 Selected=1 Text="NOISE" Start=9 End=12 ') - do( 'SetLabel: LabelIndex=3 Text="Blood in These Veins" Start=16 End=16 ') - do( 'SelectTime: StartTime=9 EndTime=12' ) + do( 'SetLabel: Label=0 Text="Homweward Bound" Start=1 End=1 ') + do( 'SetLabel: Label=1 Text="Silver Dagger" Start=35 End=35 ') + do( 'SetLabel: Label=2 Selected=1 Text="NOISE" Start=45 End=60 ') + do( 'SetLabel: Label=3 Text="Blood in These Veins" Start=80 End=80 ') + do( 'Select: Start=45 End=60' ) def addLabels2(): - do( 'SelectTime: StartTime=0 EndTime=1' ) + do( 'Select: Start=0 End=1' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'NewLabelTrack' ) - #do( 'SelectTracks: FirstTrack=2 LastTrack=2' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) do( 'AddLabel' ) - do( 'SetLabel: LabelIndex=0 Selected=0 Text="intro" Start=0.1 End=0.1 ') - do( 'SetLabel: LabelIndex=1 Text="thoughtpiece" Start=3 End=3 ') - do( 'SetLabel: LabelIndex=2 Text="discussion" Start=12 End=12 ') - do( 'SetLabel: LabelIndex=3 Text="summary" Start=20 End=20 ') - do( 'SetLabel: LabelIndex=4 Text="credits" Start=25 End=25 ') - do( 'SetLabel: LabelIndex=5 Selected=0 Text="Bach" Start=0.1 End=0.1 ') - do( 'SetLabel: LabelIndex=6 Text="Vivaldi" Start=6 End=6 ') - do( 'SetLabel: LabelIndex=7 Text="Mozart" Start=12 End=12 ') - do( 'SetLabel: LabelIndex=8 Text="Satie" Start=18 End=18 ') - do( 'SetLabel: LabelIndex=9 Text="Chopin" Start=24 End=24 ') - do( 'SelectTracks: FirstTrack=3 LastTrack=3' ) + do( 'SetLabel: Label=0 Selected=0 Text="intro" Start=0.5 End=0.5 ') + do( 'SetLabel: Label=1 Text="thought piece" Start=15 End=15 ') + do( 'SetLabel: Label=2 Text="discussion" Start=60 End=60 ') + do( 'SetLabel: Label=3 Text="summary" Start=100 End=100 ') + do( 'SetLabel: Label=4 Text="credits" Start=125 End=125 ') + do( 'SetLabel: Label=5 Selected=0 Text="Bach" Start=0.5 End=0.5 ') + do( 'SetLabel: Label=6 Text="Vivaldi" Start=30 End=30 ') + do( 'SetLabel: Label=7 Text="Mozart" Start=60 End=60 ') + do( 'SetLabel: Label=8 Text="Satie" Start=90 End=90 ') + do( 'SetLabel: Label=9 Text="Chopin" Start=120 End=120 ') + do( 'Select: First=3 Last=3' ) # A stero track with four labels. def image1() : makeStereoTracks(1) addLabels() - capture( 'First_Two_Tracks' ) + do( "Select: Start=0 End=0" ) + capture( 'AutoLabels001.png', 'First_Two_Tracks' ) # Removing a label with delete (fraud - we used split delete) def image2() : makeStereoTracks(1) addLabels() - do( "SelectTime: StartTime=8.9 EndTime=12.1" ) - do( "SelectTracks: FirstTrack=2 LastTrack=2" ) + do( "Select: Start=44.5 End=60.5 First=2 Last=2" ) do( "SplitDelete" ) - do( "SelectTime: StartTime=0 EndTime=0" ) - do( "SelectTracks: FirstTrack=0 LastTrack=2" ) - capture( 'First_Two_Tracks' ) + do( "Select: Start=0 End=0 First=0 Last=2" ) + capture( 'AutoLabels002.png','First_Two_Tracks' ) # Removing a label with split-delete step 1 def image3() : makeStereoTracks(1) addLabels() - do( "SelectTime: StartTime=8.9 EndTime=12.1" ) - do( "SelectTracks: FirstTrack=2 LastTrack=2" ) - capture( 'First_Two_Tracks' ) + do( "Select: Start=44.5 End=60.5 First=2 Last=2" ) + capture( 'AutoLabels003.png','First_Two_Tracks' ) # Removing a label with split-delete step 1 def image4() : makeStereoTracks(1) addLabels() - do( "SelectTime: StartTime=8.9 EndTime=12.1" ) - do( "SelectTracks: FirstTrack=2 LastTrack=2" ) + do( "Select: Start=44.5 End=60.5 First=2 Last=2" ) do( "SplitDelete" ) - capture( 'First_Two_Tracks' ) + capture( 'AutoLabels004.png','First_Two_Tracks' ) def image5() : makeStereoTracks(1) addLabels2() - do( "SelectTime: StartTime=0 EndTime=0" ) - capture( 'First_Three_Tracks' ) + do( "Select: Start=0 End=0" ) + capture( 'AutoLabels005.png','First_Three_Tracks' ) def image6() : makeStereoTracks(1) addLabels2() - do( "SelectTime: StartTime=5.7 EndTime=11.7" ) - capture( 'First_Three_Tracks' ) + do( "Select: Start=28.5 End=58.5" ) + capture( 'AutoLabels006.png','First_Three_Tracks' ) def image7() : makeStereoTracks(1) addLabels2() - do( "SelectTime: StartTime=5.7 EndTime=11.7" ) + do( "Select: Start=28.5 End=58.5" ) do( "Delete" ) - do( "SelectTime: StartTime=0 EndTime=0" ) - capture( 'First_Three_Tracks' ) + do( "Select: Start=0 End=0" ) + capture( 'AutoLabels007.png','First_Three_Tracks' ) + +def image8to10() : + makeStereoTracks(1) + addLabels2() + do( "Select: First=2 Last=2 Start=100 End=125" ) + do( "AddLabel" ) + do( 'SetLabel: Label=9 Text="Clap" selected=0 Start=110 End=118 ') + do( 'Select: First=0 Last=3 Start=0 End=0') + capture( 'AutoLabels008.png','First_Three_Tracks' ) + do( 'SetLabel: Label=9 Text="Clap" selected=1 Start=110 End=118 ') + do( 'Select: First=0 Last=3 Start=110 End=118') + capture( 'AutoLabels009.png','First_Three_Tracks' ) + do( 'Delete' ) + capture( 'AutoLabels010.png','First_Three_Tracks' ) #quickTest() setup() -image1() -image2() -image3() -image4() -image5() -image6() -image7() +#image1() +#image2() +#image3() +#image4() +#image5() +#image6() +#image7() +image8to10() diff --git a/scripts/piped-work/docimages_tracks.py b/scripts/piped-work/docimages_tracks.py index f0bf01f77..3a592ff99 100644 --- a/scripts/piped-work/docimages_tracks.py +++ b/scripts/piped-work/docimages_tracks.py @@ -66,119 +66,130 @@ def quickTest() : def setup() : global path - path = '\"C:/Users/James Crook/\"' + global sample + path = 'C:\\Users\\James Crook\\' + sample ='C:\\Users\\James Crook\\Music\\The Poodle Podcast.wav' do( 'SetProject: X=10 Y=10 Width=850 Height=800' ) def makeWayForTracks( ) : - do( 'SelectTracks: FirstTrack=0 LastTrack=20' ) + do( 'SelectTracks: First=0 Last=20' ) do( 'RemoveTracks' ) +def capture( name, what ) : + global path + do( 'Screenshot: Path="'+path+name+'" CaptureWhat=' + what ) + +def loadMonoTrack(): + global sample + makeWayForTracks( ) + do( 'Import2: Filename="'+sample+'"' ) + do( 'Select: First=0 Last=0 Start=0 End=150') + do( 'Trim') + do( 'ZoomSel' ) + +def loadMonoTracks( num ) : + makeWayForTracks( ) + loadMonoTrack() + do( 'SetTrack: Track=0 Name="Foxy Lady"') + for i in range( 0, num-1 ): + do( 'Duplicate' ) + do( 'FitInWindow' ) + do( 'Select: Start=55 End=70') def makeMonoTracks( num ) : makeWayForTracks( ) for i in range( 0, num ): do( 'NewMonoTrack' ) - do( 'SetTrack: TrackIndex=0 Name="Foxy Lady"') - do( 'SelectTime: StartTime=0 EndTime=30' ) - do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num-1) ) + do( 'SetTrack: Track=0 Name="Foxy Lady"') + do( 'Select: Start=0 End=150 First=0 Last=' + str(num-1) ) do( 'Chirp: StartAmp=0.5' ) do( 'Wahwah' ) do( 'FitInWindow' ) - do( 'SelectTime: StartTime=11 EndTime=14') + do( 'Select: Start=55 End=70') def makeStereoTracks( num ) : makeWayForTracks( ) for i in range( 0, num ): do( 'NewStereoTrack' ) - do( 'SetTrack: TrackIndex=0 Name="Voodoo Children IN STEREO"') - do( 'SelectTime: StartTime=0 EndTime=30' ) - do( 'SelectTracks: FirstTrack=0 LastTrack=' + str(num*2-1) ) + do( 'SetTrack: Track=0 Name="Voodoo Children IN STEREO"') + do( 'Select: Start=0 End=150 First=0 Last=' + str(num*2-1) ) do( 'Chirp: StartAmp=0.5' ) do( 'Wahwah' ) do( 'FitInWindow' ) - do( 'SelectTime: StartTime=11 EndTime=14') + do( 'Select: Start=55 End=70') # A mono track complete with ruler def image1() : - global path - makeMonoTracks(1) - do( 'Screenshot: Path='+path+' CaptureWhat=First_Track_Plus' ) + loadMonoTracks(1) + capture( 'AutoTracks001.png', 'First_Track_Plus' ) # A stereo track, with its name on the track def image2() : - global path makeStereoTracks(1) - do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' ) + capture( 'AutoTracks002.png', 'First_Track' ) # Four colours of track def image3() : - global path - makeMonoTracks( 4 ) - do( 'SetTrack: TrackIndex=0 Name="Instrument 1" Height=122 Color=Color0') - do( 'SetTrack: TrackIndex=1 Name="Instrument 2" Height=122 Color=Color1') - do( 'SetTrack: TrackIndex=2 Name="Instrument 3" Height=122 Color=Color2') - do( 'SetTrack: TrackIndex=3 Name="Instrument 4" Height=122 Color=Color3') - do( 'Screenshot: Path='+path+' CaptureWhat=First_Four_Tracks' ) + loadMonoTracks( 4 ) + do( 'SetTrack: Track=0 Name="Instrument 1" Height=122 Color=Color0') + do( 'SetTrack: Track=1 Name="Instrument 2" Height=122 Color=Color1') + do( 'SetTrack: Track=2 Name="Instrument 3" Height=122 Color=Color2') + do( 'SetTrack: Track=3 Name="Instrument 4" Height=122 Color=Color3') + capture( 'AutoTracks003.png', 'First_Four_Tracks' ) # Two Tracks, ready to make stereo def image4(): - global path - makeMonoTracks(2) - do( 'SetTrack: TrackIndex=0 Name="Left Track" Height=80') - do( 'SetTrack: TrackIndex=1 Name="Right Track" Height=80') - do( 'Screenshot: Path='+path+' CaptureWhat=First_Two_Tracks' ) + loadMonoTracks(2) + do( 'SetTrack: Track=0 Name="Left Track" Height=80') + do( 'SetTrack: Track=1 Name="Right Track" Height=80') + capture( 'AutoTracks004.png', 'First_Two_Tracks' ) # Mono tracks made stereo def image5(): - global path - makeMonoTracks(2) - do( 'SetTrack: TrackIndex=0 Pan=-1 Height=80') - do( 'SetTrack: TrackIndex=1 Pan=1 Height=80') + loadMonoTracks(2) + do( 'SetTrack: Track=0 Pan=-1 Height=80') + do( 'SetTrack: Track=1 Pan=1 Height=80') do( 'MixAndRender' ) - do( 'SetTrack: TrackIndex=0 Name="Combined" Height=80') - do( 'SetTrack: TrackIndex=1 Height=80') - do( 'SelectTracks: FirstTrack=0 LastTrack=1' ) - do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' ) + do( 'SetTrack: Track=0 Name="Combined" Height=80') + do( 'SetTrack: Track=1 Height=80') + do( 'Select: First=0 Last=1' ) + capture( 'AutoTracks005.png', 'First_Track' ) # A stereo track, with different sized channels def image6() : - global path makeStereoTracks(1) - do( 'SetTrack: TrackIndex=0 Height=80') - do( 'SetTrack: TrackIndex=1 Height=180') - do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' ) + do( 'SetTrack: Track=0 Height=80') + do( 'SetTrack: Track=1 Height=180') + capture( 'AutoTracks006.png', 'First_Track' ) # Two mono tracks of different sizes def image7() : - global path - makeMonoTracks(2) - do( 'SetTrack: TrackIndex=0 Height=80') - do( 'SetTrack: TrackIndex=1 Height=180') - do( 'Screenshot: Path='+path+' CaptureWhat=First_Two_Tracks' ) + loadMonoTracks(2) + do( 'SetTrack: Track=0 Height=180') + do( 'SetTrack: Track=1 Height=80') + capture( 'AutoTracks007.png', 'First_Two_Tracks' ) # Mono with arrow at start. def image8() : - global path - makeMonoTracks(1) - do( 'SetClip: ClipIndex=0 Start=-4.0') - do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' ) + loadMonoTracks(1) + do( 'SetClip: Clip=0 Start=-4.0') + capture( 'AutoTracks008.png', 'First_Track' ) # Zoomed in to show points stem-plot def image9() : - global path + #make rather than load. We want an artificial track. makeMonoTracks(1) - do( 'SelectTime: StartTime=0 EndTime=0.003' ) + do( 'Select: Start=0 End=0.003' ) do( 'ZoomSel' ); do( 'Amplify: Ratio=3.0' ) do( 'SetPreference: Name=/GUI/SampleView Value=1 Reload=1') - do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' ) + capture( 'AutoTracks009.png', 'First_Track' ) # Zoomed in to show points stem-plot and then no stem plot def image9and10() : - global path image9() do( 'SetPreference: Name=/GUI/SampleView Value=0 Reload=1') - do( 'Screenshot: Path='+path+' CaptureWhat=First_Track' ) + capture( 'AutoTracks010.png', 'First_Track' ) #quickTest() setup() diff --git a/src/Menus.cpp b/src/Menus.cpp index a70789c02..21f8fc097 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -1592,22 +1592,27 @@ void AudacityProject::CreateMenusAndCommands() // whereas the short-form used here must not. // (If you did write "CompareAudio" for the PLUGIN_SYMBOL name, then // you would have to use "Compareaudio" here.) - c->AddItem(wxT("Demo"), _("Just a Demo..."), FN(OnAudacityCommand), - AudioIONotBusyFlag, AudioIONotBusyFlag); +// c->AddItem(wxT("Demo"), _("Just a Demo..."), FN(OnAudacityCommand), +// AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("Screenshot"), _("Screenshot (Vanilla)..."), FN(OnAudacityCommand), AudioIONotBusyFlag, AudioIONotBusyFlag); + c->AddItem(wxT("Select"), _("Select..."), FN(OnAudacityCommand), + AudioIONotBusyFlag, AudioIONotBusyFlag); +// Menu items not needed, since they are part of Select, +// c->AddItem(wxT("SelectTime"), _("Select Time..."), FN(OnAudacityCommand), +// AudioIONotBusyFlag, AudioIONotBusyFlag); +// c->AddItem(wxT("SelectTracks"), _("Select Tracks..."), FN(OnAudacityCommand), +// AudioIONotBusyFlag, AudioIONotBusyFlag); + c->AddItem(wxT("Import2"), _("Import..."), FN(OnAudacityCommand), + AudioIONotBusyFlag, AudioIONotBusyFlag); + c->AddItem(wxT("Export2"), _("Export..."), FN(OnAudacityCommand), + AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("CompareAudio"), _("Compare Audio..."), FN(OnAudacityCommand), AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("GetPreference"), _("Get Preference..."), FN(OnAudacityCommand), AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("GetInfo"), _("Get Info..."), FN(OnAudacityCommand), AudioIONotBusyFlag, AudioIONotBusyFlag); - c->AddItem(wxT("SelectTime"), _("Select Time..."), FN(OnAudacityCommand), - AudioIONotBusyFlag, AudioIONotBusyFlag); - c->AddItem(wxT("SelectTracks"), _("Select Tracks..."), FN(OnAudacityCommand), - AudioIONotBusyFlag, AudioIONotBusyFlag); - c->AddItem(wxT("Select"), _("Select..."), FN(OnAudacityCommand), - AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("SetPreference"), _("Set Preference..."), FN(OnAudacityCommand), AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("SetClip"), _("Set Clip..."), FN(OnAudacityCommand), @@ -1618,8 +1623,9 @@ void AudacityProject::CreateMenusAndCommands() AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("SetTrack"), _("Set Track..."), FN(OnAudacityCommand), AudioIONotBusyFlag, AudioIONotBusyFlag); - c->AddItem(wxT("ReloadPreferences"), _("&Reload Preferences..."), FN(OnReloadPreferences), - AudioIONotBusyFlag, AudioIONotBusyFlag); +// Menu item not needed, since it is part of SetPreference, +// c->AddItem(wxT("ReloadPreferences"), _("&Reload Preferences..."), FN(OnReloadPreferences), +// AudioIONotBusyFlag, AudioIONotBusyFlag); c->EndSubMenu(); diff --git a/src/commands/ImportExportCommands.h b/src/commands/ImportExportCommands.h index 37ee8f947..2dc221d6c 100644 --- a/src/commands/ImportExportCommands.h +++ b/src/commands/ImportExportCommands.h @@ -22,7 +22,7 @@ // Import -#define IMPORT_PLUGIN_SYMBOL XO("Import") +#define IMPORT_PLUGIN_SYMBOL XO("Import2") class ImportCommand : public AudacityCommand { @@ -40,7 +40,7 @@ public: wxString mFileName; }; -#define EXPORT_PLUGIN_SYMBOL XO("Export") +#define EXPORT_PLUGIN_SYMBOL XO("Export2") class ExportCommand : public AudacityCommand { diff --git a/src/commands/LoadCommands.cpp b/src/commands/LoadCommands.cpp index 356ea8585..77e88a0ab 100644 --- a/src/commands/LoadCommands.cpp +++ b/src/commands/LoadCommands.cpp @@ -49,8 +49,6 @@ modelled on BuiltinEffectsModule COMMAND( SET_LABEL, SetLabelCommand, () ) \ COMMAND( SET_PROJECT, SetProjectCommand, () ) \ COMMAND( SELECT, SelectCommand, () ) \ - COMMAND( SELECT_TIME, SelectTimeCommand, () ) \ - COMMAND( SELECT_TRACKS, SelectTracksCommand, () ) \ COMMAND( GET_PREFERENCE, GetPreferenceCommand, () ) \ COMMAND( SET_PREFERENCE, SetPreferenceCommand, () ) \ COMMAND( GET_INFO, GetInfoCommand, () ) \ @@ -62,6 +60,9 @@ modelled on BuiltinEffectsModule // GET_TRACK_INFO subsumed by GET_INFO //COMMAND( GET_TRACK_INFO, GetTrackInfoCommand, () ) + // SELECT_TIME and SELECT_TRACKS subsumed by SELECT + //COMMAND( SELECT_TIME, SelectTimeCommand, () ) + //COMMAND( SELECT_TRACKS, SelectTracksCommand, () ) // diff --git a/src/commands/ScreenshotCommand.cpp b/src/commands/ScreenshotCommand.cpp index 39bb530ac..ae4edefad 100644 --- a/src/commands/ScreenshotCommand.cpp +++ b/src/commands/ScreenshotCommand.cpp @@ -617,6 +617,11 @@ void ScreenshotCommand::CaptureEffects( wxString ScreenshotCommand::MakeFileName(const wxString &path, const wxString &basename) { + // If the path is a full file name, then use it. + if( path.EndsWith( ".png" ) ) + return path; + + // Otherwise make up a file name that has not been used already. wxFileName prefixPath; prefixPath.AssignDir(path); wxString prefix = prefixPath.GetPath diff --git a/src/commands/SelectCommand.cpp b/src/commands/SelectCommand.cpp index e8698a0f6..1ac3cc849 100644 --- a/src/commands/SelectCommand.cpp +++ b/src/commands/SelectCommand.cpp @@ -34,8 +34,8 @@ #include "CommandContext.h" bool SelectTimeCommand::DefineParams( ShuttleParams & S ){ - S.Define( mT0, wxT("StartTime"), 0.0, 0.0, (double)FLT_MAX); - S.Define( mT1, wxT("EndTime"), 0.0, 0.0, (double)FLT_MAX); + S.Optional( bHasT0 ).Define( mT0, wxT("Start"), 0.0, 0.0, (double)FLT_MAX); + S.Optional( bHasT1 ).Define( mT1, wxT("End"), 0.0, 0.0, (double)FLT_MAX); S.Define( mFromEnd, wxT("FromEnd"), false ); return true; } @@ -44,16 +44,23 @@ void SelectTimeCommand::PopulateOrExchange(ShuttleGui & S) { S.AddSpace(0, 5); + S.StartMultiColumn(3, wxALIGN_CENTER); + { + S.Optional( bHasT0 ).TieTextBox(_("Start Time:"), mT0); + S.Optional( bHasT1 ).TieTextBox(_("End Time:"), mT1); + } + S.EndMultiColumn(); S.StartMultiColumn(2, wxALIGN_CENTER); { - S.TieTextBox(_("Start Time:"),mT0); - S.TieTextBox(_("End Time:"),mT1); S.TieCheckBox(_("From End:"), mFromEnd ); } S.EndMultiColumn(); } bool SelectTimeCommand::Apply(const CommandContext & context){ + if( !bHasT0 && !bHasT1 ) + return true; + if( mFromEnd ){ double TEnd = context.GetProject()->GetTracks()->GetEndTime(); context.GetProject()->mViewInfo.selectedRegion.setTimes(TEnd - mT0, TEnd - mT1); @@ -74,8 +81,8 @@ static const wxString kModes[nModes] = bool SelectTracksCommand::DefineParams( ShuttleParams & S ){ wxArrayString modes( nModes, kModes ); - S.Define( mFirstTrack, wxT("FirstTrack"), 0, 0, 100); - S.Define( mLastTrack, wxT("LastTrack"), 0, 0, 100); + S.Optional( bHasFirstTrack).Define( mFirstTrack, wxT("First"), 0, 0, 100); + S.Optional( bHasLastTrack ).Define( mLastTrack, wxT("Last"), 0, 0, 100); S.DefineEnum( mMode, wxT("Mode"), 0, modes ); return true; @@ -86,10 +93,14 @@ void SelectTracksCommand::PopulateOrExchange(ShuttleGui & S) wxArrayString modes( nModes, kModes ); S.AddSpace(0, 5); + S.StartMultiColumn(3, wxALIGN_CENTER); + { + S.Optional( bHasFirstTrack).TieTextBox(_("First Track:"),mFirstTrack); + S.Optional( bHasLastTrack).TieTextBox(_("Last Track:"),mLastTrack); + } + S.EndMultiColumn(); S.StartMultiColumn(2, wxALIGN_CENTER); { - S.TieTextBox(_("First Track:"),mFirstTrack); - S.TieTextBox(_("Last Track:"),mLastTrack); S.TieChoice( _("Mode:"), mMode, &modes); } S.EndMultiColumn(); @@ -97,6 +108,8 @@ void SelectTracksCommand::PopulateOrExchange(ShuttleGui & S) bool SelectTracksCommand::Apply(const CommandContext &context) { + if( !bHasFirstTrack && !bHasLastTrack ) + return true; int index = 0; TrackList *tracks = context.GetProject()->GetTracks(); int last = wxMax( mFirstTrack, mLastTrack ); diff --git a/src/commands/SelectCommand.h b/src/commands/SelectCommand.h index b89551d53..e71bf2be1 100644 --- a/src/commands/SelectCommand.h +++ b/src/commands/SelectCommand.h @@ -41,6 +41,10 @@ public: // AudacityCommand overrides wxString ManualPage() override {return wxT("Audio_Selection");}; + + bool bHasT0; + bool bHasT1; + double mT0; double mT1; bool mFromEnd; @@ -58,6 +62,9 @@ public: // AudacityCommand overrides wxString ManualPage() override {return wxT("Audio_Selection");}; + bool bHasFirstTrack; + bool bHasLastTrack; + int mFirstTrack; int mLastTrack; int mMode; diff --git a/src/commands/SetClipCommand.cpp b/src/commands/SetClipCommand.cpp index 5724109a0..99ec49b82 100644 --- a/src/commands/SetClipCommand.cpp +++ b/src/commands/SetClipCommand.cpp @@ -26,16 +26,7 @@ #include "CommandContext.h" SetClipCommand::SetClipCommand() -{/* - mTrackIndex = 0; - mTrackName = "unnamed"; - mPan = 0.0f; - mGain = 1.0f; - bSelected = false; - bFocused = false; - bSolo = false; - bMute = false; -*/ +{ } enum kColours @@ -58,7 +49,7 @@ static const wxString kColourStrings[nColours] = bool SetClipCommand::DefineParams( ShuttleParams & S ){ wxArrayString colours( nColours, kColourStrings ); - S.Define( mClipIndex, wxT("ClipIndex"), 0, 0, 100 ); + S.Define( mClipIndex, wxT("Clip"), 0, 0, 100 ); S.Optional( bHasColour ).DefineEnum( mColour, wxT("Color"), kColour0, colours ); // Allowing a negative start time is not a mistake. // It will be used in demonstrating time before zero. diff --git a/src/commands/SetLabelCommand.cpp b/src/commands/SetLabelCommand.cpp index 95bf48a7f..b3910e8e2 100644 --- a/src/commands/SetLabelCommand.cpp +++ b/src/commands/SetLabelCommand.cpp @@ -32,7 +32,7 @@ SetLabelCommand::SetLabelCommand() bool SetLabelCommand::DefineParams( ShuttleParams & S ){ - S.Define( mLabelIndex, wxT("LabelIndex"), 0, 0, 100 ); + S.Define( mLabelIndex, wxT("Label"), 0, 0, 100 ); S.Optional( bHasText ).Define( mText, wxT("Text"), wxT("empty") ); S.Optional( bHasT0 ).Define( mT0, wxT("Start"), 0.0, 0.0, 100000.0); S.Optional( bHasT1 ).Define( mT1, wxT("End"), 0.0, 0.0, 100000.0); diff --git a/src/commands/SetTrackInfoCommand.cpp b/src/commands/SetTrackInfoCommand.cpp index 47c0cf516..87f255644 100644 --- a/src/commands/SetTrackInfoCommand.cpp +++ b/src/commands/SetTrackInfoCommand.cpp @@ -49,7 +49,7 @@ static const wxString kColourStrings[nColours] = bool SetTrackCommand::DefineParams( ShuttleParams & S ){ wxArrayString colours( nColours, kColourStrings ); - S.Define( mTrackIndex, wxT("TrackIndex"), 0, 0, 100 ); + S.Define( mTrackIndex, wxT("Track"), 0, 0, 100 ); S.Optional( bHasTrackName ).Define( mTrackName, wxT("Name"), wxT("Unnamed") ); S.Optional( bHasPan ).Define( mPan, wxT("Pan"), 0.0, -1.0, 1.0); S.Optional( bHasGain ).Define( mGain, wxT("Gain"), 1.0, 0.0, 10.0);