diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2018-02-21 20:26:56 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2018-02-25 13:14:28 +0100 |
commit | cfc2715f1500d98671834254f2d8c4de19ff8507 (patch) | |
tree | 2509dc6d6e5ae6af71f93f4d52d049186d93b62b | |
parent | e2d0945c41a3558264491d01bd269a8ec5bcf796 (diff) |
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@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r-- | include/oox/vml/vmlshape.hxx | 5 | ||||
-rw-r--r-- | oox/source/vml/vmlshape.cxx | 40 |
2 files changed, 21 insertions, 24 deletions
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)); |