Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2695

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/95/2695/1

bnc#798309 inherit group style from parent

Change-Id: Ie4f1d244f1c9b4935305742d12cabaee3e38647c
(cherry picked from commit 1dbd088e4fb9597b0e2f5e4c4db6ecf047d85da3)
---
M oox/inc/oox/drawingml/shape.hxx
M oox/source/drawingml/chart/chartdrawingfragment.cxx
M oox/source/drawingml/shape.cxx
M oox/source/ppt/dgmimport.cxx
M oox/source/ppt/pptshape.cxx
M oox/source/ppt/slidepersist.cxx
M oox/source/shape/ShapeContextHandler.cxx
M sc/source/filter/oox/drawingfragment.cxx
8 files changed, 23 insertions(+), 13 deletions(-)



diff --git a/oox/inc/oox/drawingml/shape.hxx b/oox/inc/oox/drawingml/shape.hxx
index 4e2b491..b46b4ef 100644
--- a/oox/inc/oox/drawingml/shape.hxx
+++ b/oox/inc/oox/drawingml/shape.hxx
@@ -149,6 +149,7 @@
                             const Theme* pTheme,
                             const ::com::sun::star::uno::Reference< 
::com::sun::star::drawing::XShapes >& rxShapes,
                             basegfx::B2DHomMatrix& aTransformation,
+                            FillProperties& rShapeOrParentShapeFillProps,
                             const ::com::sun::star::awt::Rectangle* pShapeRect = 0,
                             ShapeIdMap* pShapeMap = 0 );
 
@@ -183,7 +184,9 @@
                             const ::com::sun::star::awt::Rectangle* pShapeRect,
                             sal_Bool bClearText,
                             sal_Bool bDoNotInsertEmptyTextBody,
-                            basegfx::B2DHomMatrix& aTransformation );
+                            basegfx::B2DHomMatrix& aTransformation,
+                            FillProperties& rShapeOrParentShapeFillProps
+                             );
 
     void                addChildren(
                             ::oox::core::XmlFilterBase& rFilterBase,
diff --git a/oox/source/drawingml/chart/chartdrawingfragment.cxx 
b/oox/source/drawingml/chart/chartdrawingfragment.cxx
index be05de9..702d7d8 100644
--- a/oox/source/drawingml/chart/chartdrawingfragment.cxx
+++ b/oox/source/drawingml/chart/chartdrawingfragment.cxx
@@ -215,7 +215,7 @@
                     getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Width, 0, SAL_MAX_INT32 
),
                     getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Height, 0, 
SAL_MAX_INT32 ) );
                 basegfx::B2DHomMatrix aMatrix;
-                mxShape->addShape( getFilter(), getFilter().getCurrentTheme(), mxDrawPage, 
aMatrix, &aShapeRectEmu32 );
+                mxShape->addShape( getFilter(), getFilter().getCurrentTheme(), mxDrawPage, 
aMatrix, mxShape->getFillProperties(), &aShapeRectEmu32 );
             }
         }
         mxShape.reset();
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index fa5f8e0..9200fa2 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -195,6 +195,7 @@
         const Theme* pTheme,
         const Reference< XShapes >& rxShapes,
         basegfx::B2DHomMatrix& aTransformation,
+        FillProperties& rShapeOrParentShapeFillProps,
         const awt::Rectangle* pShapeRect,
         ShapeIdMap* pShapeMap )
 {
@@ -206,7 +207,7 @@
         if( !sServiceName.isEmpty() )
         {
             basegfx::B2DHomMatrix aMatrix( aTransformation );
-            Reference< XShape > xShape( createAndInsert( rFilterBase, sServiceName, pTheme, 
rxShapes, pShapeRect, sal_False, sal_False, aMatrix ) );
+            Reference< XShape > xShape( createAndInsert( rFilterBase, sServiceName, pTheme, 
rxShapes, pShapeRect, sal_False, sal_False, aMatrix, rShapeOrParentShapeFillProps ) );
 
             if( pShapeMap && !msId.isEmpty() )
             {
@@ -311,7 +312,7 @@
     std::vector< ShapePtr >::iterator aIter( rMaster.maChildren.begin() );
     while( aIter != rMaster.maChildren.end() ) {
         (*aIter)->setMasterTextListStyle( mpMasterTextListStyle );
-        (*aIter++)->addShape( rFilterBase, pTheme, rxShapes, aChildTransformation, NULL, pShapeMap 
);
+        (*aIter++)->addShape( rFilterBase, pTheme, rxShapes, aChildTransformation, 
getFillProperties(), NULL, pShapeMap );
     }
 }
 
@@ -323,7 +324,8 @@
         const awt::Rectangle* /* pShapeRect */,
         sal_Bool bClearText,
         sal_Bool bDoNotInsertEmptyTextBody,
-        basegfx::B2DHomMatrix& aParentTransformation )
+        basegfx::B2DHomMatrix& aParentTransformation,
+        FillProperties& rShapeOrParentShapeFillProps )
 {
     bool bIsEmbMedia = false;
     SAL_INFO("oox", OSL_THIS_FUNC << " id: " << msId);
@@ -515,7 +517,12 @@
         }
 
         aLineProperties.assignUsed( getLineProperties() );
-        aFillProperties.assignUsed( getFillProperties() );
+
+        // group fill inherits from parent
+        if ( getFillProperties().moFillType.has() && getFillProperties().moFillType.get() == 
XML_grpFill )
+            aFillProperties.assignUsed( rShapeOrParentShapeFillProps );
+        else
+            aFillProperties.assignUsed( getFillProperties() );
         aEffectProperties.assignUsed ( getEffectProperties() );
 
         ShapePropertyMap aShapeProps( rFilterBase.getModelObjectHelper() );
