summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2014-01-30 13:21:53 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-02-05 19:07:20 +0100
commitfe537786a42abea57551395f73328db48bebd086 (patch)
treefb718be5fcd9b7383bb3e489b0d929aaf9d86faf
parent1d77f5ce5e13720d46b41fd3ee4c7fe1d92a9839 (diff)
uui: Ctor feature for com.sun.star.comp.uui.UUIInteractionHandler.
Change-Id: I94858cef5402e88ddcc3e0e9e4383f7be8443e77
-rw-r--r--uui/source/interactionhandler.cxx44
-rw-r--r--uui/source/interactionhandler.hxx15
-rw-r--r--uui/source/services.cxx20
-rw-r--r--uui/util/uui.component3
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"/>