From b4b0b400071a0fd12587334e3b9d615f35be671b Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 8 Mar 2013 14:06:05 +0200 Subject: fdo#46808, cleanup some usage of getProcessServiceFactory() Change-Id: I2ab4c7c0a19bd436c84e62bfc6aeda1fea079a44 --- svx/source/svdraw/sdrpagewindow.cxx | 29 ++++---- svx/source/svdraw/svdoashp.cxx | 6 +- svx/source/svdraw/svdouno.cxx | 8 +- svx/source/xml/xmlexport.cxx | 42 ++++------- sw/source/core/docnode/swthreadjoiner.cxx | 8 +- sw/source/core/swg/SwXMLTextBlocks1.cxx | 120 +++++++++++++----------------- sw/source/filter/ww8/ww8par.cxx | 1 - sw/source/filter/xml/wrtxml.cxx | 28 +++---- sw/source/filter/xml/wrtxml.hxx | 4 +- 9 files changed, 103 insertions(+), 143 deletions(-) diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx index 2c55ea66cfe2..f89fdfad2fae 100644 --- a/svx/source/svdraw/sdrpagewindow.cxx +++ b/svx/source/svdraw/sdrpagewindow.cxx @@ -78,22 +78,19 @@ using namespace ::com::sun::star; { // Printer and VirtualDevice, or rather: no OutDev uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); - if( xFactory.is() ) - { - const_cast< SdrPageWindow* >( this )->mxControlContainer = uno::Reference< awt::XControlContainer >(xFactory->createInstance(rtl::OUString("com.sun.star.awt.UnoControlContainer")), uno::UNO_QUERY); - uno::Reference< awt::XControlModel > xModel(xFactory->createInstance(rtl::OUString("com.sun.star.awt.UnoControlContainerModel")), uno::UNO_QUERY); - uno::Reference< awt::XControl > xControl(mxControlContainer, uno::UNO_QUERY); - if (xControl.is()) - xControl->setModel(xModel); - - OutputDevice& rOutDev = rPaintWindow.GetOutputDevice(); - Point aPosPix = rOutDev.GetMapMode().GetOrigin(); - Size aSizePix = rOutDev.GetOutputSizePixel(); - - uno::Reference< awt::XWindow > xContComp(mxControlContainer, uno::UNO_QUERY); - if( xContComp.is() ) - xContComp->setPosSize(aPosPix.X(), aPosPix.Y(), aSizePix.Width(), aSizePix.Height(), awt::PosSize::POSSIZE); - } + const_cast< SdrPageWindow* >( this )->mxControlContainer = uno::Reference< awt::XControlContainer >(xFactory->createInstance(rtl::OUString("com.sun.star.awt.UnoControlContainer")), uno::UNO_QUERY); + uno::Reference< awt::XControlModel > xModel(xFactory->createInstance(rtl::OUString("com.sun.star.awt.UnoControlContainerModel")), uno::UNO_QUERY); + uno::Reference< awt::XControl > xControl(mxControlContainer, uno::UNO_QUERY); + if (xControl.is()) + xControl->setModel(xModel); + + OutputDevice& rOutDev = rPaintWindow.GetOutputDevice(); + Point aPosPix = rOutDev.GetMapMode().GetOrigin(); + Size aSizePix = rOutDev.GetOutputSizePixel(); + + uno::Reference< awt::XWindow > xContComp(mxControlContainer, uno::UNO_QUERY); + if( xContComp.is() ) + xContComp->setPosSize(aPosPix.X(), aPosPix.Y(), aSizePix.Width(), aSizePix.Height(), awt::PosSize::POSSIZE); } FmFormView* pViewAsFormView = dynamic_cast< FmFormView* >( &rView ); diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx index 1bba0f7e9a57..170c4e27289f 100644 --- a/svx/source/svdraw/svdoashp.cxx +++ b/svx/source/svdraw/svdoashp.cxx @@ -415,19 +415,19 @@ Reference< XCustomShapeEngine > SdrObjCustomShape::GetCustomShapeEngine() const if ( !aEngine.Len() ) aEngine = String( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.drawing.EnhancedCustomShapeEngine" ) ); - Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); + Reference< XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); Reference< XShape > aXShape = GetXShapeForSdrObject(const_cast(this)); if ( aXShape.is() ) { - if ( aEngine.Len() && xFactory.is() ) + if ( aEngine.Len() ) { Sequence< Any > aArgument( 1 ); Sequence< PropertyValue > aPropValues( 1 ); aPropValues[ 0 ].Name = rtl::OUString("CustomShape"); aPropValues[ 0 ].Value <<= aXShape; aArgument[ 0 ] <<= aPropValues; - Reference< XInterface > xInterface( xFactory->createInstanceWithArguments( aEngine, aArgument ) ); + Reference< XInterface > xInterface( xContext->getServiceManager()->createInstanceWithArgumentsAndContext( aEngine, aArgument, xContext ) ); if ( xInterface.is() ) mxCustomShapeEngine = Reference< XCustomShapeEngine >( xInterface, UNO_QUERY ); } diff --git a/svx/source/svdraw/svdouno.cxx b/svx/source/svdraw/svdouno.cxx index daa6c07aab37..f9f2ca7b689b 100644 --- a/svx/source/svdraw/svdouno.cxx +++ b/svx/source/svdraw/svdouno.cxx @@ -485,11 +485,11 @@ void SdrUnoObj::CreateUnoControlModel(const String& rModelName) aUnoControlModelTypeName = rModelName; uno::Reference< awt::XControlModel > xModel; - uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); - if (aUnoControlModelTypeName.Len() && xFactory.is() ) + uno::Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); + if (aUnoControlModelTypeName.Len() ) { - xModel = uno::Reference< awt::XControlModel >(xFactory->createInstance( - aUnoControlModelTypeName), uno::UNO_QUERY); + xModel = uno::Reference< awt::XControlModel >(xContext->getServiceManager()->createInstanceWithContext( + aUnoControlModelTypeName, xContext), uno::UNO_QUERY); if (xModel.is()) SetChanged(); diff --git a/svx/source/xml/xmlexport.cxx b/svx/source/xml/xmlexport.cxx index aa1f57acbe82..1da4ad59aa42 100644 --- a/svx/source/xml/xmlexport.cxx +++ b/svx/source/xml/xmlexport.cxx @@ -68,13 +68,7 @@ sal_Bool SvxDrawingLayerExport( SdrModel* pModel, const uno::ReferencesetUnoModel( Reference< XInterface >::query( xSourceDoc ) ); } - uno::Reference< lang::XMultiServiceFactory> xServiceFactory( ::comphelper::getProcessServiceFactory() ); uno::Reference< uno::XComponentContext> xContext( ::comphelper::getProcessComponentContext() ); - if( !xServiceFactory.is() ) - { - OSL_FAIL( "got no service manager" ); - bDocRet = sal_False; - } if( bDocRet ) { @@ -104,7 +98,7 @@ sal_Bool SvxDrawingLayerExport( SdrModel* pModel, const uno::Reference xFilter( xServiceFactory->createInstanceWithArguments( OUString::createFromAscii( pExportService ), aArgs ), uno::UNO_QUERY ); + uno::Reference< document::XFilter > xFilter( xContext->getServiceManager()->createInstanceWithArgumentsAndContext( OUString::createFromAscii( pExportService ), aArgs, xContext ), uno::UNO_QUERY ); if( !xFilter.is() ) { OSL_FAIL( "com.sun.star.comp.Draw.XMLExporter service missing" ); @@ -177,31 +171,23 @@ sal_Bool SvxDrawingLayerImport( SdrModel* pModel, const uno::Reference xServiceFactory = comphelper::getProcessServiceFactory(); Reference< uno::XComponentContext > xContext = comphelper::getProcessComponentContext(); - DBG_ASSERT( xServiceFactory.is(), "XMLReader::Read: got no service manager" ); - if( !xServiceFactory.is() ) - nRet = 1; + if ( xTargetModel.is() ) + xTargetModel->lockControllers(); - if( 0 == nRet ) - { - if ( xTargetModel.is() ) - xTargetModel->lockControllers(); - - // ------------------------------------- + // ------------------------------------- - pGraphicHelper = SvXMLGraphicHelper::Create( GRAPHICHELPER_MODE_READ ); - xGraphicResolver = pGraphicHelper; + pGraphicHelper = SvXMLGraphicHelper::Create( GRAPHICHELPER_MODE_READ ); + xGraphicResolver = pGraphicHelper; - ::comphelper::IEmbeddedHelper *pPersist = pModel->GetPersist(); - if( pPersist ) - { - pObjectHelper = SvXMLEmbeddedObjectHelper::Create( - *pPersist, - EMBEDDEDOBJECTHELPER_MODE_READ ); - xObjectResolver = pObjectHelper; - } + ::comphelper::IEmbeddedHelper *pPersist = pModel->GetPersist(); + if( pPersist ) + { + pObjectHelper = SvXMLEmbeddedObjectHelper::Create( + *pPersist, + EMBEDDEDOBJECTHELPER_MODE_READ ); + xObjectResolver = pObjectHelper; } // ------------------------------------- @@ -224,7 +210,7 @@ sal_Bool SvxDrawingLayerImport( SdrModel* pModel, const uno::Reference xFilter( xServiceFactory->createInstanceWithArguments( OUString::createFromAscii( pImportService ), aFilterArgs), UNO_QUERY ); + Reference< xml::sax::XDocumentHandler > xFilter( xContext->getServiceManager()->createInstanceWithArgumentsAndContext( OUString::createFromAscii( pImportService ), aFilterArgs, xContext), UNO_QUERY ); DBG_ASSERT( xFilter.is(), "Can't instantiate filter component." ); nRet = 1; diff --git a/sw/source/core/docnode/swthreadjoiner.cxx b/sw/source/core/docnode/swthreadjoiner.cxx index 0f5c74e7fdf7..f68e9cb821bf 100644 --- a/sw/source/core/docnode/swthreadjoiner.cxx +++ b/sw/source/core/docnode/swthreadjoiner.cxx @@ -18,7 +18,7 @@ */ #include #include -#include +#include #include #include #include @@ -42,11 +42,7 @@ uno::Reference< util::XJobManager >& SwThreadJoiner::GetThreadJoiner() if ( !mpThreadJoiner.is() ) { - mpThreadJoiner = - uno::Reference< util::XJobManager >( - ::comphelper::getProcessServiceFactory()->createInstance( - OUString("com.sun.star.util.JobManager") ), - uno::UNO_QUERY ); + mpThreadJoiner = util::JobManager::create( comphelper::getProcessComponentContext() ); } return mpThreadJoiner; diff --git a/sw/source/core/swg/SwXMLTextBlocks1.cxx b/sw/source/core/swg/SwXMLTextBlocks1.cxx index a793fe732e2f..bcb26b4a01f5 100644 --- a/sw/source/core/swg/SwXMLTextBlocks1.cxx +++ b/sw/source/core/swg/SwXMLTextBlocks1.cxx @@ -193,73 +193,65 @@ sal_uLong SwXMLTextBlocks::GetMacroTable( sal_uInt16 nIdx, aParserInput.aInputStream = xInputStream; // get service factory - uno::Reference< lang::XMultiServiceFactory > xServiceFactory = - comphelper::getProcessServiceFactory(); uno::Reference< uno::XComponentContext > xContext = comphelper::getProcessComponentContext(); - if ( xServiceFactory.is() ) + + // get parser + uno::Reference< xml::sax::XParser > xParser = xml::sax::Parser::create( xContext ); + + // create descriptor and reference to it. Either + // both or neither must be kept because of the + // reference counting! + SvMacroTableEventDescriptor* pDescriptor = + new SvMacroTableEventDescriptor(aAutotextEvents); + uno::Reference xReplace = pDescriptor; + Sequence aFilterArguments( 1 ); + aFilterArguments[0] <<= xReplace; + + // get filter + OUString sFilterComponent = bOasis + ? OUString("com.sun.star.comp.Writer.XMLOasisAutotextEventsImporter") + : OUString("com.sun.star.comp.Writer.XMLAutotextEventsImporter"); + uno::Reference< xml::sax::XDocumentHandler > xFilter( + xContext->getServiceManager()->createInstanceWithArgumentsAndContext( + sFilterComponent, aFilterArguments, xContext), + UNO_QUERY ); + OSL_ENSURE( xFilter.is(), + "can't instantiate atevents filter"); + if ( xFilter.is() ) { + // connect parser and filter + xParser->setDocumentHandler( xFilter ); + + // connect model and filter + uno::Reference xImporter( xFilter, + UNO_QUERY ); + + // we don't need a model + // xImporter->setTargetDocument( xModelComponent ); - // get parser - uno::Reference< xml::sax::XParser > xParser = xml::sax::Parser::create( xContext ); - - // create descriptor and reference to it. Either - // both or neither must be kept because of the - // reference counting! - SvMacroTableEventDescriptor* pDescriptor = - new SvMacroTableEventDescriptor(aAutotextEvents); - uno::Reference xReplace = pDescriptor; - Sequence aFilterArguments( 1 ); - aFilterArguments[0] <<= xReplace; - - // get filter - OUString sFilterComponent = bOasis - ? OUString("com.sun.star.comp.Writer.XMLOasisAutotextEventsImporter") - : OUString("com.sun.star.comp.Writer.XMLAutotextEventsImporter"); - uno::Reference< xml::sax::XDocumentHandler > xFilter( - xServiceFactory->createInstanceWithArguments( - sFilterComponent, aFilterArguments), - UNO_QUERY ); - OSL_ENSURE( xFilter.is(), - "can't instantiate atevents filter"); - if ( xFilter.is() ) + // parse the stream + try { - // connect parser and filter - xParser->setDocumentHandler( xFilter ); - - // connect model and filter - uno::Reference xImporter( xFilter, - UNO_QUERY ); - - // we don't need a model - // xImporter->setTargetDocument( xModelComponent ); - - // parse the stream - try - { - xParser->parseStream( aParserInput ); - } - catch( xml::sax::SAXParseException& ) - { - // workaround for #83452#: SetSize doesn't work - // nRet = ERR_SWG_READ_ERROR; - } - catch( xml::sax::SAXException& ) - { - nRet = ERR_SWG_READ_ERROR; - } - catch( io::IOException& ) - { - nRet = ERR_SWG_READ_ERROR; - } - - // and finally, copy macro into table - if (0 == nRet) - pDescriptor->copyMacrosIntoTable(rMacroTbl); + xParser->parseStream( aParserInput ); } - else + catch( xml::sax::SAXParseException& ) + { + // workaround for #83452#: SetSize doesn't work + // nRet = ERR_SWG_READ_ERROR; + } + catch( xml::sax::SAXException& ) + { nRet = ERR_SWG_READ_ERROR; + } + catch( io::IOException& ) + { + nRet = ERR_SWG_READ_ERROR; + } + // and finally, copy macro into table + if (0 == nRet) + pDescriptor->copyMacrosIntoTable(rMacroTbl); } else nRet = ERR_SWG_READ_ERROR; @@ -529,14 +521,8 @@ sal_uLong SwXMLTextBlocks::SetMacroTable( // start XML autotext event export sal_uLong nRes = 0; - uno::Reference< lang::XMultiServiceFactory > xServiceFactory = - comphelper::getProcessServiceFactory(); uno::Reference< uno::XComponentContext > xContext = comphelper::getProcessComponentContext(); - OSL_ENSURE( xServiceFactory.is(), - "XML autotext event write:: got no service manager" ); - if( !xServiceFactory.is() ) - return ERR_SWG_WRITE_ERROR; // Get model uno::Reference< lang::XComponent > xModelComp( @@ -595,8 +581,8 @@ sal_uLong SwXMLTextBlocks::SetMacroTable( ? OUString("com.sun.star.comp.Writer.XMLOasisAutotextEventsExporter") : OUString("com.sun.star.comp.Writer.XMLAutotextEventsExporter"); uno::Reference< document::XExporter > xExporter( - xServiceFactory->createInstanceWithArguments( - sFilterComponent, aParams), UNO_QUERY); + xContext->getServiceManager()->createInstanceWithArgumentsAndContext( + sFilterComponent, aParams, xContext), UNO_QUERY); OSL_ENSURE( xExporter.is(), "can't instantiate export filter component" ); if( xExporter.is() ) diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 45aeba057d54..840f2f969671 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -132,7 +132,6 @@ using namespace nsHdFtFlags; #include using ::comphelper::MediaDescriptor; -using ::comphelper::getProcessServiceFactory; class BasicProjImportHelper { diff --git a/sw/source/filter/xml/wrtxml.cxx b/sw/source/filter/xml/wrtxml.cxx index 6cf84811940d..0d2abe0cee99 100644 --- a/sw/source/filter/xml/wrtxml.cxx +++ b/sw/source/filter/xml/wrtxml.cxx @@ -78,12 +78,8 @@ sal_uInt32 SwXMLWriter::_Write( const uno::Reference < task::XStatusIndicator >& const rtl::OUString& aDocHierarchicalName ) { // Get service factory - uno::Reference< lang::XMultiServiceFactory > xServiceFactory = - comphelper::getProcessServiceFactory(); - OSL_ENSURE( xServiceFactory.is(), - "SwXMLWriter::Write: got no service manager" ); - if( !xServiceFactory.is() ) - return ERR_SWG_WRITE_ERROR; + uno::Reference< uno::XComponentContext > xContext = + comphelper::getProcessComponentContext(); // Get data sink ... uno::Reference< io::XOutputStream > xOut; @@ -345,7 +341,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg, if( !bOrganizerMode && !bBlock && bStoreMeta ) { if( !WriteThroughComponent( - xModelComp, "meta.xml", xServiceFactory, + xModelComp, "meta.xml", xContext, (bOASIS ? "com.sun.star.comp.Writer.XMLOasisMetaExporter" : "com.sun.star.comp.Writer.XMLMetaExporter"), aEmptyArgs, aProps ) ) @@ -361,7 +357,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg, if( !bBlock ) { if( !WriteThroughComponent( - xModelComp, "settings.xml", xServiceFactory, + xModelComp, "settings.xml", xContext, (bOASIS ? "com.sun.star.comp.Writer.XMLOasisSettingsExporter" : "com.sun.star.comp.Writer.XMLSettingsExporter"), aEmptyArgs, aProps ) ) @@ -377,7 +373,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg, } if( !WriteThroughComponent( - xModelComp, "styles.xml", xServiceFactory, + xModelComp, "styles.xml", xContext, (bOASIS ? "com.sun.star.comp.Writer.XMLOasisStylesExporter" : "com.sun.star.comp.Writer.XMLStylesExporter"), aFilterArgs, aProps ) ) @@ -391,7 +387,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg, if( !bOrganizerMode && !bErr ) { if( !WriteThroughComponent( - xModelComp, "content.xml", xServiceFactory, + xModelComp, "content.xml", xContext, (bOASIS ? "com.sun.star.comp.Writer.XMLOasisContentExporter" : "com.sun.star.comp.Writer.XMLContentExporter"), aFilterArgs, aProps ) ) @@ -501,7 +497,7 @@ sal_uLong SwXMLWriter::Write( SwPaM& rPaM, SfxMedium& rMed, bool SwXMLWriter::WriteThroughComponent( const uno::Reference & xComponent, const sal_Char* pStreamName, - const uno::Reference & rFactory, + const uno::Reference & rxContext, const sal_Char* pServiceName, const Sequence & rArguments, const Sequence & rMediaDesc ) @@ -555,7 +551,7 @@ bool SwXMLWriter::WriteThroughComponent( // write the stuff bRet = WriteThroughComponent( - xOutputStream, xComponent, rFactory, + xOutputStream, xComponent, rxContext, pServiceName, rArguments, rMediaDesc ); } catch ( uno::Exception& ) @@ -569,7 +565,7 @@ bool SwXMLWriter::WriteThroughComponent( bool SwXMLWriter::WriteThroughComponent( const uno::Reference & xOutputStream, const uno::Reference & xComponent, - const uno::Reference & rFactory, + const uno::Reference & rxContext, const sal_Char* pServiceName, const Sequence & rArguments, const Sequence & rMediaDesc ) @@ -582,7 +578,7 @@ bool SwXMLWriter::WriteThroughComponent( "SwXMLWriter::WriteThroughComponent" ); // get component - uno::Reference< xml::sax::XWriter > xSaxWriter = xml::sax::Writer::create(comphelper::getComponentContext(rFactory)); + uno::Reference< xml::sax::XWriter > xSaxWriter = xml::sax::Writer::create(rxContext); RTL_LOGFILE_CONTEXT_TRACE( aFilterLog, "SAX-Writer created" ); // connect XML writer to output stream @@ -597,8 +593,8 @@ bool SwXMLWriter::WriteThroughComponent( // get filter component uno::Reference< document::XExporter > xExporter( - rFactory->createInstanceWithArguments( - OUString::createFromAscii(pServiceName), aArgs), UNO_QUERY); + rxContext->getServiceManager()->createInstanceWithArgumentsAndContext( + OUString::createFromAscii(pServiceName), aArgs, rxContext), UNO_QUERY); OSL_ENSURE( xExporter.is(), "can't instantiate export filter component" ); if( !xExporter.is() ) diff --git a/sw/source/filter/xml/wrtxml.hxx b/sw/source/filter/xml/wrtxml.hxx index 4ee80a018b1e..debc8d98d27e 100644 --- a/sw/source/filter/xml/wrtxml.hxx +++ b/sw/source/filter/xml/wrtxml.hxx @@ -66,7 +66,7 @@ private: const sal_Char* pStreamName, /// the stream name /// service factory for pServiceName const ::com::sun::star::uno::Reference< - ::com::sun::star::lang::XMultiServiceFactory> & rFactory, + ::com::sun::star::uno::XComponentContext> & rFactory, const sal_Char* pServiceName, /// service name of the component /// the argument (XInitialization) const ::com::sun::star::uno::Sequence< @@ -83,7 +83,7 @@ private: const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent> & xComponent, const ::com::sun::star::uno::Reference< - ::com::sun::star::lang::XMultiServiceFactory> & rFactory, + ::com::sun::star::uno::XComponentContext> & rFactory, const sal_Char* pServiceName, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any> & rArguments, -- cgit v1.2.3