Add custom track name defaults to preferences

This commit is contained in:
Steve Daulton 2016-01-16 14:44:45 +00:00
parent 1d6d08c47d
commit 8a6edf3623
6 changed files with 120 additions and 8 deletions

View File

@ -103,7 +103,7 @@ WaveTrack::WaveTrack(DirManager *projDirManager, sampleFormat format, double rat
mRate = (int) rate;
mGain = 1.0;
mPan = 0.0;
SetDefaultName(_("Audio Track"));
SetDefaultName(gPrefs->Read(wxT("/GUI/TrackNames/DefaultTrackName"), _("Audio Track")));
SetName(GetDefaultName());
mDisplayMin = -1.0;
mDisplayMax = 1.0;

View File

@ -146,9 +146,6 @@ void GUIPrefs::PopulateOrExchange(ShuttleGui & S)
S.TieCheckBox(_("&Beep on completion of longer activities"),
wxT("/GUI/BeepOnCompletion"),
false);
S.TieCheckBox(_("&Show track name in waveform display"),
wxT("/GUI/ShowTrackNameInWaveform"),
false);
S.TieCheckBox(_("Re&tain labels if selection snaps to a label edge"),
wxT("/GUI/RetainLabels"),
false);

View File

@ -34,9 +34,19 @@
using std::min;
enum {
UseCustomTrackNameID = 1000,
};
BEGIN_EVENT_TABLE(RecordingPrefs, PrefsPanel)
EVT_CHECKBOX(UseCustomTrackNameID, RecordingPrefs::OnToggleCustomName)
END_EVENT_TABLE()
RecordingPrefs::RecordingPrefs(wxWindow * parent)
: PrefsPanel(parent, _("Recording"))
{
gPrefs->Read(wxT("/GUI/TrackNames/RecordingNameCustom"), &mUseCustomTrackName, false);
mOldNameChoice = mUseCustomTrackName;
Populate();
}
@ -125,6 +135,37 @@ void RecordingPrefs::PopulateOrExchange(ShuttleGui & S)
}
S.EndStatic();
S.StartStatic(_("Naming newly recorded tracks"));
{
S.StartMultiColumn(3);
{
S.Id(UseCustomTrackNameID).TieCheckBox(_("Use Custom Track &Name"),
wxT("/GUI/TrackNames/RecordingNameCustom"),
mUseCustomTrackName ? true : false);
mToggleCustomName = S.TieTextBox(wxT(""),
wxT("/GUI/TrackNames/RecodingTrackName"),
_("Recorded_Audio"),
30);
mToggleCustomName->SetName(_("Custom name text"));
mToggleCustomName->Enable(mUseCustomTrackName);
}
S.EndMultiColumn();
S.TieCheckBox(_("Add &Track Number"),
wxT("/GUI/TrackNames/TrackNumber"),
false);
S.TieCheckBox(_("Add System &Date"),
wxT("/GUI/TrackNames/DateStamp"),
false);
S.TieCheckBox(_("Add System T&ime"),
wxT("/GUI/TrackNames/TimeStamp"),
false);
}
S.EndStatic();
#ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
S.StartStatic(_("Automated Recording Level Adjustment"));
{
@ -203,6 +244,12 @@ bool RecordingPrefs::Apply()
return true;
}
void RecordingPrefs::OnToggleCustomName(wxCommandEvent & Evt)
{
mUseCustomTrackName = !mUseCustomTrackName;
mToggleCustomName->Enable(mUseCustomTrackName);
}
PrefsPanel *RecordingPrefsFactory::Create(wxWindow *parent)
{
return new RecordingPrefs(parent);

View File

@ -13,6 +13,7 @@
#define __AUDACITY_RECORDING_PREFS__
#include <wx/defs.h>
#include <wx/textctrl.h>
#include <wx/window.h>
@ -30,6 +31,13 @@ class RecordingPrefs :public PrefsPanel
private:
void Populate();
void PopulateOrExchange(ShuttleGui & S);
void OnToggleCustomName(wxCommandEvent & Evt);
wxTextCtrl *mToggleCustomName;
bool mUseCustomTrackName;
bool mOldNameChoice;
DECLARE_EVENT_TABLE();
};
class RecordingPrefsFactory : public PrefsPanelFactory

