diff options
author | Muthu Subramanian <sumuthu@collabora.com> | 2014-03-12 16:44:10 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-03-19 11:55:23 +0000 |
commit | 012de8a0056bd75299ef97d03a95905c272cc26c (patch) | |
tree | af4d2c037becb15bbc813e5d47d294992c5eab1b | |
parent | 715cb73a20bbe9db6406a863201370996c04c1b7 (diff) |
n#821567: Import PPTX background images with table-name.
Ported from 2ec4d410de5bd98527336a9dc49abb76656373df
Change-Id: I50693f7fea8de4f1d3668378aa2334539dd80c42
Reviewed-on: https://gerrit.libreoffice.org/8546
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r-- | include/oox/drawingml/shapepropertymap.hxx | 3 | ||||
-rw-r--r-- | oox/source/drawingml/fillproperties.cxx | 4 | ||||
-rw-r--r-- | oox/source/drawingml/shapepropertymap.cxx | 16 |
3 files changed, 21 insertions, 2 deletions
diff --git a/include/oox/drawingml/shapepropertymap.hxx b/include/oox/drawingml/shapepropertymap.hxx index 80187524b922..a18276db7def 100644 --- a/include/oox/drawingml/shapepropertymap.hxx +++ b/include/oox/drawingml/shapepropertymap.hxx @@ -63,6 +63,7 @@ enum ShapePropertyId SHAPEPROP_FillBitmapRectanglePoint, SHAPEPROP_FillHatch, SHAPEPROP_ShadowXDistance, + SHAPEPROP_FillBitmapNameFromUrl, SHAPEPROP_END }; @@ -128,6 +129,8 @@ private: bool setGradientTrans( sal_Int32 nPropId, const ::com::sun::star::uno::Any& rValue ); /** Sets an explicit fill bitmap URL, or creates a named fill bitmap URL. */ bool setFillBitmapUrl( sal_Int32 nPropId, const ::com::sun::star::uno::Any& rValue ); + /** Sets an explicit fill bitmap URL and pushes the name to FillBitmapName */ + bool setFillBitmapNameFromUrl( sal_Int32 nPropId, const ::com::sun::star::uno::Any& rValue ); // not implemented, to prevent implicit conversion from enum to int ::com::sun::star::uno::Any& operator[]( ShapePropertyId ePropId ); diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index d1d097ff4ead..389ef8a4e263 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -376,7 +376,9 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, OUString aGraphicUrl = rGraphicHelper.createGraphicObject( maBlipProps.mxGraphic ); // push bitmap or named bitmap to property map - if( !aGraphicUrl.isEmpty() && rPropMap.setProperty( SHAPEPROP_FillBitmapUrl, aGraphicUrl ) ) + if( !aGraphicUrl.isEmpty() && rPropMap.supportsProperty( SHAPEPROP_FillBitmapNameFromUrl ) && rPropMap.setProperty( SHAPEPROP_FillBitmapNameFromUrl, aGraphicUrl ) ) + eFillStyle = FillStyle_BITMAP; + else if( !aGraphicUrl.isEmpty() && rPropMap.setProperty( SHAPEPROP_FillBitmapUrl, aGraphicUrl ) ) eFillStyle = FillStyle_BITMAP; // set other bitmap properties, if bitmap has been inserted into the map diff --git a/oox/source/drawingml/shapepropertymap.cxx b/oox/source/drawingml/shapepropertymap.cxx index ff02dd5f3503..fe985dba892c 100644 --- a/oox/source/drawingml/shapepropertymap.cxx +++ b/oox/source/drawingml/shapepropertymap.cxx @@ -47,7 +47,8 @@ static const sal_Int32 spnDefaultShapeIds[ SHAPEPROP_END ] = PROP_FillBitmapURL, PROP_FillBitmapMode, PROP_FillBitmapSizeX, PROP_FillBitmapSizeY, PROP_FillBitmapPositionOffsetX, PROP_FillBitmapPositionOffsetY, PROP_FillBitmapRectanglePoint, PROP_FillHatch, - PROP_ShadowXDistance + PROP_ShadowXDistance, + PROP_FillBitmapName }; } // namespace @@ -108,6 +109,9 @@ bool ShapePropertyMap::setAnyProperty( ShapePropertyId ePropId, const Any& rValu case SHAPEPROP_FillBitmapUrl: return setFillBitmapUrl( nPropId, rValue ); + case SHAPEPROP_FillBitmapNameFromUrl: + return setFillBitmapNameFromUrl( nPropId, rValue ); + default:; // suppress compiler warnings } @@ -195,6 +199,16 @@ bool ShapePropertyMap::setFillBitmapUrl( sal_Int32 nPropId, const Any& rValue ) return false; } +bool ShapePropertyMap::setFillBitmapNameFromUrl( sal_Int32 /*nPropId*/, const Any& rValue ) +{ + if( rValue.has< OUString >() ) + { + OUString aBitmapUrlName = mrModelObjHelper.insertFillBitmapUrl( rValue.get< OUString >() ); + return !aBitmapUrlName.isEmpty() && setProperty( PROP_FillBitmapName, aBitmapUrlName ); + } + return false; +} + // ============================================================================ } // namespace drawingml |