diff options
Diffstat (limited to 'extensions/source/plugin')
-rw-r--r-- | extensions/source/plugin/base/context.cxx | 49 | ||||
-rw-r--r-- | extensions/source/plugin/base/manager.cxx | 13 | ||||
-rw-r--r-- | extensions/source/plugin/inc/plugin/impl.hxx | 4 |
3 files changed, 31 insertions, 35 deletions
diff --git a/extensions/source/plugin/base/context.cxx b/extensions/source/plugin/base/context.cxx index c916431d35b0..fa504aacdea5 100644 --- a/extensions/source/plugin/base/context.cxx +++ b/extensions/source/plugin/base/context.cxx @@ -47,27 +47,29 @@ #include <sal/log.hxx> #include <com/sun/star/frame/FrameSearchFlag.hpp> #include <com/sun/star/frame/XComponentLoader.hpp> +#include <com/sun/star/frame/Desktop.hpp> #include <tools/fsys.hxx> #include <tools/urlobj.hxx> #include <cppuhelper/implbase1.hxx> using namespace com::sun::star::io; +using namespace com::sun::star::frame; namespace ext_plug { class FileSink : public ::cppu::WeakAggImplHelper1< ::com::sun::star::io::XOutputStream > { private: - Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xSMgr; + Reference< ::com::sun::star::uno::XComponentContext > m_xContext; FILE* fp; - Reference< ::com::sun::star::plugin::XPlugin > m_xPlugin; + Reference< ::com::sun::star::plugin::XPlugin > m_xPlugin; ::rtl::OUString m_aMIMEType; ::rtl::OUString m_aTarget; ::rtl::OUString m_aFileName; public: - FileSink( const Reference< ::com::sun::star::lang::XMultiServiceFactory > &, + FileSink( const Reference< ::com::sun::star::uno::XComponentContext > &, const Reference< ::com::sun::star::plugin::XPlugin > & plugin, const ::rtl::OUString& mimetype, const ::rtl::OUString& target, @@ -85,11 +87,11 @@ using namespace ext_plug; class XPluginContext_Impl : public ::cppu::WeakAggImplHelper1< ::com::sun::star::plugin::XPluginContext > { - Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xSMgr; + Reference< ::com::sun::star::uno::XComponentContext > m_xContext; rtl_TextEncoding m_aEncoding; public: - XPluginContext_Impl( const Reference< ::com::sun::star::lang::XMultiServiceFactory > & ); + XPluginContext_Impl( const Reference< ::com::sun::star::uno::XComponentContext > & ); virtual ~XPluginContext_Impl(); @@ -105,11 +107,11 @@ public: Reference< ::com::sun::star::plugin::XPluginContext > XPluginManager_Impl::createPluginContext() throw() { - return new XPluginContext_Impl( m_xSMgr ); + return new XPluginContext_Impl( m_xContext ); } -XPluginContext_Impl::XPluginContext_Impl( const Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr ) - : m_xSMgr( rSMgr ), +XPluginContext_Impl::XPluginContext_Impl( const Reference< ::com::sun::star::uno::XComponentContext > & rxContext ) + : m_xContext( rxContext ), m_aEncoding( osl_getThreadTextEncoding() ) { } @@ -127,9 +129,7 @@ XPluginContext_Impl::~XPluginContext_Impl() void XPluginContext_Impl::getURL(const Reference< ::com::sun::star::plugin::XPlugin > & plugin, const ::rtl::OUString& url, const ::rtl::OUString& target) throw( ::com::sun::star::plugin::PluginException, RuntimeException ) { - Reference< XInterface > xInst = m_xSMgr->createInstance( ::rtl::OUString("com.sun.star.frame.Desktop") ); - if( ! xInst.is() ) - return; + Reference< XDesktop2 > xDesktop = Desktop::create(m_xContext); if( target.isEmpty() ) { @@ -146,10 +146,9 @@ void XPluginContext_Impl::getURL(const Reference< ::com::sun::star::plugin::XPlu return; } - Reference< ::com::sun::star::frame::XComponentLoader > xLoader( xInst, UNO_QUERY ); XPlugin_Impl* pPlugin = XPluginManager_Impl::getPluginImplementation( plugin ); - if( xLoader.is() && pPlugin ) + if( pPlugin ) { try { @@ -159,7 +158,7 @@ void XPluginContext_Impl::getURL(const Reference< ::com::sun::star::plugin::XPlu Sequence< ::com::sun::star::beans::PropertyValue > aArgs( &aValue, 1 ); Reference< ::com::sun::star::lang::XComponent > xComp = - xLoader->loadComponentFromURL( + xDesktop->loadComponentFromURL( url, target, ::com::sun::star::frame::FrameSearchFlag::PARENT | @@ -220,13 +219,10 @@ void XPluginContext_Impl::postURL(const Reference< ::com::sun::star::plugin::XPl } } - Reference< XInterface > xInst = m_xSMgr->createInstance( ::rtl::OUString("com.sun.star.frame.Desktop") ); - if( ! xInst.is() ) - return ; + Reference< XDesktop2 > xDesktop = Desktop::create(m_xContext); - Reference< ::com::sun::star::frame::XComponentLoader > xLoader( xInst, UNO_QUERY ); XPlugin_Impl* pPlugin = XPluginManager_Impl::getPluginImplementation( plugin ); - if( xLoader.is() && pPlugin ) + if( pPlugin ) { try { @@ -238,7 +234,7 @@ void XPluginContext_Impl::postURL(const Reference< ::com::sun::star::plugin::XPl aValues[1].Value <<= ::rtl::OStringToOUString( (char*)( file ? aBuf : buf ).getConstArray(), m_aEncoding ); Sequence< ::com::sun::star::beans::PropertyValue > aArgs( aValues, 2 ); Reference< ::com::sun::star::lang::XComponent > xComp = - xLoader->loadComponentFromURL( + xDesktop->loadComponentFromURL( url, target, ::com::sun::star::frame::FrameSearchFlag::PARENT | @@ -268,16 +264,16 @@ void XPluginContext_Impl::postURLNotify(const Reference< ::com::sun::star::plugi void XPluginContext_Impl::newStream( const Reference< ::com::sun::star::plugin::XPlugin > & plugin, const ::rtl::OUString& mimetype, const ::rtl::OUString& target, const Reference< ::com::sun::star::io::XActiveDataSource > & source ) throw( ::com::sun::star::plugin::PluginException, RuntimeException ) { - FileSink* pNewSink = new FileSink( m_xSMgr, plugin, mimetype, target, source ); + FileSink* pNewSink = new FileSink( m_xContext, plugin, mimetype, target, source ); pNewSink->acquire(); } -FileSink::FileSink( const Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr, const Reference< ::com::sun::star::plugin::XPlugin > & plugin, +FileSink::FileSink( const Reference< ::com::sun::star::uno::XComponentContext > & rxContext, const Reference< ::com::sun::star::plugin::XPlugin > & plugin, const ::rtl::OUString& mimetype, const ::rtl::OUString& target, const Reference< ::com::sun::star::io::XActiveDataSource > & source ) : - m_xSMgr( rSMgr ), + m_xContext( rxContext ), m_xPlugin( plugin ), m_aMIMEType( mimetype ), m_aTarget( target ) @@ -305,11 +301,10 @@ void FileSink::closeOutput() throw() if( fp ) fclose( fp ); - Reference< XInterface > xInst = m_xSMgr->createInstance( ::rtl::OUString("com.sun.star.frame.Desktop") ); - Reference< ::com::sun::star::frame::XComponentLoader > xLoader( xInst, UNO_QUERY ); + Reference< XDesktop2 > xDesktop = Desktop::create(m_xContext); XPlugin_Impl* pPlugin = XPluginManager_Impl::getPluginImplementation( m_xPlugin ); - if( xLoader.is() && pPlugin ) + if( pPlugin ) { try { @@ -319,7 +314,7 @@ void FileSink::closeOutput() throw() Sequence< ::com::sun::star::beans::PropertyValue > aArgs( &aValue, 1 ); Reference< ::com::sun::star::lang::XComponent > xComp = - xLoader->loadComponentFromURL( + xDesktop->loadComponentFromURL( m_aFileName, m_aTarget, ::com::sun::star::frame::FrameSearchFlag::PARENT | diff --git a/extensions/source/plugin/base/manager.cxx b/extensions/source/plugin/base/manager.cxx index 12ff1a457f4e..80c6939a3e65 100644 --- a/extensions/source/plugin/base/manager.cxx +++ b/extensions/source/plugin/base/manager.cxx @@ -42,6 +42,7 @@ #include <cstdarg> #include <comphelper/string.hxx> +#include <comphelper/processfactory.hxx> #include "plugin/impl.hxx" @@ -99,7 +100,7 @@ const Sequence< ::rtl::OUString >& PluginManager::getAdditionalSearchPaths() //================================================================================================== Reference< XInterface > SAL_CALL PluginManager_CreateInstance( const Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr ) throw( Exception ) { - Reference< XInterface > xService = *new XPluginManager_Impl( rSMgr ); + Reference< XInterface > xService = *new XPluginManager_Impl( comphelper::getComponentContext(rSMgr) ); return xService; } @@ -136,10 +137,10 @@ Sequence< ::rtl::OUString > XPluginManager_Impl::getSupportedServiceNames_Static return aSNS; } -XPluginManager_Impl::XPluginManager_Impl( const Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr ) -: m_xSMgr( rSMgr ) +XPluginManager_Impl::XPluginManager_Impl( const Reference< ::com::sun::star::uno::XComponentContext > & rxContext ) +: m_xContext( rxContext ) { - PluginManager::setServiceFactory( rSMgr ); + PluginManager::setServiceFactory( Reference< ::com::sun::star::lang::XMultiServiceFactory>(rxContext->getServiceManager(), UNO_QUERY_THROW) ); } XPluginManager_Impl::~XPluginManager_Impl() @@ -189,7 +190,7 @@ Sequence<com::sun::star::plugin::PluginDescription> XPluginManager_Impl::getPlug Reference< ::com::sun::star::plugin::XPlugin > XPluginManager_Impl::createPlugin( const Reference< ::com::sun::star::plugin::XPluginContext >& acontext, sal_Int16 mode, const Sequence< ::rtl::OUString >& argn, const Sequence< ::rtl::OUString >& argv, const ::com::sun::star::plugin::PluginDescription& plugintype) throw( RuntimeException,::com::sun::star::plugin::PluginException ) { - XPlugin_Impl* pImpl = new XPlugin_Impl( m_xSMgr ); + XPlugin_Impl* pImpl = new XPlugin_Impl( Reference< ::com::sun::star::lang::XMultiServiceFactory>(m_xContext->getServiceManager(), UNO_QUERY_THROW) ); pImpl->setPluginContext( acontext ); PluginManager::get().getPlugins().push_back( pImpl ); @@ -204,7 +205,7 @@ Reference< ::com::sun::star::plugin::XPlugin > XPluginManager_Impl::createPlugin Reference< ::com::sun::star::plugin::XPlugin > XPluginManager_Impl::createPluginFromURL( const Reference< ::com::sun::star::plugin::XPluginContext > & acontext, sal_Int16 mode, const Sequence< ::rtl::OUString >& argn, const Sequence< ::rtl::OUString >& argv, const Reference< ::com::sun::star::awt::XToolkit > & toolkit, const Reference< ::com::sun::star::awt::XWindowPeer > & parent, const ::rtl::OUString& url ) throw() { - XPlugin_Impl* pImpl = new XPlugin_Impl( m_xSMgr ); + XPlugin_Impl* pImpl = new XPlugin_Impl( Reference< ::com::sun::star::lang::XMultiServiceFactory>(m_xContext->getServiceManager(), UNO_QUERY_THROW) ); Reference< ::com::sun::star::plugin::XPlugin > xRef = pImpl; pImpl->setPluginContext( acontext ); diff --git a/extensions/source/plugin/inc/plugin/impl.hxx b/extensions/source/plugin/inc/plugin/impl.hxx index 5316fbe4eed7..dbb06a06be67 100644 --- a/extensions/source/plugin/inc/plugin/impl.hxx +++ b/extensions/source/plugin/inc/plugin/impl.hxx @@ -287,9 +287,9 @@ public: class XPluginManager_Impl : public cppu::WeakAggImplHelper1< com::sun::star::plugin::XPluginManager > { - Reference< com::sun::star::lang::XMultiServiceFactory > m_xSMgr; + Reference< com::sun::star::uno::XComponentContext > m_xContext; public: - XPluginManager_Impl( const Reference< com::sun::star::lang::XMultiServiceFactory > & ); + XPluginManager_Impl( const Reference< com::sun::star::uno::XComponentContext > & ); virtual ~XPluginManager_Impl(); static XPlugin_Impl* getXPluginFromNPP( NPP ); |