summaryrefslogtreecommitdiff
path: root/extensions/source/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/source/plugin')
-rw-r--r--extensions/source/plugin/base/context.cxx49
-rw-r--r--extensions/source/plugin/base/manager.cxx13
-rw-r--r--extensions/source/plugin/inc/plugin/impl.hxx4
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 );