gui: Fix theme directory path

wxDirName doesn't seem to work (and it should probably be called
pxDirName). Use plain old wxFileName instead.
This commit is contained in:
Jonathan Li 2015-11-15 22:05:41 +00:00
parent 21857ec12d
commit e347ad7723
2 changed files with 20 additions and 33 deletions

View File

@ -239,7 +239,7 @@ namespace PathDefs
wxDirName GetThemes() wxDirName GetThemes()
{ {
return AppRoot() + Base::Themes(); return GetDocuments() + Base::Themes();
} }
wxDirName GetSettings() wxDirName GetSettings()

View File

@ -43,26 +43,16 @@
const wxImage& LoadImageAny( const wxImage& LoadImageAny(
wxImage& dest, bool useTheme, wxFileName& base, const wxChar* filename, IEmbeddedImage& onFail ) wxImage& dest, bool useTheme, wxFileName& base, const wxChar* filename, IEmbeddedImage& onFail )
{ {
if( useTheme ) if (useTheme && base.DirExists())
{ {
base.SetName( filename ); wxFileName pathname(base.GetFullPath(), filename);
base.SetExt( L"png" ); const wxChar* extensions[3] = {L"png", L"jpg", L"bmp"};
if( base.FileExists() ) for (size_t i = 0; i < sizeof(extensions)/sizeof(extensions[0]); ++i)
{ {
if( dest.LoadFile( base.GetFullPath() ) ) return dest; pathname.SetExt(extensions[i]);
} if (pathname.FileExists() && dest.LoadFile(pathname.GetFullPath()))
return dest;
base.SetExt( L"jpg" );
if( base.FileExists() )
{
if( dest.LoadFile( base.GetFullPath() ) ) return dest;
}
base.SetExt( L"bmp" );
if( base.FileExists() )
{
if( dest.LoadFile( base.GetFullPath() ) ) return dest;
} }
} }
@ -122,13 +112,14 @@ const wxBitmap& Pcsx2App::GetLogoBitmap()
ScopedPtr<wxBitmap>& logo( GetResourceCache().Bitmap_Logo ); ScopedPtr<wxBitmap>& logo( GetResourceCache().Bitmap_Logo );
if( logo ) return *logo; if( logo ) return *logo;
wxFileName mess; wxFileName themeDirectory;
bool useTheme = (g_Conf->DeskTheme != L"default"); bool useTheme = (g_Conf->DeskTheme != L"default");
if( useTheme ) if( useTheme )
{ {
wxDirName theme( PathDefs::GetThemes() + g_Conf->DeskTheme ); themeDirectory.Assign(wxFileName(PathDefs::GetThemes().ToString()).GetFullPath(), g_Conf->DeskTheme);
wxFileName zipped( theme.GetFilename() ); #if 0
wxFileName zipped(themeDirectory);
zipped.SetExt( L"zip" ); zipped.SetExt( L"zip" );
if( zipped.FileExists() ) if( zipped.FileExists() )
@ -139,14 +130,12 @@ const wxBitmap& Pcsx2App::GetLogoBitmap()
Console.Error( "Loading themes from zipfile is not supported yet.\nFalling back on default theme." ); Console.Error( "Loading themes from zipfile is not supported yet.\nFalling back on default theme." );
} }
#endif
// Overrides zipfile settings (fix when zipfile support added)
mess = theme.ToString();
} }
wxImage img; wxImage img;
EmbeddedImage<res_BackgroundLogo> temp; // because gcc can't allow non-const temporaries. EmbeddedImage<res_BackgroundLogo> temp; // because gcc can't allow non-const temporaries.
LoadImageAny( img, useTheme, mess, L"BackgroundLogo", temp ); LoadImageAny(img, useTheme, themeDirectory, L"BackgroundLogo", temp);
float scale = MSW_GetDPIScale(); // 1.0 for non-Windows float scale = MSW_GetDPIScale(); // 1.0 for non-Windows
logo = new wxBitmap(img.Scale(img.GetWidth() * scale, img.GetHeight() * scale, wxIMAGE_QUALITY_HIGH)); logo = new wxBitmap(img.Scale(img.GetWidth() * scale, img.GetHeight() * scale, wxIMAGE_QUALITY_HIGH));
@ -158,18 +147,17 @@ const wxBitmap& Pcsx2App::GetScreenshotBitmap()
ScopedPtr<wxBitmap>& screenshot(GetResourceCache().ScreenshotBitmap); ScopedPtr<wxBitmap>& screenshot(GetResourceCache().ScreenshotBitmap);
if (screenshot) return *screenshot; if (screenshot) return *screenshot;
wxFileName mess; wxFileName themeDirectory;
bool useTheme = (g_Conf->DeskTheme != L"default"); bool useTheme = (g_Conf->DeskTheme != L"default");
if (useTheme) if (useTheme)
{ {
wxDirName theme(PathDefs::GetThemes() + g_Conf->DeskTheme); themeDirectory.Assign(wxFileName(PathDefs::GetThemes().ToString()).GetFullPath(), g_Conf->DeskTheme);
mess = theme.ToString();
} }
wxImage img; wxImage img;
EmbeddedImage<res_ButtonIcon_Camera> temp; // because gcc can't allow non-const temporaries. EmbeddedImage<res_ButtonIcon_Camera> temp; // because gcc can't allow non-const temporaries.
LoadImageAny(img, useTheme, mess, L"ButtonIcon_Camera", temp); LoadImageAny(img, useTheme, themeDirectory, L"ButtonIcon_Camera", temp);
float scale = MSW_GetDPIScale(); // 1.0 for non-Windows float scale = MSW_GetDPIScale(); // 1.0 for non-Windows
screenshot = new wxBitmap(img.Scale(img.GetWidth() * scale, img.GetHeight() * scale, wxIMAGE_QUALITY_HIGH)); screenshot = new wxBitmap(img.Scale(img.GetWidth() * scale, img.GetHeight() * scale, wxIMAGE_QUALITY_HIGH));
@ -183,13 +171,12 @@ wxImageList& Pcsx2App::GetImgList_Config()
{ {
int image_size = MSW_GetDPIScale() * g_Conf->Listbook_ImageSize; int image_size = MSW_GetDPIScale() * g_Conf->Listbook_ImageSize;
images = new wxImageList(image_size, image_size); images = new wxImageList(image_size, image_size);
wxFileName mess; wxFileName themeDirectory;
bool useTheme = (g_Conf->DeskTheme != L"default"); bool useTheme = (g_Conf->DeskTheme != L"default");
if( useTheme ) if( useTheme )
{ {
wxDirName theme( PathDefs::GetThemes() + g_Conf->DeskTheme ); themeDirectory.Assign(wxFileName(PathDefs::GetThemes().ToString()).GetFullPath(), g_Conf->DeskTheme);
mess = theme.ToString();
} }
wxImage img; wxImage img;
@ -206,7 +193,7 @@ wxImageList& Pcsx2App::GetImgList_Config()
#define FancyLoadMacro( name ) \ #define FancyLoadMacro( name ) \
{ \ { \
EmbeddedImage<res_ConfigIcon_##name> temp; \ EmbeddedImage<res_ConfigIcon_##name> temp; \
LoadImageAny(img, useTheme, mess, L"ConfigIcon_" wxT(#name), temp); \ LoadImageAny(img, useTheme, themeDirectory, L"ConfigIcon_" wxT(#name), temp); \
img.Rescale(image_size, image_size, wxIMAGE_QUALITY_HIGH); \ img.Rescale(image_size, image_size, wxIMAGE_QUALITY_HIGH); \
m_Resources->ImageId.Config.name = images->Add(img); \ m_Resources->ImageId.Config.name = images->Add(img); \
} }