sfx: Use constructor feature for OwnSubFilterService.
Change-Id: I5bc7844c74043640494330fefc87914d4c02b768
This commit is contained in:
@@ -59,7 +59,6 @@
|
|||||||
#include <comphelper/sequence.hxx>
|
#include <comphelper/sequence.hxx>
|
||||||
#include <framework/documentundoguard.hxx>
|
#include <framework/documentundoguard.hxx>
|
||||||
#include <osl/mutex.hxx>
|
#include <osl/mutex.hxx>
|
||||||
#include <ownsubfilterservice.hxx>
|
|
||||||
#include <rtl/ustrbuf.hxx>
|
#include <rtl/ustrbuf.hxx>
|
||||||
#include <svl/eitem.hxx>
|
#include <svl/eitem.hxx>
|
||||||
#include <svl/intitem.hxx>
|
#include <svl/intitem.hxx>
|
||||||
@@ -1799,7 +1798,6 @@ SFX2_DLLPUBLIC void* SAL_CALL sfx_component_getFactory(
|
|||||||
IF_NAME_CREATECOMPONENTFACTORY( TestKeyHandler )
|
IF_NAME_CREATECOMPONENTFACTORY( TestKeyHandler )
|
||||||
IF_NAME_CREATECOMPONENTFACTORY( TestMouseClickHandler )
|
IF_NAME_CREATECOMPONENTFACTORY( TestMouseClickHandler )
|
||||||
#endif
|
#endif
|
||||||
IF_NAME_CREATECOMPONENTFACTORY( ::sfx2::OwnSubFilterService )
|
|
||||||
if ( ::comp_SfxDocumentMetaData::_getImplementationName().equals(
|
if ( ::comp_SfxDocumentMetaData::_getImplementationName().equals(
|
||||||
OUString::createFromAscii( pImplementationName ) ) )
|
OUString::createFromAscii( pImplementationName ) ) )
|
||||||
{
|
{
|
||||||
|
@@ -19,89 +19,46 @@
|
|||||||
|
|
||||||
#include <com/sun/star/frame/DoubleInitializationException.hpp>
|
#include <com/sun/star/frame/DoubleInitializationException.hpp>
|
||||||
#include <com/sun/star/lang/XUnoTunnel.hpp>
|
#include <com/sun/star/lang/XUnoTunnel.hpp>
|
||||||
#include <cppuhelper/supportsservice.hxx>
|
#include <com/sun/star/document/XFilter.hpp>
|
||||||
|
#include <com/sun/star/lang/XServiceInfo.hpp>
|
||||||
|
#include <com/sun/star/frame/XModel.hpp>
|
||||||
|
#include <com/sun/star/io/XStream.hpp>
|
||||||
|
|
||||||
#include <ownsubfilterservice.hxx>
|
#include <cppuhelper/implbase2.hxx>
|
||||||
|
#include <cppuhelper/supportsservice.hxx>
|
||||||
|
#include <rtl/ref.hxx>
|
||||||
#include <sfx2/objsh.hxx>
|
#include <sfx2/objsh.hxx>
|
||||||
|
|
||||||
using namespace ::com::sun::star;
|
using namespace css;
|
||||||
|
|
||||||
namespace sfx2 {
|
namespace {
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
class OwnSubFilterService : public cppu::WeakImplHelper2 < document::XFilter
|
||||||
OwnSubFilterService::OwnSubFilterService( const uno::Reference < lang::XMultiServiceFactory >& xFactory )
|
,lang::XServiceInfo >
|
||||||
: m_xFactory( xFactory )
|
|
||||||
, m_pObjectShell( NULL )
|
|
||||||
{
|
{
|
||||||
}
|
uno::Reference< frame::XModel > m_xModel;
|
||||||
|
uno::Reference< io::XStream > m_xStream;
|
||||||
//-------------------------------------------------------------------------
|
SfxObjectShell* m_pObjectShell;
|
||||||
OwnSubFilterService::~OwnSubFilterService()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
|
||||||
uno::Sequence< OUString > SAL_CALL OwnSubFilterService::impl_getStaticSupportedServiceNames()
|
|
||||||
{
|
|
||||||
uno::Sequence< OUString > aRet(2);
|
|
||||||
aRet[0] = "com.sun.star.document.OwnSubFilter";
|
|
||||||
aRet[1] = "com.sun.star.comp.document.OwnSubFilter";
|
|
||||||
return aRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
|
||||||
OUString SAL_CALL OwnSubFilterService::impl_getStaticImplementationName()
|
|
||||||
{
|
|
||||||
return OUString("com.sun.star.comp.document.OwnSubFilter");
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
|
||||||
uno::Reference< uno::XInterface > SAL_CALL OwnSubFilterService::impl_staticCreateSelfInstance(
|
|
||||||
const uno::Reference< lang::XMultiServiceFactory >& xServiceManager )
|
|
||||||
{
|
|
||||||
return uno::Reference< uno::XInterface >( *new OwnSubFilterService( xServiceManager ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
|
||||||
uno::Reference< lang::XSingleServiceFactory > SAL_CALL OwnSubFilterService::impl_createFactory(
|
|
||||||
const uno::Reference< lang::XMultiServiceFactory >& xServiceManager )
|
|
||||||
{
|
|
||||||
return ::cppu::createSingleFactory( xServiceManager,
|
|
||||||
OwnSubFilterService::impl_getStaticImplementationName(),
|
|
||||||
OwnSubFilterService::impl_staticCreateSelfInstance,
|
|
||||||
OwnSubFilterService::impl_getStaticSupportedServiceNames() );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
OwnSubFilterService( const uno::Sequence< uno::Any >& aArguments )
|
||||||
|
throw (uno::Exception, uno::RuntimeException);
|
||||||
|
virtual ~OwnSubFilterService();
|
||||||
|
|
||||||
// XFilter
|
// XFilter
|
||||||
|
virtual ::sal_Bool SAL_CALL filter( const uno::Sequence< beans::PropertyValue >& aDescriptor ) throw (uno::RuntimeException);
|
||||||
|
virtual void SAL_CALL cancel() throw (uno::RuntimeException);
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
// XServiceInfo
|
||||||
sal_Bool SAL_CALL OwnSubFilterService::filter( const uno::Sequence< beans::PropertyValue >& aDescriptor )
|
virtual OUString SAL_CALL getImplementationName( ) throw (uno::RuntimeException);
|
||||||
throw (uno::RuntimeException)
|
virtual ::sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (uno::RuntimeException);
|
||||||
{
|
virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw (uno::RuntimeException);
|
||||||
if ( !m_pObjectShell )
|
};
|
||||||
throw uno::RuntimeException();
|
|
||||||
|
|
||||||
return m_pObjectShell->ImportFromGeneratedStream_Impl( m_xStream, aDescriptor );
|
OwnSubFilterService::OwnSubFilterService( const uno::Sequence< uno::Any >& aArguments )
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
|
||||||
void SAL_CALL OwnSubFilterService::cancel()
|
|
||||||
throw (uno::RuntimeException)
|
|
||||||
{
|
|
||||||
// not implemented
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// XInitialization
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
|
||||||
void SAL_CALL OwnSubFilterService::initialize( const uno::Sequence< uno::Any >& aArguments )
|
|
||||||
throw (uno::Exception, uno::RuntimeException)
|
throw (uno::Exception, uno::RuntimeException)
|
||||||
|
: m_pObjectShell( NULL )
|
||||||
{
|
{
|
||||||
if ( !m_xFactory.is() )
|
|
||||||
throw uno::RuntimeException();
|
|
||||||
|
|
||||||
if ( aArguments.getLength() != 2 )
|
if ( aArguments.getLength() != 2 )
|
||||||
throw lang::IllegalArgumentException();
|
throw lang::IllegalArgumentException();
|
||||||
|
|
||||||
@@ -122,11 +79,29 @@ void SAL_CALL OwnSubFilterService::initialize( const uno::Sequence< uno::Any >&
|
|||||||
throw lang::IllegalArgumentException();
|
throw lang::IllegalArgumentException();
|
||||||
}
|
}
|
||||||
|
|
||||||
// XServiceInfo
|
OwnSubFilterService::~OwnSubFilterService()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
sal_Bool SAL_CALL OwnSubFilterService::filter( const uno::Sequence< beans::PropertyValue >& aDescriptor )
|
||||||
|
throw (uno::RuntimeException)
|
||||||
|
{
|
||||||
|
if ( !m_pObjectShell )
|
||||||
|
throw uno::RuntimeException();
|
||||||
|
|
||||||
|
return m_pObjectShell->ImportFromGeneratedStream_Impl( m_xStream, aDescriptor );
|
||||||
|
}
|
||||||
|
|
||||||
|
void SAL_CALL OwnSubFilterService::cancel()
|
||||||
|
throw (uno::RuntimeException)
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
}
|
||||||
|
|
||||||
OUString SAL_CALL OwnSubFilterService::getImplementationName()
|
OUString SAL_CALL OwnSubFilterService::getImplementationName()
|
||||||
throw ( uno::RuntimeException )
|
throw ( uno::RuntimeException )
|
||||||
{
|
{
|
||||||
return impl_getStaticImplementationName();
|
return OUString("com.sun.star.comp.document.OwnSubFilter");
|
||||||
}
|
}
|
||||||
|
|
||||||
sal_Bool SAL_CALL OwnSubFilterService::supportsService( const OUString& ServiceName )
|
sal_Bool SAL_CALL OwnSubFilterService::supportsService( const OUString& ServiceName )
|
||||||
@@ -138,9 +113,22 @@ sal_Bool SAL_CALL OwnSubFilterService::supportsService( const OUString& ServiceN
|
|||||||
uno::Sequence< OUString > SAL_CALL OwnSubFilterService::getSupportedServiceNames()
|
uno::Sequence< OUString > SAL_CALL OwnSubFilterService::getSupportedServiceNames()
|
||||||
throw ( uno::RuntimeException )
|
throw ( uno::RuntimeException )
|
||||||
{
|
{
|
||||||
return impl_getStaticSupportedServiceNames();
|
uno::Sequence< OUString > aRet(2);
|
||||||
|
aRet[0] = "com.sun.star.document.OwnSubFilter";
|
||||||
|
aRet[1] = "com.sun.star.comp.document.OwnSubFilter";
|
||||||
|
return aRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace sfx2
|
}
|
||||||
|
|
||||||
|
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
|
||||||
|
com_sun_star_comp_document_OwnSubFilter_get_implementation(
|
||||||
|
css::uno::XComponentContext *,
|
||||||
|
css::uno::Sequence<css::uno::Any> const &arguments)
|
||||||
|
{
|
||||||
|
rtl::Reference<OwnSubFilterService> x(new OwnSubFilterService(arguments));
|
||||||
|
x->acquire();
|
||||||
|
return static_cast<cppu::OWeakObject *>(x.get());
|
||||||
|
}
|
||||||
|
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||||
|
@@ -1,81 +0,0 @@
|
|||||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
||||||
/*
|
|
||||||
* This file is part of the LibreOffice project.
|
|
||||||
*
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
*
|
|
||||||
* This file incorporates work covered by the following license notice:
|
|
||||||
*
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
||||||
* contributor license agreements. See the NOTICE file distributed
|
|
||||||
* with this work for additional information regarding copyright
|
|
||||||
* ownership. The ASF licenses this file to you under the Apache
|
|
||||||
* License, Version 2.0 (the "License"); you may not use this file
|
|
||||||
* except in compliance with the License. You may obtain a copy of
|
|
||||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef INCLUDED_SFX2_SOURCE_INC_OWNSUBFILTERSERVICE_HXX
|
|
||||||
#define INCLUDED_SFX2_SOURCE_INC_OWNSUBFILTERSERVICE_HXX
|
|
||||||
|
|
||||||
#include <com/sun/star/document/XFilter.hpp>
|
|
||||||
#include <com/sun/star/lang/XInitialization.hpp>
|
|
||||||
#include <com/sun/star/lang/XServiceInfo.hpp>
|
|
||||||
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
|
|
||||||
#include <com/sun/star/frame/XModel.hpp>
|
|
||||||
#include <com/sun/star/io/XStream.hpp>
|
|
||||||
#include <cppuhelper/implbase3.hxx>
|
|
||||||
|
|
||||||
class SfxObjectShell;
|
|
||||||
|
|
||||||
namespace sfx2 {
|
|
||||||
|
|
||||||
class OwnSubFilterService : public cppu::WeakImplHelper3 < ::com::sun::star::document::XFilter
|
|
||||||
,::com::sun::star::lang::XInitialization
|
|
||||||
,::com::sun::star::lang::XServiceInfo >
|
|
||||||
{
|
|
||||||
::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory;
|
|
||||||
::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > m_xModel;
|
|
||||||
::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xStream;
|
|
||||||
SfxObjectShell* m_pObjectShell;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
OwnSubFilterService(const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > &xNewFactory);
|
|
||||||
virtual ~OwnSubFilterService();
|
|
||||||
|
|
||||||
static ::com::sun::star::uno::Sequence< OUString > SAL_CALL
|
|
||||||
impl_getStaticSupportedServiceNames();
|
|
||||||
|
|
||||||
static OUString SAL_CALL impl_getStaticImplementationName();
|
|
||||||
|
|
||||||
static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
|
|
||||||
impl_staticCreateSelfInstance(
|
|
||||||
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
|
|
||||||
|
|
||||||
static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > SAL_CALL
|
|
||||||
impl_createFactory(
|
|
||||||
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
|
|
||||||
|
|
||||||
|
|
||||||
// XFilter
|
|
||||||
virtual ::sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) throw (::com::sun::star::uno::RuntimeException);
|
|
||||||
virtual void SAL_CALL cancel() throw (::com::sun::star::uno::RuntimeException);
|
|
||||||
|
|
||||||
// XInitialization
|
|
||||||
virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
|
|
||||||
|
|
||||||
// XServiceInfo
|
|
||||||
virtual OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
|
|
||||||
virtual ::sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
|
|
||||||
virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace sfx2
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@@ -32,7 +32,8 @@
|
|||||||
<implementation name="com.sun.star.comp.desktop.QuickstartWrapper">
|
<implementation name="com.sun.star.comp.desktop.QuickstartWrapper">
|
||||||
<service name="com.sun.star.office.Quickstart"/>
|
<service name="com.sun.star.office.Quickstart"/>
|
||||||
</implementation>
|
</implementation>
|
||||||
<implementation name="com.sun.star.comp.document.OwnSubFilter">
|
<implementation name="com.sun.star.comp.document.OwnSubFilter"
|
||||||
|
constructor="com_sun_star_comp_document_OwnSubFilter_get_implementation">
|
||||||
<service name="com.sun.star.comp.document.OwnSubFilter"/>
|
<service name="com.sun.star.comp.document.OwnSubFilter"/>
|
||||||
<service name="com.sun.star.document.OwnSubFilter"/>
|
<service name="com.sun.star.document.OwnSubFilter"/>
|
||||||
</implementation>
|
</implementation>
|
||||||
|
Reference in New Issue
Block a user