give workouts a default name (in case the user doesn't have a keyboard)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -35,6 +35,7 @@ public:
|
||||
|
||||
RString m_sFile;
|
||||
RString m_sName;
|
||||
bool m_bNameWasSetByUser;
|
||||
WorkoutProgram m_WorkoutProgram;
|
||||
int m_iMinutes;
|
||||
int m_iAverageMeter;
|
||||
|
||||
@@ -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() )
|
||||
|
||||
Reference in New Issue
Block a user