include/oox/ppt/pptshape.hxx | 7 +++++++ oox/source/ppt/pptshape.cxx | 1 + oox/source/ppt/pptshapepropertiescontext.cxx | 5 +++++ 3 files changed, 13 insertions(+)
New commits: commit cc7c0387506b546333d5951af98dcfb0fbf75c55 Author: Sarper Akdemir <sarper.akde...@collabora.com> AuthorDate: Sun May 9 20:08:47 2021 +0300 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon Jun 14 14:42:35 2021 +0200 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 <vmik...@collabora.com> 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 ): _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits