From 45f20a893a457a40604207382611afd2f8e4b635 Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Mon, 23 Apr 2018 12:43:54 +0900 Subject: [API CHANGE] deprecate XGraphicObjectResolver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit XGraphicObjectResolver was used to get the GraphicObject URL from an storage (package) URL. This isn't possible anymore in LO 6.1 since creating GraphicObject from uniqueID was removed for its lifecycle issues. XGraphicObjectResolver is now deprecated and when the "resolveGraphicObjectURL" is called, it throws a RuntimeExeption. In places where XGraphicObjectResolver was used, we now use the XGraphicStorageHandler as the alternative. Both share a common implementation so previously we could cast one to the other at any time. Now only XGraphicStorageHandler is used. GraphicObjectResolver was removed and replaced by the alternative GraphicStorageHandler for instance creation - where needed. Change-Id: I5d3f759c6f95b7dbe2d93688d99c8aa4899ffa84 Reviewed-on: https://gerrit.libreoffice.org/53279 Reviewed-by: Tomaž Vajngerl Tested-by: Tomaž Vajngerl --- .../chartapiwrapper/ChartDocumentWrapper.cxx | 15 ++++---- chart2/source/model/filter/XMLFilter.cxx | 45 +++++++++++----------- chart2/source/model/inc/XMLFilter.hxx | 4 +- 3 files changed, 33 insertions(+), 31 deletions(-) (limited to 'chart2') diff --git a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx index 50c6c213da43..94d74b0eefe3 100644 --- a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx @@ -101,15 +101,15 @@ enum eServiceType SERVICE_NAME_MARKER_TABLE, SERVICE_NAME_NAMESPACE_MAP, - SERVICE_NAME_EXPORT_GRAPHIC_RESOLVER, - SERVICE_NAME_IMPORT_GRAPHIC_RESOLVER + SERVICE_NAME_EXPORT_GRAPHIC_STORAGE_RESOLVER, + SERVICE_NAME_IMPORT_GRAPHIC_STORAGE_RESOLVER }; typedef std::map< OUString, enum eServiceType > tServiceNameMap; tServiceNameMap & lcl_getStaticServiceNameMap() { - static tServiceNameMap aServiceNameMap{ + static tServiceNameMap aServiceNameMap { {"com.sun.star.chart.AreaDiagram", SERVICE_NAME_AREA_DIAGRAM}, {"com.sun.star.chart.BarDiagram", SERVICE_NAME_BAR_DIAGRAM}, {"com.sun.star.chart.DonutDiagram", SERVICE_NAME_DONUT_DIAGRAM}, @@ -130,8 +130,9 @@ tServiceNameMap & lcl_getStaticServiceNameMap() {"com.sun.star.drawing.MarkerTable", SERVICE_NAME_MARKER_TABLE}, {"com.sun.star.xml.NamespaceMap", SERVICE_NAME_NAMESPACE_MAP}, - {"com.sun.star.document.ExportGraphicObjectResolver", SERVICE_NAME_EXPORT_GRAPHIC_RESOLVER}, - {"com.sun.star.document.ImportGraphicObjectResolver", SERVICE_NAME_IMPORT_GRAPHIC_RESOLVER}}; + {"com.sun.star.document.ExportGraphicStoreageHandler", SERVICE_NAME_EXPORT_GRAPHIC_STORAGE_RESOLVER}, + {"com.sun.star.document.ImportGraphicStoreageHandler", SERVICE_NAME_IMPORT_GRAPHIC_STORAGE_RESOLVER} + }; return aServiceNameMap; } @@ -1192,9 +1193,9 @@ uno::Reference< uno::XInterface > SAL_CALL ChartDocumentWrapper::createInstance( case SERVICE_NAME_NAMESPACE_MAP: break; - case SERVICE_NAME_EXPORT_GRAPHIC_RESOLVER: + case SERVICE_NAME_EXPORT_GRAPHIC_STORAGE_RESOLVER: break; - case SERVICE_NAME_IMPORT_GRAPHIC_RESOLVER: + case SERVICE_NAME_IMPORT_GRAPHIC_STORAGE_RESOLVER: break; } diff --git a/chart2/source/model/filter/XMLFilter.cxx b/chart2/source/model/filter/XMLFilter.cxx index b45b0fb23b5d..f9ca9cdcd40a 100644 --- a/chart2/source/model/filter/XMLFilter.cxx +++ b/chart2/source/model/filter/XMLFilter.cxx @@ -45,7 +45,8 @@ #include #include #include -#include +#include +#include #include #include @@ -298,15 +299,15 @@ ErrCode XMLFilter::impl_Import( if( ! xStorage.is()) return ERRCODE_SFX_GENERAL; - Reference< document::XGraphicObjectResolver > xGraphicObjectResolver; - uno::Reference< lang::XMultiServiceFactory > xServiceFactory( xFactory, uno::UNO_QUERY); - if( xServiceFactory.is()) + uno::Reference xGraphicStorageHandler; + uno::Reference xServiceFactory(xFactory, uno::UNO_QUERY); + if (xServiceFactory.is()) { - uno::Sequence< uno::Any > aArgs(1); + uno::Sequence aArgs(1); aArgs[0] <<= xStorage; - xGraphicObjectResolver.set( + xGraphicStorageHandler.set( xServiceFactory->createInstanceWithArguments( - "com.sun.star.comp.Svx.GraphicImportHelper", aArgs ), uno::UNO_QUERY ); + "com.sun.star.comp.Svx.GraphicImportHelper", aArgs), uno::UNO_QUERY); } // create XPropertySet with extra informatio for the filter @@ -362,7 +363,7 @@ ErrCode XMLFilter::impl_Import( nWarning = impl_ImportStream( sXML_metaStreamName, "com.sun.star.comp.Chart.XMLOasisMetaImporter", - xStorage, xSaxParser, xFactory, xGraphicObjectResolver, xImportInfo ); + xStorage, xSaxParser, xFactory, xGraphicStorageHandler, xImportInfo ); // import styles ErrCode nTmpErr = impl_ImportStream( @@ -370,7 +371,7 @@ ErrCode XMLFilter::impl_Import( bOasis ? OUString("com.sun.star.comp.Chart.XMLOasisStylesImporter") : OUString("com.sun.star.comp.Chart.XMLStylesImporter"), - xStorage, xSaxParser, xFactory, xGraphicObjectResolver, xImportInfo ); + xStorage, xSaxParser, xFactory, xGraphicStorageHandler, xImportInfo ); nWarning = nWarning != ERRCODE_NONE ? nWarning : nTmpErr; // import content @@ -379,7 +380,7 @@ ErrCode XMLFilter::impl_Import( bOasis ? OUString("com.sun.star.comp.Chart.XMLOasisContentImporter") : OUString("com.sun.star.comp.Chart.XMLContentImporter"), - xStorage, xSaxParser, xFactory, xGraphicObjectResolver, xImportInfo ); + xStorage, xSaxParser, xFactory, xGraphicStorageHandler, xImportInfo ); nWarning = nWarning != ERRCODE_NONE ? nWarning : nContentWarning; // import of "content.xml" didn't work - try old "Content.xml" stream @@ -388,7 +389,7 @@ ErrCode XMLFilter::impl_Import( nWarning = impl_ImportStream( "Content.xml", // old content stream name "com.sun.star.office.sax.importer.Chart", - xStorage, xSaxParser, xFactory, xGraphicObjectResolver, xImportInfo ); + xStorage, xSaxParser, xFactory, xGraphicStorageHandler, xImportInfo ); } } catch (const uno::Exception&) @@ -408,7 +409,7 @@ ErrCode XMLFilter::impl_ImportStream( const Reference< embed::XStorage > & xStorage, const Reference< xml::sax::XParser > & xParser, const Reference< lang::XMultiComponentFactory > & xFactory, - const Reference< document::XGraphicObjectResolver > & xGraphicObjectResolver, + const Reference< document::XGraphicStorageHandler > & xGraphicStorageHandler, uno::Reference< beans::XPropertySet > const & xImportInfo ) { ErrCode nWarning = ERRCODE_SFX_GENERAL; @@ -438,7 +439,7 @@ ErrCode XMLFilter::impl_ImportStream( if( aParserInput.aInputStream.is()) { sal_Int32 nArgs = 0; - if( xGraphicObjectResolver.is()) + if( xGraphicStorageHandler.is()) nArgs++; if( xImportInfo.is()) nArgs++; @@ -446,8 +447,8 @@ ErrCode XMLFilter::impl_ImportStream( uno::Sequence< uno::Any > aFilterCompArgs( nArgs ); nArgs = 0; - if( xGraphicObjectResolver.is()) - aFilterCompArgs[nArgs++] <<= xGraphicObjectResolver; + if( xGraphicStorageHandler.is()) + aFilterCompArgs[nArgs++] <<= xGraphicStorageHandler; if( xImportInfo.is()) aFilterCompArgs[ nArgs++ ] <<= xImportInfo; @@ -576,8 +577,8 @@ ErrCode XMLFilter::impl_Export( } } - Reference< document::XGraphicObjectResolver > xGraphicObjectResolver = document::GraphicObjectResolver::createWithStorage( - m_xContext, xStorage ); + Reference xGraphicStorageHandler; + xGraphicStorageHandler.set(document::GraphicStorageHandler::createWithStorage(m_xContext, xStorage)); // property map for export info set comphelper::PropertyMapEntry const aExportInfoMap[] = @@ -600,7 +601,7 @@ ErrCode XMLFilter::impl_Export( xInfoSet->setPropertyValue( "ExportTableNumberList", uno::Any( true )); sal_Int32 nArgs = 2; - if( xGraphicObjectResolver.is()) + if( xGraphicStorageHandler.is()) nArgs++; uno::Sequence< uno::Any > aFilterProperties( nArgs ); @@ -608,8 +609,8 @@ ErrCode XMLFilter::impl_Export( nArgs = 0; aFilterProperties[ nArgs++ ] <<= xInfoSet; aFilterProperties[ nArgs++ ] <<= xDocHandler; - if( xGraphicObjectResolver.is()) - aFilterProperties[ nArgs++ ] <<= xGraphicObjectResolver; + if( xGraphicStorageHandler.is()) + aFilterProperties[ nArgs++ ] <<= xGraphicStorageHandler; } // export meta information @@ -637,8 +638,8 @@ ErrCode XMLFilter::impl_Export( xStorage, xSaxWriter, xServiceFactory, aFilterProperties ); nWarning = nWarning != ERRCODE_NONE ? nWarning : nContentWarning; - Reference< lang::XComponent > xComp( xGraphicObjectResolver, uno::UNO_QUERY ); - if( xComp.is()) + Reference< lang::XComponent > xComp(xGraphicStorageHandler, uno::UNO_QUERY); + if (xComp.is()) xComp->dispose(); uno::Reference xTransact( xStorage ,uno::UNO_QUERY); diff --git a/chart2/source/model/inc/XMLFilter.hxx b/chart2/source/model/inc/XMLFilter.hxx index 85c033c99a7e..6b97ca858d9e 100644 --- a/chart2/source/model/inc/XMLFilter.hxx +++ b/chart2/source/model/inc/XMLFilter.hxx @@ -44,7 +44,7 @@ namespace xml { namespace sax }} namespace document { - class XGraphicObjectResolver; + class XGraphicStorageHandler; } }}} @@ -105,7 +105,7 @@ private: const css::uno::Reference< css::embed::XStorage > & xStorage, const css::uno::Reference< css::xml::sax::XParser > & xParser, const css::uno::Reference< css::lang::XMultiComponentFactory > & xFactory, - const css::uno::Reference< css::document::XGraphicObjectResolver > & xGraphicObjectResolver, + const css::uno::Reference & xGraphicStorageHandler, css::uno::Reference< css::beans::XPropertySet > const & xPropSet ); /// @return a warning code, or 0 for successful operation -- cgit