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

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Sun Feb 25 12:14:50 UTC 2018


 include/oox/vml/vmlshape.hxx |    5 ++++-
 oox/source/export/shapes.cxx |    2 +-
 oox/source/vml/vmlshape.cxx  |   40 +++++++++++++++++-----------------------
 3 files changed, 22 insertions(+), 25 deletions(-)

New commits:
commit 9932cbe1a515420acad07411606be425d31584aa
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Wed Feb 21 20:30:51 2018 +0900

    When exporting a shape, use "Graphic" property from images
    
    We still used "GraphicURL" when exporting a shape, but as it is
    being replaced, change that to use "Graphic" property instead.
    
    Change-Id: Ia2b6bdacf0e28de6cfe2eaa36e5b558250ebee8e
    Reviewed-on: https://gerrit.libreoffice.org/50142
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index 8f374c0d54d1..b9a19bf506b4 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -1864,7 +1864,7 @@ ShapeExport& ShapeExport::WriteTextShape( const Reference< XShape >& xShape )
     WriteShapeTransformation( xShape, XML_a );
     WritePresetShape( "rect" );
     uno::Reference<beans::XPropertySet> xPropertySet(xShape, UNO_QUERY);
-    WriteBlipOrNormalFill(xPropertySet, "GraphicURL");
+    WriteBlipOrNormalFill(xPropertySet, "Graphic");
     WriteOutline(xPropertySet);
     pFS->endElementNS( mnXmlNamespace, XML_spPr );
 
commit cfc2715f1500d98671834254f2d8c4de19ff8507
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Wed Feb 21 20:26:56 2018 +0900

    Use "Graphic" instead of "GraphicURL" property for SimpleShape
    
    We don't need to create an URL when we get the XGraphic from the
    signatures, that use SimpleShape. We can just use the XGraphic
    directly and set the "Graphic" property on creation of
    SimpleShape.
    
    Change-Id: I82b1f76cd358fca29f5b9dfbed0e735bd1f38e15
    Reviewed-on: https://gerrit.libreoffice.org/50141
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/include/oox/vml/vmlshape.hxx b/include/oox/vml/vmlshape.hxx
index 9b2683e95bea..55e7afedcb50 100644
--- a/include/oox/vml/vmlshape.hxx
+++ b/include/oox/vml/vmlshape.hxx
@@ -35,6 +35,7 @@ namespace com { namespace sun { namespace star {
     namespace awt { struct Rectangle; }
     namespace drawing { class XShape; }
     namespace drawing { class XShapes; }
+    namespace graphic { class XGraphic; }
 } } }
 
 namespace oox {
@@ -304,9 +305,11 @@ protected:
     css::uno::Reference<css::drawing::XShape>createEmbeddedPictureObject(
         const css::uno::Reference< css::drawing::XShapes >& rxShapes,
         const css::awt::Rectangle& rShapeRect, OUString const & rGraphicPath ) const;
+
     css::uno::Reference<css::drawing::XShape>createPictureObject(
             const css::uno::Reference< css::drawing::XShapes >& rxShapes,
-            const css::awt::Rectangle& rShapeRect, OUString const & rGraphicUrl ) const;
+            const css::awt::Rectangle& rShapeRect,
+            css::uno::Reference<css::graphic::XGraphic> const & rxGraphic) const;
 
 private:
     OUString     maService;          ///< Name of the UNO shape service.
diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx
index d3540a3033b1..e30091411cc4 100644
--- a/oox/source/vml/vmlshape.cxx
+++ b/oox/source/vml/vmlshape.cxx
@@ -863,21 +863,21 @@ Reference< XShape > SimpleShape::implConvertAndInsert( const Reference< XShapes
 
 Reference< XShape > SimpleShape::createEmbeddedPictureObject( const Reference< XShapes >& rxShapes, const awt::Rectangle& rShapeRect, OUString const & rGraphicPath ) const
 {
-    XmlFilterBase& rFilter = mrDrawing.getFilter();
-    OUString aGraphicUrl = rFilter.getGraphicHelper().importEmbeddedGraphicObject( rGraphicPath );
-    return SimpleShape::createPictureObject(rxShapes, rShapeRect, aGraphicUrl);
+    Reference<XGraphic> xGraphic = mrDrawing.getFilter().getGraphicHelper().importEmbeddedGraphic(rGraphicPath);
+    return SimpleShape::createPictureObject(rxShapes, rShapeRect, xGraphic);
 }
 
-Reference< XShape > SimpleShape::createPictureObject( const Reference< XShapes >& rxShapes, const awt::Rectangle& rShapeRect, OUString const & rGraphicUrl ) const
+Reference< XShape > SimpleShape::createPictureObject(const Reference< XShapes >& rxShapes,
+                                                     const awt::Rectangle& rShapeRect,
+                                                     uno::Reference<graphic::XGraphic> const & rxGraphic) const
 {
     Reference< XShape > xShape = mrDrawing.createAndInsertXShape( "com.sun.star.drawing.GraphicObjectShape", rxShapes, rShapeRect );
     if( xShape.is() )
     {
-
-        PropertySet aPropSet( xShape );
-        if( !rGraphicUrl.isEmpty() )
+        PropertySet aPropSet(xShape);
+        if (rxGraphic.is())
         {
-            aPropSet.setProperty( PROP_GraphicURL, rGraphicUrl );
+            aPropSet.setProperty(PROP_Graphic, rxGraphic);
         }
         uno::Reference< lang::XServiceInfo > xServiceInfo(rxShapes, uno::UNO_QUERY);
         // If the shape has an absolute position, set the properties accordingly, unless we're inside a group shape.
@@ -897,9 +897,7 @@ Reference< XShape > SimpleShape::createPictureObject( const Reference< XShapes >
         if (maTypeModel.moCropBottom.has() || maTypeModel.moCropLeft.has() || maTypeModel.moCropRight.has() || maTypeModel.moCropTop.has())
         {
             text::GraphicCrop aGraphicCrop;
-            uno::Reference<graphic::XGraphic> xGraphic;
-            aPropSet.getProperty(xGraphic, PROP_Graphic);
-            awt::Size aOriginalSize = rGraphicHelper.getOriginalSize(xGraphic);
+            awt::Size aOriginalSize = rGraphicHelper.getOriginalSize(rxGraphic);
 
             if (maTypeModel.moCropBottom.has())
                 aGraphicCrop.Bottom = lclConvertCrop(maTypeModel.moCropBottom.get(), aOriginalSize.Height);
@@ -1249,7 +1247,7 @@ Reference< XShape > ComplexShape::implConvertAndInsert( const Reference< XShapes
 
     if( getShapeModel().mbIsSignatureLine )
     {
-        OUString aGraphicUrl;
+        uno::Reference<graphic::XGraphic> xGraphic;
         try
         {
             // Get the document signatures
@@ -1278,16 +1276,14 @@ Reference< XShape > ComplexShape::implConvertAndInsert( const Reference< XShapes
                         // Signature is valid, use the 'valid' image
                         SAL_WARN_IF(!xSignatureInfo[i].ValidSignatureLineImage.is(), "oox.vml",
                                     "No ValidSignatureLineImage!");
-                        aGraphicUrl = rFilter.getGraphicHelper().createGraphicObject(
-                            xSignatureInfo[i].ValidSignatureLineImage);
+                        xGraphic = xSignatureInfo[i].ValidSignatureLineImage;
                     }
                     else
                     {
                         // Signature is invalid, use the 'invalid' image
                         SAL_WARN_IF(!xSignatureInfo[i].InvalidSignatureLineImage.is(), "oox.vml",
                                     "No InvalidSignatureLineImage!");
-                        aGraphicUrl = rFilter.getGraphicHelper().createGraphicObject(
-                            xSignatureInfo[i].InvalidSignatureLineImage);
+                        xGraphic = xSignatureInfo[i].InvalidSignatureLineImage;
                     }
                     break;
                 }
@@ -1300,10 +1296,10 @@ Reference< XShape > ComplexShape::implConvertAndInsert( const Reference< XShapes
         }
 
         Reference< XShape > xShape;
-        if (!aGraphicUrl.isEmpty())
+        if (xGraphic.is())
         {
             // If available, use the signed image from the signature
-            xShape = SimpleShape::createPictureObject(rxShapes, rShapeRect, aGraphicUrl);
+            xShape = SimpleShape::createPictureObject(rxShapes, rShapeRect, xGraphic);
         }
         else
         {
@@ -1337,10 +1333,8 @@ Reference< XShape > ComplexShape::implConvertAndInsert( const Reference< XShapes
 
         if (!aGraphicPath.isEmpty())
         {
-            Reference< XGraphic > xGraphic
-                = rFilter.getGraphicHelper().importEmbeddedGraphic(aGraphicPath);
-            xPropertySet->setPropertyValue("SignatureLineUnsignedImage",
-                                            uno::makeAny(xGraphic));
+            xGraphic = rFilter.getGraphicHelper().importEmbeddedGraphic(aGraphicPath);
+            xPropertySet->setPropertyValue("SignatureLineUnsignedImage", uno::makeAny(xGraphic));
         }
         return xShape;
     }
@@ -1348,7 +1342,7 @@ Reference< XShape > ComplexShape::implConvertAndInsert( const Reference< XShapes
     // try to create a picture object
     if( !aGraphicPath.isEmpty() )
     {
-        Reference< XShape > xShape = SimpleShape::createEmbeddedPictureObject(rxShapes, rShapeRect, aGraphicPath);
+        Reference<XShape> xShape = SimpleShape::createEmbeddedPictureObject(rxShapes, rShapeRect, aGraphicPath);
         // AS_CHARACTER shape: vertical orientation default is bottom, MSO default is top.
         if ( maTypeModel.maPosition != "absolute" && maTypeModel.maPosition != "relative" )
             PropertySet( xShape ).setAnyProperty( PROP_VertOrient, makeAny(text::VertOrientation::TOP));


More information about the Libreoffice-commits mailing list