[Libreoffice-commits] core.git: include/xmloff xmloff/source

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Sun Feb 18 07:56:30 UTC 2018


 include/xmloff/xmlexp.hxx     |    1 +
 xmloff/source/core/xmlexp.cxx |   17 +++++++++++++++++
 2 files changed, 18 insertions(+)

New commits:
commit 233a6332500a30ba4bd44d09635ac7cbfe91beb7
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Sat Feb 17 08:34:48 2018 +0900

    GetEmbeddedXGraphicStream to read XGraphic as stream
    
    This is an alternative to GetEmbeddedGraphicObjectStream which
    uses URL as parameter and will be removed soon.
    
    Change-Id: I3c7431bdeed0bd4ed3c7f48517a52846d0944ed2
    Reviewed-on: https://gerrit.libreoffice.org/49893
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/include/xmloff/xmlexp.hxx b/include/xmloff/xmlexp.hxx
index 6024d9f877ca..2d367b433935 100644
--- a/include/xmloff/xmlexp.hxx
+++ b/include/xmloff/xmlexp.hxx
@@ -465,6 +465,7 @@ public:
 
     OUString AddEmbeddedXGraphic(css::uno::Reference<css::graphic::XGraphic> const & rxGraphic, OUString const & rRequestedName = OUString());
     bool AddEmbeddedXGraphicAsBase64(css::uno::Reference<css::graphic::XGraphic> const & rxGraphic);
+    css::uno::Reference<css::io::XInputStream> GetEmbeddedXGraphicStream(css::uno::Reference<css::graphic::XGraphic> const & rxGraphic);
 
     css::uno::Reference<css::io::XInputStream> GetEmbeddedGraphicObjectStream(
         const OUString& rGraphicObjectURL);
diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx
index 7f5df92e5875..4d3533ae4c09 100644
--- a/xmloff/source/core/xmlexp.cxx
+++ b/xmloff/source/core/xmlexp.cxx
@@ -1926,6 +1926,23 @@ Reference< XInputStream > SvXMLExport::GetEmbeddedGraphicObjectStream( const OUS
     return nullptr;
 }
 
+uno::Reference<io::XInputStream> SvXMLExport::GetEmbeddedXGraphicStream(uno::Reference<graphic::XGraphic> const & rxGraphic)
+{
+    uno::Reference<io::XInputStream> xInputStream;
+
+    if ((getExportFlags() & SvXMLExportFlags::EMBEDDED) && mxGraphicResolver.is())
+    {
+        uno::Reference<document::XGraphicStorageHandler> xGraphicStorageHandler(mxGraphicResolver, uno::UNO_QUERY);
+
+        if (xGraphicStorageHandler.is())
+        {
+            xInputStream = xGraphicStorageHandler->createInputStream(rxGraphic);
+        }
+    }
+
+    return xInputStream;
+}
+
 bool SvXMLExport::AddEmbeddedXGraphicAsBase64(uno::Reference<graphic::XGraphic> const & rxGraphic)
 {
     if ((getExportFlags() & SvXMLExportFlags::EMBEDDED) &&


More information about the Libreoffice-commits mailing list