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>
diff --git a/include/oox/ppt/pptshape.hxx b/include/oox/ppt/pptshape.hxx
index f452e58..d27a116 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 1756ad9..4e07ae1 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 1282720..70ef2fc 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 ):