diff options
author | Petr Mladek <pmladek@suse.cz> | 2013-05-16 18:58:22 +0200 |
---|---|---|
committer | Petr Mladek <pmladek@suse.cz> | 2013-05-17 10:21:36 +0200 |
commit | 996206f18cc8e93d9497765c899710c1f64636df (patch) | |
tree | 42424bbd41d12633d0d8e31615c6559d3fa381cc | |
parent | d4a628a1ecbbf52c94e7924f17d6163cb34e1135 (diff) |
look for alternative about dialog branding again
Some customers use its own branding in the program/edition
subdirectory. This feature has been removed when fixing
the rebased SVG import stuff.
Change-Id: I78a32513008918928e948aff5d6653f24b401ec7
-rw-r--r-- | cui/source/dialogs/about.cxx | 49 | ||||
-rw-r--r-- | vcl/source/app/brand.cxx | 22 |
2 files changed, 47 insertions, 24 deletions
diff --git a/cui/source/dialogs/about.cxx b/cui/source/dialogs/about.cxx index f7332b991797..b70754fdb88b 100644 --- a/cui/source/dialogs/about.cxx +++ b/cui/source/dialogs/about.cxx @@ -191,25 +191,11 @@ void AboutDialog::StyleControls() aCancelButton.GrabFocus(); } -static bool loadBrandSvg(const char *pName, BitmapEx &rBitmap, int nWidth ) +static bool tryLoadBrandSvg(const OUString & rPath, BitmapEx &rBitmap, int nWidth ) { // Load from disk // --------------------------------------------------------------------- - rtl::OUString aBaseName = ( rtl::OUString("/") + - rtl::OUString::createFromAscii( pName ) ); - rtl::OUString aSvg( ".svg" ); - - rtl_Locale *pLoc = NULL; - osl_getProcessLocale (&pLoc); - LanguageTag aLanguageTag( *pLoc); - - rtl::OUString aName = aBaseName + aSvg; - rtl::OUString aLocaleName = ( aBaseName + rtl::OUString("-") + - aLanguageTag.getBcp47() + - aSvg ); - rtl::OUString uri = rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ) + aBaseName+aSvg; - rtl::Bootstrap::expandMacros( uri ); - INetURLObject aObj( uri ); + INetURLObject aObj( rPath ); SvgData aSvgData(aObj.PathToFileName()); // transform into [0,0,width,width*aspect] std dimensions @@ -264,7 +250,7 @@ static bool loadBrandSvg(const char *pName, BitmapEx &rBitmap, int nWidth ) if(xIntBmp.is()) { rBitmap = vcl::unotools::bitmapExFromXBitmap(xIntBmp); - return true; + return !rBitmap.IsEmpty(); } } } @@ -276,6 +262,35 @@ static bool loadBrandSvg(const char *pName, BitmapEx &rBitmap, int nWidth ) return false; } +static bool tryLoadEditionBrandSvg(const OUString & rBaseDir, const OUString& rName, BitmapEx &rBitmap, int nWidth ) +{ + return + tryLoadBrandSvg( rBaseDir + "/program/edition" + rName, rBitmap, nWidth) || + tryLoadBrandSvg( rBaseDir + "/program" + rName, rBitmap, nWidth); +} + +static bool loadBrandSvg(const char *pName, BitmapEx &rBitmap, int nWidth ) +{ + rtl::OUString aBaseDir( "$BRAND_BASE_DIR"); + rtl::Bootstrap::expandMacros( aBaseDir ); + rtl::OUString aBaseName( "/" + rtl::OUString::createFromAscii( pName ) ); + rtl::OUString aSvg( ".svg" ); + + rtl_Locale *pLoc = NULL; + osl_getProcessLocale (&pLoc); + LanguageTag aLanguageTag( *pLoc); + + rtl::OUString aName = aBaseName + aSvg; + rtl::OUString aLocaleName = ( aBaseName + rtl::OUString("-") + + aLanguageTag.getBcp47() + + aSvg ); + + return + tryLoadEditionBrandSvg( aBaseDir, aLocaleName, rBitmap, nWidth) || + tryLoadEditionBrandSvg( aBaseDir, aName, rBitmap, nWidth); +} + + void AboutDialog::LayoutControls() { // Get the size of the screen diff --git a/vcl/source/app/brand.cxx b/vcl/source/app/brand.cxx index 03e999ad8a07..e508310c1a24 100644 --- a/vcl/source/app/brand.cxx +++ b/vcl/source/app/brand.cxx @@ -41,6 +41,16 @@ namespace { else return false; } + + static bool loadSvg(const char *pPath, const rtl::OUString &rName, BitmapEx &rBitmap) + { + rtl::OUString uri = rtl::OUString::createFromAscii( pPath ) + rName; + rtl::Bootstrap::expandMacros( uri ); + INetURLObject aObj( uri ); + SvgData aSvgData(aObj.PathToFileName()); + rBitmap = aSvgData.getReplacement(); + return !rBitmap.IsEmpty(); + } } bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap) @@ -80,13 +90,11 @@ bool Application::LoadBrandSVG (const char *pName, BitmapEx &rBitmap) rtl::OUString aLocaleName = ( aBaseName + rtl::OUString("-") + aLanguageTag.getBcp47() + aSvg ); - //rtl::OUString uri = rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program/edition" ) + aLocaleName; - rtl::OUString uri = rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ) + aBaseName+aSvg; - rtl::Bootstrap::expandMacros( uri ); - INetURLObject aObj( uri ); - SvgData aSvgData(aObj.PathToFileName()); - rBitmap = aSvgData.getReplacement(); - return true; + + return ( loadSvg ("$BRAND_BASE_DIR/program/edition", aLocaleName, rBitmap) || + loadSvg ("$BRAND_BASE_DIR/program", aLocaleName, rBitmap) || + loadSvg ("$BRAND_BASE_DIR/program/edition", aName, rBitmap) || + loadSvg ("$BRAND_BASE_DIR/program", aName, rBitmap) ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |