[Libreoffice-commits] core.git: 7 commits - connectivity/Library_hsqldb.mk connectivity/source desktop/unx vcl/source vcl/unx

Eike Rathke erack at redhat.com
Mon Feb 18 11:07:27 PST 2013


 connectivity/Library_hsqldb.mk                 |    1 
 connectivity/source/drivers/hsqldb/HDriver.cxx |   11 ---
 connectivity/source/drivers/kab/KDEInit.cxx    |    1 
 desktop/unx/source/splashx.c                   |    4 +
 vcl/source/app/brand.cxx                       |   71 +++++++++++++++----------
 vcl/unx/generic/app/wmadaptor.cxx              |    1 
 6 files changed, 53 insertions(+), 36 deletions(-)

New commits:
commit 40dc6c3a97c9f40617e2258f0f0cf866bcb13c8a
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Feb 18 20:00:30 2013 +0100

    added language tags comment
    
    Change-Id: Ia71e1b9149b823a30cbeb1e75e04d27b40f11b12

diff --git a/vcl/unx/generic/app/wmadaptor.cxx b/vcl/unx/generic/app/wmadaptor.cxx
index 652d238..fd4eeec 100644
--- a/vcl/unx/generic/app/wmadaptor.cxx
+++ b/vcl/unx/generic/app/wmadaptor.cxx
@@ -988,6 +988,7 @@ void WMAdaptor::setWMName( X11SalFrame* pFrame, const String& rWMName ) const
     rtl::OString aTitle(rtl::OUStringToOString(rWMName,
         osl_getThreadTextEncoding()));
 
+    /* FIXME-BCP47: what slumbering dogs may we wake up here? */
     ::rtl::OString aWMLocale;
     rtl_Locale* pLocale = NULL;
     osl_getProcessLocale( &pLocale );
commit f6585c2718c365d39602e1f6c345bf9e78b4499f
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Feb 18 19:55:29 2013 +0100

    added language tags comment
    
    Change-Id: Ie5942c13c8f64063ca9d45e25ff7efbf5c3b3d16

diff --git a/connectivity/source/drivers/kab/KDEInit.cxx b/connectivity/source/drivers/kab/KDEInit.cxx
index 8f020b7..46bbe13 100644
--- a/connectivity/source/drivers/kab/KDEInit.cxx
+++ b/connectivity/source/drivers/kab/KDEInit.cxx
@@ -61,6 +61,7 @@ namespace connectivity
                 s_pKApplication = new KApplication(false, false);
             }
 
+            /* FIXME-BCP47: what slumbering dogs may we wake up here? */
             // set language
             rtl_Locale *pProcessLocale;
             osl_getProcessLocale(&pProcessLocale);
commit 9bf31cf6bc3f4df79ddf69ca17e3cbdb0978239b
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Feb 18 19:52:08 2013 +0100

    use LanguageTag(rtl_Locale)
    
    Change-Id: I4bcef6a58915226ec80d7546b4bc5d60abdaeeaf

diff --git a/connectivity/Library_hsqldb.mk b/connectivity/Library_hsqldb.mk
index 37655e7..3c26517 100644
--- a/connectivity/Library_hsqldb.mk
+++ b/connectivity/Library_hsqldb.mk
@@ -48,6 +48,7 @@ $(eval $(call gb_Library_use_libraries,hsqldb,\
 	sal \
 	tl \
 	utl \
+	i18nisolang1 \
 	$(gb_UWINAPI) \
 ))
 
diff --git a/connectivity/source/drivers/hsqldb/HDriver.cxx b/connectivity/source/drivers/hsqldb/HDriver.cxx
index 193adbb..5e31646 100644
--- a/connectivity/source/drivers/hsqldb/HDriver.cxx
+++ b/connectivity/source/drivers/hsqldb/HDriver.cxx
@@ -50,6 +50,7 @@
 #include <unotools/ucbstreamhelper.hxx>
 #include "resource/hsqldb_res.hrc"
 #include "resource/sharedresources.hxx"
+#include <i18npool/languagetag.hxx>
 
 #include <o3tl/compat_functional.hxx>
 
