summaryrefslogtreecommitdiff
path: root/fpicker
diff options
context:
space:
mode:
authormb93783 <mb93783@v60x-so15.Germany.Sun.COM>2009-12-02 12:43:33 +0100
committermb93783 <mb93783@v60x-so15.Germany.Sun.COM>2009-12-02 12:43:33 +0100
commit726f87d603a38c988a8425d42f023b03bda725b1 (patch)
tree9aabbedb96a77bdd8401334b9df4c30d9319dcad /fpicker
parent39cb219b68d81efc454d1860d6b3c42b204c1eb5 (diff)
parentef1ec7001a06a6ba0fdbed702bcd7a6fec58eaf9 (diff)
merge to m66
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;
}