summaryrefslogtreecommitdiff
path: root/fpicker
diff options
context:
space:
mode:
authorVladimir Glazunov <vg@openoffice.org>2009-11-24 13:21:26 +0100
committerVladimir Glazunov <vg@openoffice.org>2009-11-24 13:21:26 +0100
commit0c487c34259d3118f1d731546fc1fa17a246d572 (patch)
tree9b99b38be7a4d5e52007159c38121732ebc6b16b /fpicker
parentdd859bb9c743d62dbab7cd286672046bf757bbfa (diff)
parentd7c1cd7976cc346a7c9384dff41f06376126b38a (diff)
CWS-TOOLING: integrate CWS c07v026_DEV300
Diffstat (limited to 'fpicker')
-rw-r--r--fpicker/source/unx/gnome/SalGtkPicker.cxx13
1 files changed, 11 insertions, 2 deletions
diff --git a/fpicker/source/unx/gnome/SalGtkPicker.cxx b/fpicker/source/unx/gnome/SalGtkPicker.cxx
index b6b9d2bb36ab..cde61d801495 100644
--- a/fpicker/source/unx/gnome/SalGtkPicker.cxx
+++ b/fpicker/source/unx/gnome/SalGtkPicker.cxx
@@ -73,6 +73,8 @@ rtl::OUString SalGtkPicker::uritounicode(const gchar* pIn)
INetURLObject aURL(sURL);
if (INET_PROT_FILE == aURL.GetProtocol())
{
+ // all the URLs are handled by office in UTF-8
+ // so the Gnome FP related URLs should be converted accordingly
gchar *pEncodedFileName = g_filename_from_uri(pIn, NULL, NULL);
if ( pEncodedFileName )
{
@@ -94,12 +96,19 @@ rtl::OUString SalGtkPicker::uritounicode(const gchar* pIn)
rtl::OString SalGtkPicker::unicodetouri(const rtl::OUString &rURL)
{
+ // all the URLs are handled by office in UTF-8 ( and encoded with "%xx" codes based on UTF-8 )
+ // so the Gnome FP related URLs should be converted accordingly
OString sURL = OUStringToOString(rURL, RTL_TEXTENCODING_UTF8);
INetURLObject aURL(rURL);
if (INET_PROT_FILE == aURL.GetProtocol())
{
- rtl::OUString sOUURL = aURL.getExternalURL(INetURLObject::DECODE_WITH_CHARSET, osl_getThreadTextEncoding());
- sURL = OUStringToOString( sOUURL, osl_getThreadTextEncoding());
+ OUString aNewURL = Reference<uri::XExternalUriReferenceTranslator>(Reference<XMultiServiceFactory>(comphelper::getProcessServiceFactory(), UNO_QUERY_THROW)->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uri.ExternalUriReferenceTranslator"))), UNO_QUERY_THROW)->translateToExternal( rURL );
+
+ if( aNewURL.getLength() )
+ {
+ // At this point the URL should contain ascii characters only actually
+ sURL = OUStringToOString( aNewURL, osl_getThreadTextEncoding() );
+ }
}
return sURL;
}