diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2018-04-23 12:43:54 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2018-04-26 18:19:32 +0200 |
commit | 45f20a893a457a40604207382611afd2f8e4b635 (patch) | |
tree | 0604a60593c9b9037c8a8e8e3cd3573070dc394b /xmloff | |
parent | e87ea03a0d595ed478f281a723a6889228babeb2 (diff) |
[API CHANGE] deprecate XGraphicObjectResolver
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 <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/source/core/xmlexp.cxx | 55 | ||||
-rw-r--r-- | xmloff/source/core/xmlimp.cxx | 31 |
2 files changed, 35 insertions, 51 deletions
diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index f76e7b677710..835b9ea18f80 100644 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -674,11 +674,10 @@ void SAL_CALL SvXMLExport::initialize( const uno::Sequence< uno::Any >& aArgumen if ( xTmpStatus.is() ) mxStatusIndicator = xTmpStatus; - // graphic resolver - uno::Reference<document::XGraphicObjectResolver> xTmpGraphic( - xValue, UNO_QUERY ); - if ( xTmpGraphic.is() ) - mxGraphicResolver = xTmpGraphic; + // graphic storage handler + uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(xValue, UNO_QUERY); + if (xGraphicStorageHandler.is()) + mxGraphicStorageHandler = xGraphicStorageHandler; // object resolver uno::Reference<document::XEmbeddedObjectResolver> xTmpObjectResolver( @@ -1254,18 +1253,17 @@ ErrCode SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) bool bOwnGraphicResolver = false; bool bOwnEmbeddedResolver = false; - if( !mxGraphicResolver.is() || !mxEmbeddedResolver.is() ) + if (!mxGraphicStorageHandler.is() || !mxEmbeddedResolver.is()) { Reference< XMultiServiceFactory > xFactory( mxModel, UNO_QUERY ); if( xFactory.is() ) { try { - if( !mxGraphicResolver.is() ) + if (!mxGraphicStorageHandler.is()) { - mxGraphicResolver.set( - xFactory->createInstance( "com.sun.star.document.ExportGraphicObjectResolver" ), UNO_QUERY); - bOwnGraphicResolver = mxGraphicResolver.is(); + mxGraphicStorageHandler.set(xFactory->createInstance( "com.sun.star.document.ExportGraphicStorageHandler"), UNO_QUERY); + bOwnGraphicResolver = mxGraphicStorageHandler.is(); } if( !mxEmbeddedResolver.is() ) @@ -1441,7 +1439,7 @@ ErrCode SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) if( bOwnGraphicResolver ) { - Reference< XComponent > xComp( mxGraphicResolver, UNO_QUERY ); + uno::Reference<XComponent> xComp(mxGraphicStorageHandler, UNO_QUERY); xComp->dispose(); } @@ -1880,11 +1878,10 @@ OUString SvXMLExport::AddEmbeddedXGraphic(uno::Reference<graphic::XGraphic> cons } else { - uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(mxGraphicResolver, uno::UNO_QUERY); - if (mxGraphicResolver.is() && xGraphicStorageHandler.is()) + if (mxGraphicStorageHandler.is()) { if (!(getExportFlags() & SvXMLExportFlags::EMBEDDED)) - sURL = xGraphicStorageHandler->saveGraphicByName(rxGraphic, rOutMimeType, rRequestedName); + sURL = mxGraphicStorageHandler->saveGraphicByName(rxGraphic, rOutMimeType, rRequestedName); } } return sURL; @@ -1892,18 +1889,13 @@ OUString SvXMLExport::AddEmbeddedXGraphic(uno::Reference<graphic::XGraphic> cons bool SvXMLExport::GetGraphicMimeTypeFromStream(uno::Reference<graphic::XGraphic> const & rxGraphic, OUString & rOutMimeType) { - if (mxGraphicResolver.is()) + if (mxGraphicStorageHandler.is()) { - uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(mxGraphicResolver, uno::UNO_QUERY); - - if (xGraphicStorageHandler.is()) + Reference<XInputStream> xInputStream(mxGraphicStorageHandler->createInputStream(rxGraphic)); + if (xInputStream.is()) { - Reference<XInputStream> xInputStream(xGraphicStorageHandler->createInputStream(rxGraphic)); - if (xInputStream.is()) - { - rOutMimeType = comphelper::GraphicMimeTypeHelper::GetMimeTypeForImageStream(xInputStream); - return true; - } + rOutMimeType = comphelper::GraphicMimeTypeHelper::GetMimeTypeForImageStream(xInputStream); + return true; } } @@ -1913,18 +1905,13 @@ bool SvXMLExport::GetGraphicMimeTypeFromStream(uno::Reference<graphic::XGraphic> bool SvXMLExport::AddEmbeddedXGraphicAsBase64(uno::Reference<graphic::XGraphic> const & rxGraphic) { if ((getExportFlags() & SvXMLExportFlags::EMBEDDED) && - mxGraphicResolver.is()) + mxGraphicStorageHandler.is()) { - uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(mxGraphicResolver, uno::UNO_QUERY); - - if (xGraphicStorageHandler.is()) + Reference<XInputStream> xInputStream(mxGraphicStorageHandler->createInputStream(rxGraphic)); + if (xInputStream.is()) { - Reference<XInputStream> xInputStream(xGraphicStorageHandler->createInputStream(rxGraphic)); - if (xInputStream.is()) - { - XMLBase64Export aBase64Exp(*this); - return aBase64Exp.exportOfficeBinaryDataElement(xInputStream); - } + XMLBase64Export aBase64Exp(*this); + return aBase64Exp.exportOfficeBinaryDataElement(xInputStream); } } diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx index 7a08b5656030..9b2b51060341 100644 --- a/xmloff/source/core/xmlimp.cxx +++ b/xmloff/source/core/xmlimp.cxx @@ -529,20 +529,20 @@ void SAL_CALL SvXMLImport::setNamespaceHandler( const uno::Reference< xml::sax:: void SAL_CALL SvXMLImport::startDocument() { SAL_INFO( "xmloff.core", "{ SvXMLImport::startDocument" ); - if( !mxGraphicResolver.is() || !mxEmbeddedResolver.is() ) + if (!mxGraphicStorageHandler.is() || !mxEmbeddedResolver.is()) { Reference< lang::XMultiServiceFactory > xFactory( mxModel, UNO_QUERY ); if( xFactory.is() ) { try { - if( !mxGraphicResolver.is() ) + if (!mxGraphicStorageHandler.is()) { // #99870# Import... instead of Export... - mxGraphicResolver.set( - xFactory->createInstance("com.sun.star.document.ImportGraphicObjectResolver"), + mxGraphicStorageHandler.set( + xFactory->createInstance("com.sun.star.document.ImportGraphicStorageHandler"), UNO_QUERY); - mpImpl->mbOwnGraphicResolver = mxGraphicResolver.is(); + mpImpl->mbOwnGraphicResolver = mxGraphicStorageHandler.is(); } if( !mxEmbeddedResolver.is() ) @@ -630,7 +630,7 @@ void SAL_CALL SvXMLImport::endDocument() if( mpImpl->mbOwnGraphicResolver ) { - Reference< lang::XComponent > xComp( mxGraphicResolver, UNO_QUERY ); + Reference<lang::XComponent> xComp(mxGraphicStorageHandler, UNO_QUERY); xComp->dispose(); } @@ -1037,10 +1037,9 @@ void SAL_CALL SvXMLImport::initialize( const uno::Sequence< uno::Any >& aArgumen if( xTmpStatusIndicator.is() ) mxStatusIndicator = xTmpStatusIndicator; - uno::Reference<document::XGraphicObjectResolver> xTmpGraphicResolver( - xValue, UNO_QUERY ); - if( xTmpGraphicResolver.is() ) - mxGraphicResolver = xTmpGraphicResolver; + uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(xValue, UNO_QUERY); + if (xGraphicStorageHandler.is()) + mxGraphicStorageHandler = xGraphicStorageHandler; uno::Reference<document::XEmbeddedObjectResolver> xTmpObjectResolver( xValue, UNO_QUERY ); @@ -1361,13 +1360,12 @@ bool SvXMLImport::IsPackageURL( const OUString& rURL ) const uno::Reference<graphic::XGraphic> SvXMLImport::loadGraphicByURL(OUString const & rURL) { uno::Reference<graphic::XGraphic> xGraphic; - uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(mxGraphicResolver, uno::UNO_QUERY); - if (xGraphicStorageHandler.is()) + if (mxGraphicStorageHandler.is()) { if (IsPackageURL(rURL)) { - xGraphic = xGraphicStorageHandler->loadGraphic(rURL); + xGraphic = mxGraphicStorageHandler->loadGraphic(rURL); } else { @@ -1384,11 +1382,10 @@ uno::Reference<graphic::XGraphic> SvXMLImport::loadGraphicByURL(OUString const & uno::Reference<graphic::XGraphic> SvXMLImport::loadGraphicFromBase64(uno::Reference<io::XOutputStream> const & rxOutputStream) { uno::Reference<graphic::XGraphic> xGraphic; - uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(mxGraphicResolver, uno::UNO_QUERY); - if (xGraphicStorageHandler.is()) + if (mxGraphicStorageHandler.is()) { - xGraphic = xGraphicStorageHandler->loadGraphicFromOutputStream(rxOutputStream); + xGraphic = mxGraphicStorageHandler->loadGraphicFromOutputStream(rxOutputStream); } return xGraphic; @@ -1397,7 +1394,7 @@ uno::Reference<graphic::XGraphic> SvXMLImport::loadGraphicFromBase64(uno::Refere Reference< XOutputStream > SvXMLImport::GetStreamForGraphicObjectURLFromBase64() { Reference< XOutputStream > xOStm; - Reference< document::XBinaryStreamResolver > xStmResolver( mxGraphicResolver, UNO_QUERY ); + Reference< document::XBinaryStreamResolver > xStmResolver(mxGraphicStorageHandler, UNO_QUERY); if( xStmResolver.is() ) xOStm = xStmResolver->createOutputStream(); |