[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