diff --git a/oox/source/ppt/dgmimport.cxx b/oox/source/ppt/dgmimport.cxx
index edb571f..1d86663 100644
--- a/oox/source/ppt/dgmimport.cxx
+++ b/oox/source/ppt/dgmimport.cxx
@@ -79,7 +79,7 @@
     pShape->addShape( *this,
                       pTheme.get(),
                       xParentShape,
-                      aMatrix );
+                      aMatrix, pShape->getFillProperties() );
 
     return true;
 }
diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx
index e42321e..c0764e5 100644
--- a/oox/source/ppt/pptshape.cxx
+++ b/oox/source/ppt/pptshape.cxx
@@ -332,7 +332,7 @@
             } else
                 setMasterTextListStyle( aMasterTextListStyle );
 
-            Reference< XShape > xShape( createAndInsert( rFilterBase, sServiceName, pTheme, 
rxShapes, pShapeRect, bClearText, mpPlaceholder.get() != NULL, aTransformation ) );
+            Reference< XShape > xShape( createAndInsert( rFilterBase, sServiceName, pTheme, 
rxShapes, pShapeRect, bClearText, mpPlaceholder.get() != NULL, aTransformation, getFillProperties() 
) );
                 if ( !rSlidePersist.isMasterPage() && rSlidePersist.getPage().is() && ( 
(sal_Int32)mnSubType == XML_title ) )
                  {
                     try
diff --git a/oox/source/ppt/slidepersist.cxx b/oox/source/ppt/slidepersist.cxx
index 77a1601..5567613 100644
--- a/oox/source/ppt/slidepersist.cxx
+++ b/oox/source/ppt/slidepersist.cxx
@@ -145,7 +145,7 @@
             if ( pPPTShape )
                 pPPTShape->addShape( rFilterBase, *this, getTheme().get(), xShapes, 
aTransformation, 0, &getShapeMap() );
             else
-                (*aChildIter)->addShape( rFilterBase, getTheme().get(), xShapes, aTransformation, 
0, &getShapeMap() );
+                (*aChildIter)->addShape( rFilterBase, getTheme().get(), xShapes, aTransformation, 
maShapesPtr->getFillProperties(), 0, &getShapeMap() );
             aChildIter++;
         }
     }
diff --git a/oox/source/shape/ShapeContextHandler.cxx b/oox/source/shape/ShapeContextHandler.cxx
index eeeae93..dc38256 100644
--- a/oox/source/shape/ShapeContextHandler.cxx
+++ b/oox/source/shape/ShapeContextHandler.cxx
@@ -290,7 +290,7 @@
             basegfx::B2DHomMatrix aMatrix;
             if (mpShape->getExtDrawings().size() == 0)
             {
-                mpShape->addShape( *mxFilterBase, mpThemePtr.get(), xShapes, aMatrix );
+                mpShape->addShape( *mxFilterBase, mpThemePtr.get(), xShapes, aMatrix, 
mpShape->getFillProperties() );
                 xResult = mpShape->getXShape();
             }
             else
@@ -302,7 +302,7 @@
                     rtl::OUString 
aFragmentPath(pDiagramGraphicDataContext->getFragmentPathFromRelId(*aIt));
                     oox::drawingml::ShapePtr pShapePtr( new Shape( 
"com.sun.star.drawing.GroupShape" ) );
                     mxFilterBase->importFragment(new ShapeDrawingFragmentHandler(*mxFilterBase, 
aFragmentPath, pShapePtr));
-                    pShapePtr->addShape( *mxFilterBase, mpThemePtr.get(), xShapes, aMatrix );
+                    pShapePtr->addShape( *mxFilterBase, mpThemePtr.get(), xShapes, aMatrix, 
pShapePtr->getFillProperties() );
                     xResult = pShapePtr->getXShape();
                 }
                 mpShape.reset((Shape*)0);
@@ -312,7 +312,7 @@
         else if (mpShape.get() != NULL)
         {
             basegfx::B2DHomMatrix aTransformation;
-            mpShape->addShape(*mxFilterBase, mpThemePtr.get(), xShapes, aTransformation);
+            mpShape->addShape(*mxFilterBase, mpThemePtr.get(), xShapes, aTransformation, 
mpShape->getFillProperties() );
             xResult.set(mpShape->getXShape());
             mxGraphicShapeContext.clear( );
         }
diff --git a/sc/source/filter/oox/drawingfragment.cxx b/sc/source/filter/oox/drawingfragment.cxx
index d187a4f..261473d 100644
--- a/sc/source/filter/oox/drawingfragment.cxx
+++ b/sc/source/filter/oox/drawingfragment.cxx
@@ -281,7 +281,7 @@
                     mxShape->setSize(Size(aShapeRectEmu.Width, aShapeRectEmu.Height));
 
                     basegfx::B2DHomMatrix aTransformation;
-                    mxShape->addShape( getOoxFilter(), &getTheme(), mxDrawPage, aTransformation, 
&aShapeRectEmu32 );
+                    mxShape->addShape( getOoxFilter(), &getTheme(), mxDrawPage, aTransformation, 
mxShape->getFillProperties(), &aShapeRectEmu32 );
 
                     /*  Collect all shape positions in the WorksheetHelper base
                         class. But first, scale EMUs to 1/100 mm. */

-- 
To view, visit https://gerrit.libreoffice.org/2695
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie4f1d244f1c9b4935305742d12cabaee3e38647c
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Noel Power <noel.power@suse.com>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.