From fe537786a42abea57551395f73328db48bebd086 Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Thu, 30 Jan 2014 13:21:53 +0100 Subject: uui: Ctor feature for com.sun.star.comp.uui.UUIInteractionHandler. Change-Id: I94858cef5402e88ddcc3e0e9e4383f7be8443e77 --- uui/source/interactionhandler.cxx | 44 ++++++++++++--------------------------- uui/source/interactionhandler.hxx | 15 +------------ uui/source/services.cxx | 20 +----------------- uui/util/uui.component | 3 ++- 4 files changed, 17 insertions(+), 65 deletions(-) (limited to 'uui') diff --git a/uui/source/interactionhandler.cxx b/uui/source/interactionhandler.cxx index 207b9688b678..dd71174e408a 100644 --- a/uui/source/interactionhandler.cxx +++ b/uui/source/interactionhandler.cxx @@ -20,7 +20,6 @@ #include "iahndl.hxx" #include "interactionhandler.hxx" #include "comphelper/namedvaluecollection.hxx" -#include "comphelper/processfactory.hxx" #include #include "com/sun/star/awt/XWindow.hpp" @@ -42,7 +41,7 @@ UUIInteractionHandler::~UUIInteractionHandler() OUString SAL_CALL UUIInteractionHandler::getImplementationName() throw (uno::RuntimeException) { - return OUString::createFromAscii(m_aImplementationName); + return OUString("com.sun.star.comp.uui.UUIInteractionHandler"); } sal_Bool SAL_CALL @@ -56,7 +55,13 @@ uno::Sequence< OUString > SAL_CALL UUIInteractionHandler::getSupportedServiceNames() throw (uno::RuntimeException) { - return getSupportedServiceNames_static(); + uno::Sequence< OUString > aNames(3); + aNames[0] = "com.sun.star.task.InteractionHandler"; + // added to indicate support for configuration.backend.MergeRecoveryRequest + aNames[1] = "com.sun.star.configuration.backend.InteractionHandler"; + aNames[2] = "com.sun.star.uui.InteractionHandler"; + // for backwards compatibility + return aNames; } void SAL_CALL @@ -119,35 +124,12 @@ UUIInteractionHandler::handle( } } -char const UUIInteractionHandler::m_aImplementationName[] - = "com.sun.star.comp.uui.UUIInteractionHandler"; - -uno::Sequence< OUString > -UUIInteractionHandler::getSupportedServiceNames_static() +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL +com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( + css::uno::XComponentContext *context, + css::uno::Sequence const &) { - uno::Sequence< OUString > aNames(3); - aNames[0] = "com.sun.star.task.InteractionHandler"; - // added to indicate support for configuration.backend.MergeRecoveryRequest - aNames[1] = "com.sun.star.configuration.backend.InteractionHandler"; - aNames[2] = "com.sun.star.uui.InteractionHandler"; - // for backwards compatibility - return aNames; -} - -uno::Reference< uno::XInterface > SAL_CALL -UUIInteractionHandler::createInstance( - uno::Reference< lang::XMultiServiceFactory > const & - rServiceFactory) - SAL_THROW((uno::Exception)) -{ - try - { - return *new UUIInteractionHandler(comphelper::getComponentContext(rServiceFactory)); - } - catch (std::bad_alloc const &) - { - throw uno::RuntimeException("out of memory", 0); - } + return cppu::acquire(new UUIInteractionHandler(context)); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/uui/source/interactionhandler.hxx b/uui/source/interactionhandler.hxx index a8d759554803..d5ea999bbe98 100644 --- a/uui/source/interactionhandler.hxx +++ b/uui/source/interactionhandler.hxx @@ -32,26 +32,13 @@ class UUIInteractionHandler: com::sun::star::lang::XInitialization, com::sun::star::task::XInteractionHandler2 > { -public: - static char const m_aImplementationName[]; - - static com::sun::star::uno::Sequence< OUString > - getSupportedServiceNames_static(); - - static com::sun::star::uno::Reference< com::sun::star::uno::XInterface > - SAL_CALL - createInstance( - com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory > const & - rServiceFactory) - SAL_THROW((com::sun::star::uno::Exception)); - private: UUIInteractionHelper * m_pImpl; UUIInteractionHandler(UUIInteractionHandler &); // not implemented void operator =(UUIInteractionHandler); // not implemented +public: UUIInteractionHandler(com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > const & rxContext) diff --git a/uui/source/services.cxx b/uui/source/services.cxx index f2d7c76aaa2e..642f86379808 100644 --- a/uui/source/services.cxx +++ b/uui/source/services.cxx @@ -24,7 +24,6 @@ #include #include -#include "interactionhandler.hxx" #include "requeststringresolver.hxx" #include "passwordcontainer.hxx" @@ -47,28 +46,11 @@ extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL uui_component_getFactory(sal_Cha reinterpret_cast< XMultiServiceFactory * >( pServiceManager ) ); Reference< XSingleServiceFactory > xFactory; - ////////////////////////////////////////////////////////////////////// - // UUI Interaction Handler. - ////////////////////////////////////////////////////////////////////// - - if ( rtl_str_compare(pImplName, - UUIInteractionHandler::m_aImplementationName) - == 0) - { - xFactory = - cppu::createSingleFactory( - static_cast< XMultiServiceFactory * >(pServiceManager), - OUString::createFromAscii( - UUIInteractionHandler::m_aImplementationName), - &UUIInteractionHandler::createInstance, - UUIInteractionHandler::getSupportedServiceNames_static()); - } - ////////////////////////////////////////////////////////////////////// // UUI Interaction Request String Resolver. ////////////////////////////////////////////////////////////////////// - else if ( rtl_str_compare(pImplName, + if ( rtl_str_compare(pImplName, UUIInteractionRequestStringResolver::m_aImplementationName) == 0) { diff --git a/uui/util/uui.component b/uui/util/uui.component index 569ac4a04d4a..89898799f18d 100644 --- a/uui/util/uui.component +++ b/uui/util/uui.component @@ -23,7 +23,8 @@ name="com.sun.star.comp.uui.PasswordContainerInteractionHandler"> - + -- cgit