[Libreoffice-commits] core.git: Branch 'distro/suse/suse-4.0' - cui/source vcl/source
Petr Mladek
pmladek at suse.cz
Fri May 17 01:24:47 PDT 2013
cui/source/dialogs/about.cxx | 49 ++++++++++++++++++++++++++++---------------
vcl/source/app/brand.cxx | 22 +++++++++++++------
2 files changed, 47 insertions(+), 24 deletions(-)
New commits:
commit 996206f18cc8e93d9497765c899710c1f64636df
Author: Petr Mladek <pmladek at suse.cz>
Date: Thu May 16 18:58:22 2013 +0200
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
diff --git a/cui/source/dialogs/about.cxx b/cui/source/dialogs/about.cxx
index f7332b9..b70754f 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 03e999a..e508310 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: */
More information about the Libreoffice-commits
mailing list