better EnabledSongs interface
This commit is contained in:
@@ -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 );
|
||||||
|
|
||||||
vector<RString>::iterator it = find( asDisabledSongs.begin(), asDisabledSongs.end(), pSong->GetSongDir() );
|
const vector<Song*> &apSongs = SONGMAN->GetSongs();
|
||||||
if( bEnable && it == asDisabledSongs.end() )
|
FOREACH_CONST( Song *, apSongs, s )
|
||||||
asDisabledSongs.push_back( pSong->GetSongDir() );
|
{
|
||||||
else if( !bEnable && it != asDisabledSongs.end() )
|
Song *pSong = (*s);
|
||||||
asDisabledSongs.erase( it );
|
bool bEnabled = pSong->GetEnabled();
|
||||||
|
vector<RString>::iterator it = find( asDisabledSongs.begin(), asDisabledSongs.end(), pSong->GetSongDir() );
|
||||||
|
if( bEnabled && it == asDisabledSongs.end() )
|
||||||
|
asDisabledSongs.push_back( pSong->GetSongDir() );
|
||||||
|
else if( !bEnabled && it != asDisabledSongs.end() )
|
||||||
|
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 );
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user