[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - include/oox oox/source

Sarper Akdemir (via logerrit) logerrit at kemper.freedesktop.org
Wed Jun 23 21:29:37 UTC 2021


 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 65bcbd1c2086bad83691e864902418c1560ae5fe
Author:     Sarper Akdemir <sarper.akdemir at collabora.com>
AuthorDate: Sun May 9 20:08:47 2021 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Jun 23 23:28:46 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 <vmiklos at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117530
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

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 ):


More information about the Libreoffice-commits mailing list