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 <er...@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 <er...@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 <er...@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 <er...@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 <er...@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 <er...@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 <er...@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: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits