Kaydet (Commit) ab6ebe24 authored tarafından Eike Rathke's avatar Eike Rathke

consistent fall-back chain for (branded) about

Make Application::LoadBrandBitmap() and LoadBrandSVG() use the same and
consistent fall-back chain to obtain localized files, if any.

Change-Id: I396f59ec5ffe7ee323b798c6c66241bd76a4b30a
üst 7caa6803
...@@ -51,46 +51,64 @@ namespace { ...@@ -51,46 +51,64 @@ namespace {
} }
} }
static bool lcl_loadPng( const OUString& rName, BitmapEx& rBitmap )
{
return
loadPng( "$BRAND_BASE_DIR/program/edition", rName, rBitmap) ||
loadPng( "$BRAND_BASE_DIR/program", rName, rBitmap);
}
bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap) bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap)
{ {
// TODO - if we want more flexibility we could add a branding path // TODO - if we want more flexibility we could add a branding path
// in an rc file perhaps fallback to "about.bmp" // in an rc file perhaps fallback to "about.bmp"
rtl::OUString aBaseName = ( rtl::OUString("/") + OUString aBaseName( "/" + OUString::createFromAscii( pName ) );
rtl::OUString::createFromAscii( pName ) ); OUString aPng( ".png" );
rtl::OUString aPng( ".png" );
rtl_Locale *pLoc = NULL; rtl_Locale *pLoc = NULL;
osl_getProcessLocale (&pLoc); osl_getProcessLocale (&pLoc);
LanguageTag aLanguageTag( *pLoc); LanguageTag aLanguageTag( *pLoc);
rtl::OUString aName = aBaseName + aPng; ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
rtl::OUString aLocaleName = ( aBaseName + rtl::OUString("-") + for (size_t i=0; i < aFallbacks.size(); ++i)
aLanguageTag.getBcp47() + {
aPng ); if (lcl_loadPng( aBaseName + "-" + aFallbacks[i] + aPng, rBitmap))
return true;
}
if (lcl_loadPng( aBaseName + aPng, rBitmap))
return true;
return ( loadPng ("$BRAND_BASE_DIR/program/edition", aLocaleName, rBitmap) || return false;
loadPng ("$BRAND_BASE_DIR/program", aLocaleName, rBitmap) || }
loadPng ("$BRAND_BASE_DIR/program/edition", aName, rBitmap) ||
loadPng ("$BRAND_BASE_DIR/program", aName, rBitmap) ); static bool lcl_loadSvg( const OUString& rName, BitmapEx& rBitmap )
{
return
loadSvg( "$BRAND_BASE_DIR/program/edition" + rName, rBitmap) ||
loadSvg( "$BRAND_BASE_DIR/program" + rName, rBitmap);
} }
bool Application::LoadBrandSVG (const char *pName, BitmapEx &rBitmap) bool Application::LoadBrandSVG (const char *pName, BitmapEx &rBitmap)
{ {
rtl::OUString aBaseName = ( rtl::OUString("/") + rtl::OUString aBaseName( "/" + rtl::OUString::createFromAscii( pName ) );
rtl::OUString::createFromAscii( pName ) );
rtl::OUString aSvg( ".svg" ); rtl::OUString aSvg( ".svg" );
rtl_Locale *pLoc = NULL; rtl_Locale *pLoc = NULL;
osl_getProcessLocale (&pLoc); osl_getProcessLocale (&pLoc);
LanguageTag aLanguageTag( *pLoc); LanguageTag aLanguageTag( *pLoc);
rtl::OUString aName = aBaseName + aSvg; ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
rtl::OUString aLocaleName = ( aBaseName + rtl::OUString("-") + for (size_t i=0; i < aFallbacks.size(); ++i)
aLanguageTag.getBcp47() + {
aSvg ); if (lcl_loadSvg( aBaseName + "-" + aFallbacks[i] + aSvg, rBitmap))
rtl::OUString uriOpt = rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program/edition" ) + aLocaleName; return true;
rtl::OUString uri = rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ) + aBaseName+aSvg; }
return ( loadSvg( uriOpt, rBitmap ) || loadSvg( uri, rBitmap ) );
if (lcl_loadSvg( aBaseName + aSvg, rBitmap))
return true;
return false;
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment