move installer strings to an unselectable theme for easier exporting via tools.exe
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
#include "RageUtil.h"
|
||||
#include "IniFile.h"
|
||||
|
||||
const RString INSTALLER_LANGUAGES_DIR = "Installer/Languages/";
|
||||
const RString INSTALLER_LANGUAGES_DIR = "Themes/Installer/Languages/";
|
||||
|
||||
void ExportNsisStrings::Do()
|
||||
{
|
||||
|
||||
@@ -190,7 +190,9 @@ static void Language( int &sel, bool ToSel, const ConfOption *pConfOption )
|
||||
|
||||
static void ThemeChoices( vector<RString> &out )
|
||||
{
|
||||
THEME->GetThemeNames( out );
|
||||
THEME->GetSelectableThemeNames( out );
|
||||
FOREACH( RString, out, s )
|
||||
*s = THEME->GetThemeDisplayName( *s );
|
||||
}
|
||||
|
||||
static void DisplayResolutionChoices( vector<RString> &out )
|
||||
@@ -210,14 +212,17 @@ static void Theme( int &sel, bool ToSel, const ConfOption *pConfOption )
|
||||
vector<RString> choices;
|
||||
pConfOption->MakeOptionsList( choices );
|
||||
|
||||
vector<RString> vsThemeNames;
|
||||
THEME->GetSelectableThemeNames( vsThemeNames );
|
||||
|
||||
if( ToSel )
|
||||
{
|
||||
sel = 0;
|
||||
for( unsigned i=1; i<choices.size(); i++ )
|
||||
if( !stricmp(choices[i], THEME->GetCurThemeName()) )
|
||||
for( unsigned i=1; i<vsThemeNames.size(); i++ )
|
||||
if( !stricmp(vsThemeNames[i], THEME->GetCurThemeName()) )
|
||||
sel = i;
|
||||
} else {
|
||||
const RString sNewTheme = choices[sel];
|
||||
const RString sNewTheme = vsThemeNames[sel];
|
||||
if( THEME->GetCurThemeName() != sNewTheme )
|
||||
THEME->SwitchThemeAndLanguage( sNewTheme, THEME->GetCurLanguage(), PREFSMAN->m_bPseudoLocalize );
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
ThemeManager* THEME = NULL; // global object accessable from anywhere in the program
|
||||
|
||||
static const RString THEME_INFO_INI = "ThemeInfo.ini";
|
||||
|
||||
static const char *ElementCategoryNames[] = {
|
||||
"BGAnimations",
|
||||
"Fonts",
|
||||
@@ -154,6 +156,23 @@ void ThemeManager::GetThemeNames( vector<RString>& AddTo )
|
||||
StripCvs( AddTo );
|
||||
}
|
||||
|
||||
void ThemeManager::GetSelectableThemeNames( vector<RString>& AddTo )
|
||||
{
|
||||
GetThemeNames( AddTo );
|
||||
for( int i=AddTo.size()-1; i>=0; i-- )
|
||||
{
|
||||
if( !IsThemeSelectable(AddTo[i]) )
|
||||
AddTo.erase( AddTo.begin()+i );
|
||||
}
|
||||
}
|
||||
|
||||
int ThemeManager::GetNumSelectableThemes()
|
||||
{
|
||||
vector<RString> vs;
|
||||
GetSelectableThemeNames( vs );
|
||||
return vs.size();
|
||||
}
|
||||
|
||||
bool ThemeManager::DoesThemeExist( const RString &sThemeName )
|
||||
{
|
||||
vector<RString> asThemeNames;
|
||||
@@ -166,6 +185,32 @@ bool ThemeManager::DoesThemeExist( const RString &sThemeName )
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ThemeManager::IsThemeSelectable( const RString &sThemeName )
|
||||
{
|
||||
RString sDir = GetThemeDirFromName(sThemeName);
|
||||
IniFile ini;
|
||||
ini.ReadFile( sDir + THEME_INFO_INI );
|
||||
|
||||
bool b;
|
||||
if( ini.GetValue("ThemeInfo","Selectable",b) && !b )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
RString ThemeManager::GetThemeDisplayName( const RString &sThemeName )
|
||||
{
|
||||
RString sDir = GetThemeDirFromName(sThemeName);
|
||||
IniFile ini;
|
||||
ini.ReadFile( sDir + THEME_INFO_INI );
|
||||
|
||||
RString s;
|
||||
if( ini.GetValue("ThemeInfo","DisplayName",s) )
|
||||
return s;
|
||||
|
||||
return sThemeName;
|
||||
}
|
||||
|
||||
void ThemeManager::GetLanguages( vector<RString>& AddTo )
|
||||
{
|
||||
AddTo.clear();
|
||||
@@ -1070,6 +1115,7 @@ public:
|
||||
static int GetPathG( T* p, lua_State *L ) { lua_pushstring(L, p->GetPathG(SArg(1),SArg(2)) ); return 1; }
|
||||
static int GetPathB( T* p, lua_State *L ) { lua_pushstring(L, p->GetPathB(SArg(1),SArg(2)) ); return 1; }
|
||||
static int GetPathS( T* p, lua_State *L ) { lua_pushstring(L, p->GetPathS(SArg(1),SArg(2)) ); return 1; }
|
||||
static int GetNumSelectableThemes( T* p, lua_State *L ) { lua_pushnumber(L, p->GetNumSelectableThemes() ); return 1; }
|
||||
|
||||
static void Register(lua_State *L)
|
||||
{
|
||||
@@ -1078,6 +1124,7 @@ public:
|
||||
ADD_METHOD( GetPathG );
|
||||
ADD_METHOD( GetPathB );
|
||||
ADD_METHOD( GetPathS );
|
||||
ADD_METHOD( GetNumSelectableThemes );
|
||||
|
||||
Luna<T>::Register( L );
|
||||
|
||||
|
||||
@@ -38,7 +38,11 @@ public:
|
||||
~ThemeManager();
|
||||
|
||||
void GetThemeNames( vector<RString>& AddTo );
|
||||
void GetSelectableThemeNames( vector<RString>& AddTo );
|
||||
int GetNumSelectableThemes();
|
||||
bool DoesThemeExist( const RString &sThemeName );
|
||||
bool ThemeIsSelectable( const RString &sThemeName );
|
||||
RString GetThemeDisplayName( const RString &sThemeName );
|
||||
void GetLanguages( vector<RString>& AddTo );
|
||||
bool DoesLanguageExist( const RString &sLanguage );
|
||||
void SwitchThemeAndLanguage( const RString &sThemeName, const RString &sLanguage, bool bPseudoLocalize );
|
||||
|
||||
Reference in New Issue
Block a user