diff options
author | Sarper Akdemir <sarper.akdemir@collabora.com> | 2021-05-09 20:08:47 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-06-23 23:28:46 +0200 |
commit | 65bcbd1c2086bad83691e864902418c1560ae5fe (patch) | |
tree | 47f888aa8bfef63bee3ed3112e63da6c0c0b91bc | |
parent | 713fd97a136d90ace6fe68fb3428adeda4fcec17 (diff) |
tdf#59323: ooxml import: hasNonInheritedShapeProperties
Introduces hasNonInheritedShapeProperties helper to PPTShape.
If the shape has something imported from it's spPr tag
mbHasNoninheritedShapeProperties set to true.
Change-Id: I0529f1def8d2c32d5bf06172ce44facdde92893c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117003
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117530
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r-- | include/oox/ppt/pptshape.hxx | 7 | ||||
-rw-r--r-- | oox/source/ppt/pptshape.cxx | 1 | ||||
-rw-r--r-- | oox/source/ppt/pptshapepropertiescontext.cxx | 5 |
3 files changed, 13 insertions, 0 deletions
diff --git a/include/oox/ppt/pptshape.hxx b/include/oox/ppt/pptshape.hxx index c5d9e7be5548..e1cc9965fd57 100644 --- a/include/oox/ppt/pptshape.hxx +++ b/include/oox/ppt/pptshape.hxx @@ -51,6 +51,8 @@ class PPTShape final : public oox::drawingml::Shape bool mbReferenced; // placeholdershapes on Layout are displayed only, if they are not referenced // placeholdershapes on Slide are displayed always oox::drawingml::ShapePtr mpPlaceholder; + /// Set if spPr tag is non empty for the shape + bool mbHasNoninheritedShapeProperties; public: @@ -74,6 +76,11 @@ public: void setPlaceholder( oox::drawingml::ShapePtr pPlaceholder ) { mpPlaceholder = pPlaceholder; } void setModelId( const OUString& rId ) { msModelId = rId; } + /// Flags shape as having a non-empty spPr tag + void setHasNoninheritedShapeProperties() { mbHasNoninheritedShapeProperties = true; } + /// Returns whether or not the shape had a non-empty spPr tag + bool hasNonInheritedShapeProperties() const { return mbHasNoninheritedShapeProperties; } + static oox::drawingml::ShapePtr findPlaceholder( const sal_Int32 nFirstSubType, const sal_Int32 nSecondSubType, const OptValue< sal_Int32 >& oSubTypeIndex, std::vector< oox::drawingml::ShapePtr >& rShapes, bool bMasterOnly = false ); diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx index 71b94c727132..59d0e368620e 100644 --- a/oox/source/ppt/pptshape.cxx +++ b/oox/source/ppt/pptshape.cxx @@ -50,6 +50,7 @@ PPTShape::PPTShape( const oox::ppt::ShapeLocation eShapeLocation, const sal_Char : Shape( pServiceName ) , meShapeLocation( eShapeLocation ) , mbReferenced( false ) +, mbHasNoninheritedShapeProperties( false ) { } diff --git a/oox/source/ppt/pptshapepropertiescontext.cxx b/oox/source/ppt/pptshapepropertiescontext.cxx index b2dfcbce8980..a65a02d93e1c 100644 --- a/oox/source/ppt/pptshapepropertiescontext.cxx +++ b/oox/source/ppt/pptshapepropertiescontext.cxx @@ -35,6 +35,7 @@ #include <oox/token/namespaces.hxx> #include <oox/token/properties.hxx> #include <oox/token/tokens.hxx> +#include <oox/ppt/pptshape.hxx> using namespace oox::core; using namespace ::com::sun::star; @@ -54,6 +55,10 @@ PPTShapePropertiesContext::PPTShapePropertiesContext( ContextHandler2Helper cons ContextHandlerRef PPTShapePropertiesContext::onCreateContext( sal_Int32 aElementToken, const AttributeList& rAttribs ) { + PPTShape* pPPTShape = dynamic_cast<PPTShape*>(&mrShape); + if (pPPTShape) + pPPTShape->setHasNoninheritedShapeProperties(); + switch( aElementToken ) { case A_TOKEN( xfrm ): |