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
- [PATCH libreoffice-4-0] bnc#798309 inherit group style from parent · Noel Power (via Code Review)
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.