diff options
author | Sarper Akdemir <sarper.akdemir@collabora.com> | 2021-05-09 20:08:47 +0300 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2021-06-14 14:42:35 +0200 |
commit | cc7c0387506b546333d5951af98dcfb0fbf75c55 (patch) | |
tree | c4218ce13be55f03071d0e4072bfbaf80014fc75 | |
parent | 547386eef9b1723812dfdab5aed33e9025a372c6 (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>
-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 f452e585abcf..d27a116e2783 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: @@ -73,6 +75,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 1756ad9e32ab..4e07ae104db3 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 char* pS : Shape( pServiceName ) , meShapeLocation( eShapeLocation ) , mbReferenced( false ) +, mbHasNoninheritedShapeProperties( false ) { } diff --git a/oox/source/ppt/pptshapepropertiescontext.cxx b/oox/source/ppt/pptshapepropertiescontext.cxx index 128272054b21..70ef2fcef872 100644 --- a/oox/source/ppt/pptshapepropertiescontext.cxx +++ b/oox/source/ppt/pptshapepropertiescontext.cxx @@ -20,6 +20,7 @@ #include <oox/ppt/pptshapepropertiescontext.hxx> #include <oox/token/namespaces.hxx> #include <oox/token/properties.hxx> +#include <oox/ppt/pptshape.hxx> using namespace oox::core; using namespace ::com::sun::star; @@ -35,6 +36,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 ): |