View File

@ -30,8 +30,6 @@
#include "../Experimental.h"
////////////////////////////////////////////////////////////////////////////////
TracksPrefs::TracksPrefs(wxWindow * parent)
: PrefsPanel(parent, _("Tracks"))
{
@ -96,15 +94,23 @@ void TracksPrefs::PopulateOrExchange(ShuttleGui & S)
S.StartMultiColumn(2);
{
S.TieChoice(_("Default &View Mode:"),
S.TieChoice(_("Default &view mode:"),
wxT("/GUI/DefaultViewModeNew"),
0,
mViewChoices,
mViewCodes);
S.SetSizeHints(mViewChoices);
S.TieTextBox(_("Default audio track &name:"),
wxT("/GUI/TrackNames/DefaultTrackName"),
_("Audio Track"),
30);
}
S.EndMultiColumn();
S.TieCheckBox(_("Sho&w track name in waveform display"),
wxT("/GUI/ShowTrackNameInWaveform"),
false);
}
S.EndStatic();

View File

@ -51,6 +51,7 @@
#include <wx/timer.h>
#endif
#include <wx/tooltip.h>
#include <wx/datetime.h>
#include "TranscriptionToolBar.h"
#include "MeterToolBar.h"
@ -896,11 +897,64 @@ void ControlToolBar::OnRecord(wxCommandEvent &evt)
t1 = 1000000000.0; // record for a long, long time (tens of years)
}
else {
bool recordingNameCustom, useTrackNumber, useDateStamp, useTimeStamp;
wxString defaultTrackName, defaultRecordingTrackName;
int numTracks = 0;
for (Track *tt = it.First(); tt; tt = it.Next()) {
if (tt->GetKind() == Track::Wave && !tt->GetLinked())
numTracks++;
}
numTracks++;
recordingChannels = gPrefs->Read(wxT("/AudioIO/RecordChannels"), 2);
gPrefs->Read(wxT("/GUI/TrackNames/RecordingNameCustom"), &recordingNameCustom, false);
gPrefs->Read(wxT("/GUI/TrackNames/TrackNumber"), &useTrackNumber, false);
gPrefs->Read(wxT("/GUI/TrackNames/DateStamp"), &useDateStamp, false);
gPrefs->Read(wxT("/GUI/TrackNames/TimeStamp"), &useTimeStamp, false);
/* i18n-hint: The default name for an audio track. */
gPrefs->Read(wxT("/GUI/TrackNames/DefaultTrackName"),&defaultTrackName, _("Audio Track"));
gPrefs->Read(wxT("/GUI/TrackNames/RecodingTrackName"), &defaultRecordingTrackName, defaultTrackName);
wxString baseTrackName = recordingNameCustom? defaultRecordingTrackName : defaultTrackName;
for (int c = 0; c < recordingChannels; c++) {
WaveTrack *newTrack = p->GetTrackFactory()->NewWaveTrack();
newTrack->SetOffset(t0);
wxString nameSuffix = wxString(wxT(""));
if (useTrackNumber) {
nameSuffix += wxString::Format(wxT("%d"), numTracks + c);
}
if (useDateStamp) {
if (!nameSuffix.IsEmpty()) {
nameSuffix += wxT("_");
}
nameSuffix += wxDateTime::Now().FormatISODate();
}
if (useTimeStamp) {
if (!nameSuffix.IsEmpty()) {
nameSuffix += wxT("_");
}
nameSuffix += wxDateTime::Now().FormatISOTime();
}
// ISO standard would be nice, but ":" is unsafe for file name.
nameSuffix.Replace(wxT(":"), wxT("-"));
if (baseTrackName.IsEmpty()) {
newTrack->SetName(nameSuffix);
}
else if (nameSuffix.IsEmpty()) {
newTrack->SetName(baseTrackName);
}
else {
newTrack->SetName(baseTrackName + wxT("_") + nameSuffix);
}
if (recordingChannels > 2)
newTrack->SetMinimized(true);