give workouts a default name (in case the user doesn't have a keyboard)

This commit is contained in:
Chris Danford
2007-10-27 10:45:33 +00:00
parent e8bca9e85c
commit 4f3724c550
4 changed files with 43 additions and 17 deletions
+19 -16
View File
@@ -161,27 +161,30 @@ void ScreenOptionsReviewWorkout::ProcessMenuStart( const InputEventPlus &input )
this->BeginFadingOut();
return; // handled
case ReviewWorkoutRow_Save:
if( WORKOUTMAN->m_pCurWorkout->m_sName.empty() )
{
ScreenTextEntry::TextEntry(
SM_BackFromEnterName,
ENTER_WORKOUT_NAME,
WORKOUTMAN->m_pCurWorkout->m_sName,
MAX_WORKOUT_NAME_LENGTH,
WorkoutManager::ValidateWorkoutName );
}
else
{
if( WORKOUTMAN->Save( WORKOUTMAN->m_pCurWorkout ) )
bool bPromptForName = !WORKOUTMAN->m_pCurWorkout->m_bNameWasSetByUser;
if( bPromptForName )
{
m_soundSave.Play();
SCREENMAN->SystemMessage( WORKOUT_SAVED );
MESSAGEMAN->Broadcast( "WorkoutChanged" );
ScreenTextEntry::TextEntry(
SM_BackFromEnterName,
ENTER_WORKOUT_NAME,
WORKOUTMAN->m_pCurWorkout->m_sName,
MAX_WORKOUT_NAME_LENGTH,
WorkoutManager::ValidateWorkoutName );
}
else
{
SCREENMAN->PlayInvalidSound();
SCREENMAN->SystemMessage( ERROR_SAVING_WORKOUT );
if( WORKOUTMAN->Save( WORKOUTMAN->m_pCurWorkout ) )
{
m_soundSave.Play();
SCREENMAN->SystemMessage( WORKOUT_SAVED );
MESSAGEMAN->Broadcast( "WorkoutChanged" );
}
else
{
SCREENMAN->PlayInvalidSound();
SCREENMAN->SystemMessage( ERROR_SAVING_WORKOUT );
}
}
}
return; // handled
+3 -1
View File
@@ -24,6 +24,7 @@ XToLocalizedString( WorkoutProgram );
Workout::Workout()
{
m_bNameWasSetByUser = false;
m_WorkoutProgram = (WorkoutProgram)0;
m_iMinutes = 10;
m_iAverageMeter = 3;
@@ -152,7 +153,8 @@ bool Workout::LoadFromFile( RString sFile )
m_sFile = sFile;
xml.GetChildValue("Name",m_sName);
// ValidateWorkoutName
m_bNameWasSetByUser = true;
// XXX: ValidateWorkoutName
RString s;
xml.GetChildValue("WorkoutProgram",s);
+1
View File
@@ -35,6 +35,7 @@ public:
RString m_sFile;
RString m_sName;
bool m_bNameWasSetByUser;
WorkoutProgram m_WorkoutProgram;
int m_iMinutes;
int m_iAverageMeter;
+20
View File
@@ -56,11 +56,31 @@ void WorkoutManager::LoadAllFromDisk()
void WorkoutManager::LoadDefaults( Workout &out )
{
out = Workout();
// pick a default name
// XXX: Make this localizable
for( int i=0; i<10000; i++ )
{
out.m_sName = ssprintf("Workout %d", i+1);
bool bNameInUse = true;
FOREACH_CONST( Workout*, m_vpAllWorkouts, p )
{
if( out.m_sName != (*p)->m_sName )
{
bNameInUse = false;
break;
}
}
if( !bNameInUse )
break;
}
SongUtil::GetAllSongGenres( out.m_vsSongGenres );
}
bool WorkoutManager::RenameAndSave( Workout *pWorkout, RString sNewName )
{
pWorkout->m_bNameWasSetByUser = true;
ASSERT( !sNewName.empty() );
vector<Workout*>::iterator iter = find( m_vpAllWorkouts.begin(), m_vpAllWorkouts.end(), pWorkout );
if( iter == m_vpAllWorkouts.end() )