summaryrefslogtreecommitdiff
path: root/desktop/source
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/source')
-rw-r--r--desktop/source/app/app.cxx1
-rw-r--r--desktop/source/app/cmdlineargs.cxx74
-rw-r--r--desktop/source/app/cmdlineargs.hxx34
3 files changed, 55 insertions, 54 deletions
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 263ca3ffe636..991577f10dfa 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -278,7 +278,6 @@ namespace
CommandLineArgs& Desktop::GetCommandLineArgs()
{
- ensureProcessServiceFactory();
return theCommandLineArgs::get();
}
diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index af7ee26e21e3..473dfd69d309 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -32,9 +32,7 @@
#include <rtl/ustring.hxx>
#include "rtl/process.h"
#include <comphelper/processfactory.hxx>
-#include <com/sun/star/uri/XExternalUriReferenceTranslator.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uri/ExternalUriReferenceTranslator.hpp>
#include "tools/getprocessworkingdir.hxx"
#include <svl/documentlockfile.hxx>
@@ -52,6 +50,26 @@ namespace desktop
namespace {
+OUString translateExternalUris(OUString const & input) {
+ OUString t(
+ com::sun::star::uri::ExternalUriReferenceTranslator::create(
+ comphelper::getProcessComponentContext())->
+ translateToInternal(input));
+ return t.isEmpty() ? input : t;
+}
+
+std::vector< OUString > translateExternalUris(
+ std::vector< OUString > const & input)
+{
+ std::vector< OUString > t;
+ for (std::vector< OUString >::const_iterator i(input.begin());
+ i != input.end(); ++i)
+ {
+ t.push_back(translateExternalUris(*i));
+ }
+ return t;
+}
+
class ExtCommandLineSupplier: public CommandLineArgs::Supplier {
public:
explicit ExtCommandLineSupplier():
@@ -117,14 +135,6 @@ CommandLineArgs::CommandLineArgs( Supplier& supplier )
void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
{
m_cwdUrl = supplier.getCwdUrl();
- Reference<XMultiServiceFactory> xMS(comphelper::getProcessServiceFactory(), UNO_QUERY);
- OSL_ENSURE(xMS.is(), "CommandLineArgs: no ProcessServiceFactory.");
-
- Reference< XExternalUriReferenceTranslator > xTranslator(
- xMS->createInstance(
- OUString(
- "com.sun.star.uri.ExternalUriReferenceTranslator")),
- UNO_QUERY);
// parse command line arguments
bool bOpenEvent(true);
@@ -150,14 +160,6 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
{
break;
}
- // convert file URLs to internal form
- if (aArg.indexOfAsciiL(RTL_CONSTASCII_STRINGPARAM("file:"))==0 &&
- xTranslator.is())
- {
- OUString tmp(xTranslator->translateToInternal(aArg));
- if (!tmp.isEmpty())
- aArg = tmp;
- }
if ( !aArg.isEmpty() )
{
@@ -785,39 +787,39 @@ std::vector< rtl::OUString > const & CommandLineArgs::GetUnaccept() const
return m_unaccept;
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetOpenList() const
+std::vector< rtl::OUString > CommandLineArgs::GetOpenList() const
{
- return m_openlist;
+ return translateExternalUris(m_openlist);
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetViewList() const
+std::vector< rtl::OUString > CommandLineArgs::GetViewList() const
{
- return m_viewlist;
+ return translateExternalUris(m_viewlist);
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetStartList() const
+std::vector< rtl::OUString > CommandLineArgs::GetStartList() const
{
- return m_startlist;
+ return translateExternalUris(m_startlist);
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetForceOpenList() const
+std::vector< rtl::OUString > CommandLineArgs::GetForceOpenList() const
{
- return m_forceopenlist;
+ return translateExternalUris(m_forceopenlist);
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetForceNewList() const
+std::vector< rtl::OUString > CommandLineArgs::GetForceNewList() const
{
- return m_forcenewlist;
+ return translateExternalUris(m_forcenewlist);
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetPrintList() const
+std::vector< rtl::OUString > CommandLineArgs::GetPrintList() const
{
- return m_printlist;
+ return translateExternalUris(m_printlist);
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetPrintToList() const
+std::vector< rtl::OUString > CommandLineArgs::GetPrintToList() const
{
- return m_printtolist;
+ return translateExternalUris(m_printtolist);
}
rtl::OUString CommandLineArgs::GetPrinterName() const
@@ -835,9 +837,9 @@ std::vector< rtl::OUString > const & CommandLineArgs::GetInFilter() const
return m_infilter;
}
-std::vector< rtl::OUString > const & CommandLineArgs::GetConversionList() const
+std::vector< rtl::OUString > CommandLineArgs::GetConversionList() const
{
- return m_conversionlist;
+ return translateExternalUris(m_conversionlist);
}
rtl::OUString CommandLineArgs::GetConversionParams() const
@@ -846,7 +848,7 @@ rtl::OUString CommandLineArgs::GetConversionParams() const
}
rtl::OUString CommandLineArgs::GetConversionOut() const
{
- return m_conversionout;
+ return translateExternalUris(m_conversionout);
}
bool CommandLineArgs::IsEmpty() const
diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
index 4cd19d961051..c6286d2ba895 100644
--- a/desktop/source/app/cmdlineargs.hxx
+++ b/desktop/source/app/cmdlineargs.hxx
@@ -100,17 +100,17 @@ class CommandLineArgs: private boost::noncopyable
bool HasSplashPipe() const;
std::vector< rtl::OUString > const & GetAccept() const;
std::vector< rtl::OUString > const & GetUnaccept() const;
- std::vector< rtl::OUString > const & GetOpenList() const;
- std::vector< rtl::OUString > const & GetViewList() const;
- std::vector< rtl::OUString > const & GetStartList() const;
- std::vector< rtl::OUString > const & GetForceOpenList() const;
- std::vector< rtl::OUString > const & GetForceNewList() const;
- std::vector< rtl::OUString > const & GetPrintList() const;
- std::vector< rtl::OUString > const & GetPrintToList() const;
+ std::vector< rtl::OUString > GetOpenList() const;
+ std::vector< rtl::OUString > GetViewList() const;
+ std::vector< rtl::OUString > GetStartList() const;
+ std::vector< rtl::OUString > GetForceOpenList() const;
+ std::vector< rtl::OUString > GetForceNewList() const;
+ std::vector< rtl::OUString > GetPrintList() const;
+ std::vector< rtl::OUString > GetPrintToList() const;
rtl::OUString GetPrinterName() const;
rtl::OUString GetLanguage() const;
std::vector< rtl::OUString > const & GetInFilter() const;
- std::vector< rtl::OUString > const & GetConversionList() const;
+ std::vector< rtl::OUString > GetConversionList() const;
rtl::OUString GetConversionParams() const;
rtl::OUString GetConversionOut() const;
@@ -160,17 +160,17 @@ class CommandLineArgs: private boost::noncopyable
bool m_bDocumentArgs; // A document creation/open/load arg is used
std::vector< rtl::OUString > m_accept;
std::vector< rtl::OUString > m_unaccept;
- std::vector< rtl::OUString > m_openlist;
- std::vector< rtl::OUString > m_viewlist;
- std::vector< rtl::OUString > m_startlist;
- std::vector< rtl::OUString > m_forceopenlist;
- std::vector< rtl::OUString > m_forcenewlist;
- std::vector< rtl::OUString > m_printlist;
- std::vector< rtl::OUString > m_printtolist;
+ std::vector< rtl::OUString > m_openlist; // contains external URIs
+ std::vector< rtl::OUString > m_viewlist; // contains external URIs
+ std::vector< rtl::OUString > m_startlist; // contains external URIs
+ std::vector< rtl::OUString > m_forceopenlist; // contains external URIs
+ std::vector< rtl::OUString > m_forcenewlist; // contains external URIs
+ std::vector< rtl::OUString > m_printlist; // contains external URIs
+ std::vector< rtl::OUString > m_printtolist; // contains external URIs
rtl::OUString m_printername;
- std::vector< rtl::OUString > m_conversionlist;
+ std::vector< rtl::OUString > m_conversionlist; // contains external URIs
rtl::OUString m_conversionparams;
- rtl::OUString m_conversionout;
+ rtl::OUString m_conversionout; // contains external URIs
std::vector< rtl::OUString > m_infilter;
rtl::OUString m_language;
};