diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-30 13:21:53 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2014-02-05 19:07:20 +0100 |
commit | fe537786a42abea57551395f73328db48bebd086 (patch) | |
tree | fb718be5fcd9b7383bb3e489b0d929aaf9d86faf | |
parent | 1d77f5ce5e13720d46b41fd3ee4c7fe1d92a9839 (diff) |
uui: Ctor feature for com.sun.star.comp.uui.UUIInteractionHandler.
Change-Id: I94858cef5402e88ddcc3e0e9e4383f7be8443e77
-rw-r--r-- | uui/source/interactionhandler.cxx | 44 | ||||
-rw-r--r-- | uui/source/interactionhandler.hxx | 15 | ||||
-rw-r--r-- | uui/source/services.cxx | 20 | ||||
-rw-r--r-- | uui/util/uui.component | 3 |
4 files changed, 17 insertions, 65 deletions
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 <cppuhelper/supportsservice.hxx> #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<css::uno::Any> 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 <sal/types.h> #include <uno/environment.h> -#include "interactionhandler.hxx" #include "requeststringresolver.hxx" #include "passwordcontainer.hxx" @@ -48,27 +47,10 @@ extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL uui_component_getFactory(sal_Cha 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"> <service name="com.sun.star.task.PasswordContainerInteractionHandler"/> </implementation> - <implementation name="com.sun.star.comp.uui.UUIInteractionHandler"> + <implementation name="com.sun.star.comp.uui.UUIInteractionHandler" + constructor="com_sun_star_comp_uui_UUIInteractionHandler_get_implementation"> <service name="com.sun.star.configuration.backend.InteractionHandler"/> <service name="com.sun.star.task.InteractionHandler"/> <service name="com.sun.star.uui.InteractionHandler"/> |