@@ -862,15 +863,7 @@ namespace connectivity
             {
                 rtl_Locale* pProcessLocale = NULL;
                 osl_getProcessLocale( &pProcessLocale );
-
-                ::rtl::OUStringBuffer aProcLocale;
-                aProcLocale.append( pProcessLocale->Language->buffer, pProcessLocale->Language->length );
-                if ( pProcessLocale->Country->length )
-                {
-                    aProcLocale.appendAscii( "-" );
-                    aProcLocale.append( pProcessLocale->Country->buffer, pProcessLocale->Country->length );
-                }
-                sLocaleString = aProcLocale.makeStringAndClear();
+                sLocaleString = LanguageTag( *pProcessLocale).getBcp47();
             }
             return sLocaleString;
         }
commit 5fa05c96d6bd5021141efc0649a8c3c3dc4ca222
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Feb 18 19:26:55 2013 +0100

    added comment about language tags
    
    Change-Id: If5a64f7e2b3ad0ad62733ea7e1a0c958ef6a7cd1

diff --git a/desktop/unx/source/splashx.c b/desktop/unx/source/splashx.c
index 6dd2fa2..e231a8e 100644
--- a/desktop/unx/source/splashx.c
+++ b/desktop/unx/source/splashx.c
@@ -595,6 +595,10 @@ static rtl_String* ustr_to_str( rtl_uString* pStr )
 
 static void splash_load_image( struct splash* splash, rtl_uString* pUAppPath )
 {
+    /* FIXME-BCP47: if we wanted to support language tags here that would get
+     * complicated, this is C-source not C++ so LanguageTag can't be used. For
+     * now the splash screen will have to get along with language-territory. */
+
     char *pBuffer, *pSuffix, *pLocale;
     int nLocSize;
     rtl_Locale *pLoc = NULL;
commit 63efb93a20a572f4399c1401b36eaac88bdd4cb7
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Feb 18 18:50:51 2013 +0100

    no need to expand the BRAND_BASE_DIR macro multiple times
    
    Change-Id: I085759537f64489e76e2f33a820cde14767d116a

diff --git a/vcl/source/app/brand.cxx b/vcl/source/app/brand.cxx
index fda0940..50b606e 100644
--- a/vcl/source/app/brand.cxx
+++ b/vcl/source/app/brand.cxx
@@ -27,10 +27,9 @@
 #include <vcl/svgdata.hxx>
 
 namespace {
-    static bool loadPng( rtl::OUString aUri, BitmapEx &rBitmap)
+    static bool loadPng( const OUString & rPath, BitmapEx &rBitmap)
     {
-        rtl::Bootstrap::expandMacros( aUri );
-        INetURLObject aObj( aUri );
+        INetURLObject aObj( rPath );
         SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
         if ( !aStrm.GetError() ) {
             vcl::PNGReader aReader( aStrm );
@@ -40,25 +39,24 @@ namespace {
         else
             return false;
     }
-    static bool tryLoadPng( const OUString& rName, BitmapEx& rBitmap )
+    static bool tryLoadPng( const OUString& rBaseDir, const OUString& rName, BitmapEx& rBitmap )
     {
         return
-            loadPng( "$BRAND_BASE_DIR/program/edition" + rName, rBitmap) ||
-            loadPng( "$BRAND_BASE_DIR/program" + rName, rBitmap);
+            loadPng( rBaseDir + "/program/edition" + rName, rBitmap) ||
+            loadPng( rBaseDir + "/program" + rName, rBitmap);
     }
-    static bool loadSvg(rtl::OUString aUri, BitmapEx &rBitmap)
+    static bool loadSvg( const OUString & rPath, BitmapEx &rBitmap)
     {
-        rtl::Bootstrap::expandMacros( aUri );
-        INetURLObject aObj( aUri );
+        INetURLObject aObj( rPath );
         SvgData aSvgData(aObj.PathToFileName());
         rBitmap = aSvgData.getReplacement();
         return !rBitmap.IsEmpty();
     }
-    static bool tryLoadSvg( const OUString& rName, BitmapEx& rBitmap )
+    static bool tryLoadSvg( const OUString& rBaseDir, const OUString& rName, BitmapEx& rBitmap )
     {
         return
-            loadSvg( "$BRAND_BASE_DIR/program/edition" + rName, rBitmap) ||
-            loadSvg( "$BRAND_BASE_DIR/program" + rName, rBitmap);
+            loadSvg( rBaseDir + "/program/edition" + rName, rBitmap) ||
+            loadSvg( rBaseDir + "/program" + rName, rBitmap);
     }
 }
 
@@ -66,6 +64,8 @@ bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap)
 {
     // TODO - if we want more flexibility we could add a branding path
     // in an rc file perhaps fallback to "about.bmp"
+    OUString aBaseDir( "$BRAND_BASE_DIR");
+    rtl::Bootstrap::expandMacros( aBaseDir );
     OUString aBaseName( "/" + OUString::createFromAscii( pName ) );
     OUString aPng( ".png" );
 
@@ -76,11 +76,11 @@ bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap)
     ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
     for (size_t i=0; i < aFallbacks.size(); ++i)
     {
-        if (tryLoadPng( aBaseName + "-" + aFallbacks[i] + aPng, rBitmap))
+        if (tryLoadPng( aBaseDir, aBaseName + "-" + aFallbacks[i] + aPng, rBitmap))
             return true;
     }
 
-    if (tryLoadPng( aBaseName + aPng, rBitmap))
+    if (tryLoadPng( aBaseDir, aBaseName + aPng, rBitmap))
         return true;
 
     return false;
@@ -88,6 +88,8 @@ bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap)
 
 bool Application::LoadBrandSVG (const char *pName, BitmapEx &rBitmap)
 {
+    OUString aBaseDir( "$BRAND_BASE_DIR");
+    rtl::Bootstrap::expandMacros( aBaseDir );
     rtl::OUString aBaseName( "/" + rtl::OUString::createFromAscii( pName ) );
     rtl::OUString aSvg( ".svg" );
 
@@ -98,11 +100,11 @@ bool Application::LoadBrandSVG (const char *pName, BitmapEx &rBitmap)
     ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
     for (size_t i=0; i < aFallbacks.size(); ++i)
     {
-        if (tryLoadSvg( aBaseName + "-" + aFallbacks[i] + aSvg, rBitmap))
+        if (tryLoadSvg( aBaseDir, aBaseName + "-" + aFallbacks[i] + aSvg, rBitmap))
             return true;
     }
 
-    if (tryLoadSvg( aBaseName + aSvg, rBitmap))
+    if (tryLoadSvg( aBaseDir, aBaseName + aSvg, rBitmap))
         return true;
 
     return false;
commit 96189af51da6e64ca321cee0d9c2f247c2cefe24
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Feb 18 18:39:18 2013 +0100

    slightly improved parameter passing
    
    Change-Id: I75b6bc42285cb3c671dcd4b437db54d5003a2898

diff --git a/vcl/source/app/brand.cxx b/vcl/source/app/brand.cxx
index 99517d1..fda0940 100644
--- a/vcl/source/app/brand.cxx
+++ b/vcl/source/app/brand.cxx
@@ -27,11 +27,10 @@
 #include <vcl/svgdata.hxx>
 
 namespace {
-    static bool loadPng(const char *pPath, const rtl::OUString &rName, BitmapEx &rBitmap)
+    static bool loadPng( rtl::OUString aUri, BitmapEx &rBitmap)
     {
-        rtl::OUString uri = rtl::OUString::createFromAscii( pPath ) + rName;
-        rtl::Bootstrap::expandMacros( uri );
-        INetURLObject aObj( uri );
+        rtl::Bootstrap::expandMacros( aUri );
+        INetURLObject aObj( aUri );
         SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
         if ( !aStrm.GetError() ) {
             vcl::PNGReader aReader( aStrm );
@@ -41,6 +40,12 @@ namespace {
         else
             return false;
     }
+    static bool tryLoadPng( const OUString& rName, BitmapEx& rBitmap )
+    {
+        return
+            loadPng( "$BRAND_BASE_DIR/program/edition" + rName, rBitmap) ||
+            loadPng( "$BRAND_BASE_DIR/program" + rName, rBitmap);
+    }
     static bool loadSvg(rtl::OUString aUri, BitmapEx &rBitmap)
     {
         rtl::Bootstrap::expandMacros( aUri );
@@ -49,13 +54,12 @@ namespace {
         rBitmap = aSvgData.getReplacement();
         return !rBitmap.IsEmpty();
     }
-}
-
-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);
+    static bool tryLoadSvg( const OUString& rName, BitmapEx& rBitmap )
+    {
+        return
+            loadSvg( "$BRAND_BASE_DIR/program/edition" + rName, rBitmap) ||
+            loadSvg( "$BRAND_BASE_DIR/program" + rName, rBitmap);
+    }
 }
 
 bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap)
@@ -72,23 +76,16 @@ bool Application::LoadBrandBitmap (const char* pName, BitmapEx &rBitmap)
     ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
     for (size_t i=0; i < aFallbacks.size(); ++i)
     {
-        if (lcl_loadPng( aBaseName + "-" + aFallbacks[i] + aPng, rBitmap))
+        if (tryLoadPng( aBaseName + "-" + aFallbacks[i] + aPng, rBitmap))
             return true;
     }
 
-    if (lcl_loadPng( aBaseName + aPng, rBitmap))
+    if (tryLoadPng( aBaseName + aPng, rBitmap))
         return true;
 
     return false;
 }
 
-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)
 {
     rtl::OUString aBaseName( "/" + rtl::OUString::createFromAscii( pName ) );
@@ -101,11 +98,11 @@ bool Application::LoadBrandSVG (const char *pName, BitmapEx &rBitmap)
     ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
     for (size_t i=0; i < aFallbacks.size(); ++i)
     {
-        if (lcl_loadSvg( aBaseName + "-" + aFallbacks[i] + aSvg, rBitmap))
+        if (tryLoadSvg( aBaseName + "-" + aFallbacks[i] + aSvg, rBitmap))
             return true;
     }
 
-    if (lcl_loadSvg( aBaseName + aSvg, rBitmap))
+    if (tryLoadSvg( aBaseName + aSvg, rBitmap))
         return true;
 
     return false;
commit ab6ebe247005d78cbd816269ab76a8d4d6ea11cd
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Feb 18 18:29:48 2013 +0100

    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

diff --git a/vcl/source/app/brand.cxx b/vcl/source/app/brand.cxx
index 904c24a..99517d1 100644
--- a/vcl/source/app/brand.cxx
+++ b/vcl/source/app/brand.cxx
@@ -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)
 {
     // TODO - if we want more flexibility we could add a branding path
     // in an rc file perhaps fallback to "about.bmp"
-    rtl::OUString aBaseName = ( rtl::OUString("/") +
-                                rtl::OUString::createFromAscii( pName ) );
-    rtl::OUString aPng( ".png" );
+    OUString aBaseName( "/" + OUString::createFromAscii( pName ) );
+    OUString aPng( ".png" );
 
     rtl_Locale *pLoc = NULL;
     osl_getProcessLocale (&pLoc);
     LanguageTag aLanguageTag( *pLoc);
 
-    rtl::OUString aName = aBaseName + aPng;
-    rtl::OUString aLocaleName = ( aBaseName + rtl::OUString("-") +
-                                  aLanguageTag.getBcp47() +
-                                  aPng );
+    ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
+    for (size_t i=0; i < aFallbacks.size(); ++i)
+    {
+        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) ||
-             loadPng ("$BRAND_BASE_DIR/program", aLocaleName, rBitmap) ||
-             loadPng ("$BRAND_BASE_DIR/program/edition", aName, rBitmap) ||
-             loadPng ("$BRAND_BASE_DIR/program", aName, rBitmap) );
+    return false;
+}
+
+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)
 {
-    rtl::OUString aBaseName = ( rtl::OUString("/") +
-                                rtl::OUString::createFromAscii( pName ) );
+    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 );
-    rtl::OUString uriOpt = rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program/edition" ) + aLocaleName;
-    rtl::OUString uri = rtl::OUString::createFromAscii( "$BRAND_BASE_DIR/program" ) + aBaseName+aSvg;
-    return ( loadSvg( uriOpt, rBitmap ) || loadSvg( uri, rBitmap ) );
+    ::std::vector< OUString > aFallbacks( aLanguageTag.getFallbackStrings());
+    for (size_t i=0; i < aFallbacks.size(); ++i)
+    {
+        if (lcl_loadSvg( aBaseName + "-" + aFallbacks[i] + aSvg, rBitmap))
+            return true;
+    }
+
+    if (lcl_loadSvg( aBaseName + aSvg, rBitmap))
+        return true;
+
+    return false;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list