better EnabledSongs interface

This commit is contained in:
Glenn Maynard
2007-08-16 23:24:36 +00:00
parent 4991a266df
commit 400da3065f
3 changed files with 17 additions and 13 deletions
+11 -8
View File
@@ -262,7 +262,7 @@ void SongManager::LoadStepManiaSongDir( RString sDir, LoadingWindow *ld )
LoadGroupSymLinks(sDir, sGroupDirName); LoadGroupSymLinks(sDir, sGroupDirName);
} }
SetEnabledSongs(); LoadEnabledSongsFromPref();
} }
// Instead of "symlinks", songs should have membership in multiple groups. // Instead of "symlinks", songs should have membership in multiple groups.
@@ -906,23 +906,26 @@ void SongManager::SetPreferences()
} }
} }
void SongManager::EnableSong( Song *pSong, bool bEnable ) void SongManager::SaveEnabledSongsToPref()
{ {
vector<RString> asDisabledSongs; vector<RString> asDisabledSongs;
split( g_sDisabledSongs, ";", asDisabledSongs, true ); split( g_sDisabledSongs, ";", asDisabledSongs, true );
const vector<Song*> &apSongs = SONGMAN->GetSongs();
FOREACH_CONST( Song *, apSongs, s )
{
Song *pSong = (*s);
bool bEnabled = pSong->GetEnabled();
vector<RString>::iterator it = find( asDisabledSongs.begin(), asDisabledSongs.end(), pSong->GetSongDir() ); vector<RString>::iterator it = find( asDisabledSongs.begin(), asDisabledSongs.end(), pSong->GetSongDir() );
if( bEnable && it == asDisabledSongs.end() ) if( bEnabled && it == asDisabledSongs.end() )
asDisabledSongs.push_back( pSong->GetSongDir() ); asDisabledSongs.push_back( pSong->GetSongDir() );
else if( !bEnable && it != asDisabledSongs.end() ) else if( !bEnabled && it != asDisabledSongs.end() )
asDisabledSongs.erase( it ); asDisabledSongs.erase( it );
}
g_sDisabledSongs.Set( join(";", asDisabledSongs) ); g_sDisabledSongs.Set( join(";", asDisabledSongs) );
pSong->SetEnabled( bEnable );
} }
void SongManager::SetEnabledSongs() void SongManager::LoadEnabledSongsFromPref()
{ {
FOREACH( Song *, m_pSongs, s ) FOREACH( Song *, m_pSongs, s )
(*s)->SetEnabled( true ); (*s)->SetEnabled( true );
+2 -2
View File
@@ -38,8 +38,8 @@ public:
void RegenerateNonFixedCourses(); void RegenerateNonFixedCourses();
void SetPreferences(); void SetPreferences();
void EnableSong( Song *pSong, bool bEnable ); void SaveEnabledSongsToPref();
void SetEnabledSongs(); void LoadEnabledSongsFromPref();
void LoadStepEditsFromProfileDir( const RString &sProfileDir, ProfileSlot slot ); void LoadStepEditsFromProfileDir( const RString &sProfileDir, ProfileSlot slot );
void LoadCourseEditsFromProfileDir( const RString &sProfileDir, ProfileSlot slot ); void LoadCourseEditsFromProfileDir( const RString &sProfileDir, ProfileSlot slot );
+1
View File
@@ -209,6 +209,7 @@ public:
bool HasEdits( StepsType st ) const; bool HasEdits( StepsType st ) const;
void SetEnabled( bool b ) { m_bEnabled = b; } void SetEnabled( bool b ) { m_bEnabled = b; }
bool GetEnabled() const { return m_bEnabled; }
bool NormallyDisplayed() const; bool NormallyDisplayed() const;
bool ShowInDemonstrationAndRanking() const; bool ShowInDemonstrationAndRanking() const;