From 402eaced7554aaeea75c10015857ea197191ba34 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Fri, 26 Oct 2012 11:16:50 +0200 Subject: Related fdo#46808: Fix UUIInteractionHandler::initialize argument handling This was a regression introduced with c25cb8a641723ab098980bb842caf75c0dc9b059 "fdo#46808, Adapt task::InteractionHandler UNO service to new style." Change-Id: I52e36c4aabbf4b2b4552ed0e8ea164db15071980 --- uui/source/interactionhandler.cxx | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/uui/source/interactionhandler.cxx b/uui/source/interactionhandler.cxx index 821b03e632a8..71f11eb33533 100644 --- a/uui/source/interactionhandler.cxx +++ b/uui/source/interactionhandler.cxx @@ -70,18 +70,26 @@ UUIInteractionHandler::initialize( { delete m_pImpl; + // The old-style InteractionHandler service supported a sequence of + // PropertyValue, while the new-style service now uses constructors to pass + // in Parent and Context values; for backwards compatibility, keep support + // for a PropertyValue sequence, too: uno::Reference< awt::XWindow > xWindow; rtl::OUString aContext; - ::comphelper::NamedValueCollection aProperties( rArguments ); - if ( aProperties.has( "Parent" ) ) + if (!((rArguments.getLength() == 1 && (rArguments[0] >>= xWindow)) || + (rArguments.getLength() == 2 && (rArguments[0] >>= xWindow) && + (rArguments[1] >>= aContext)))) { - OSL_VERIFY( aProperties.get( "Parent" ) >>= xWindow ); + ::comphelper::NamedValueCollection aProperties( rArguments ); + if ( aProperties.has( "Parent" ) ) + { + OSL_VERIFY( aProperties.get( "Parent" ) >>= xWindow ); + } + if ( aProperties.has( "Context" ) ) + { + OSL_VERIFY( aProperties.get( "Context" ) >>= aContext ); + } } - if ( aProperties.has( "Context" ) ) - { - OSL_VERIFY( aProperties.get( "Context" ) >>= aContext ); - } - m_pImpl = new UUIInteractionHelper(m_xServiceFactory, xWindow, aContext); } -- cgit v1.2.3