Kaydet (Commit) 1dbd088e authored tarafından Noel Power's avatar Noel Power

bnc#798309 inherit group style from parent

Change-Id: Ie4f1d244f1c9b4935305742d12cabaee3e38647c
üst 856756ec
...@@ -149,6 +149,7 @@ public: ...@@ -149,6 +149,7 @@ public:
const Theme* pTheme, const Theme* pTheme,
const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& rxShapes, const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& rxShapes,
basegfx::B2DHomMatrix& aTransformation, basegfx::B2DHomMatrix& aTransformation,
FillProperties& rShapeOrParentShapeFillProps,
const ::com::sun::star::awt::Rectangle* pShapeRect = 0, const ::com::sun::star::awt::Rectangle* pShapeRect = 0,
ShapeIdMap* pShapeMap = 0 ); ShapeIdMap* pShapeMap = 0 );
...@@ -183,7 +184,9 @@ protected: ...@@ -183,7 +184,9 @@ protected:
const ::com::sun::star::awt::Rectangle* pShapeRect, const ::com::sun::star::awt::Rectangle* pShapeRect,
sal_Bool bClearText, sal_Bool bClearText,
sal_Bool bDoNotInsertEmptyTextBody, sal_Bool bDoNotInsertEmptyTextBody,
basegfx::B2DHomMatrix& aTransformation ); basegfx::B2DHomMatrix& aTransformation,
FillProperties& rShapeOrParentShapeFillProps
);
void addChildren( void addChildren(
::oox::core::XmlFilterBase& rFilterBase, ::oox::core::XmlFilterBase& rFilterBase,
......
...@@ -215,7 +215,7 @@ void ChartDrawingFragment::onEndElement() ...@@ -215,7 +215,7 @@ void ChartDrawingFragment::onEndElement()
getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Width, 0, SAL_MAX_INT32 ), getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Width, 0, SAL_MAX_INT32 ),
getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Height, 0, SAL_MAX_INT32 ) ); getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Height, 0, SAL_MAX_INT32 ) );
basegfx::B2DHomMatrix aMatrix; basegfx::B2DHomMatrix aMatrix;
mxShape->addShape( getFilter(), getFilter().getCurrentTheme(), mxDrawPage, aMatrix, &aShapeRectEmu32 ); mxShape->addShape( getFilter(), getFilter().getCurrentTheme(), mxDrawPage, aMatrix, mxShape->getFillProperties(), &aShapeRectEmu32 );
} }
} }
mxShape.reset(); mxShape.reset();
......
...@@ -193,6 +193,7 @@ void Shape::addShape( ...@@ -193,6 +193,7 @@ void Shape::addShape(
const Theme* pTheme, const Theme* pTheme,
const Reference< XShapes >& rxShapes, const Reference< XShapes >& rxShapes,
basegfx::B2DHomMatrix& aTransformation, basegfx::B2DHomMatrix& aTransformation,
FillProperties& rShapeOrParentShapeFillProps,
const awt::Rectangle* pShapeRect, const awt::Rectangle* pShapeRect,
ShapeIdMap* pShapeMap ) ShapeIdMap* pShapeMap )
{ {
...@@ -204,7 +205,7 @@ void Shape::addShape( ...@@ -204,7 +205,7 @@ void Shape::addShape(
if( !sServiceName.isEmpty() ) if( !sServiceName.isEmpty() )
{ {
basegfx::B2DHomMatrix aMatrix( aTransformation ); 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() ) if( pShapeMap && !msId.isEmpty() )
{ {
...@@ -309,7 +310,7 @@ void Shape::addChildren( ...@@ -309,7 +310,7 @@ void Shape::addChildren(
std::vector< ShapePtr >::iterator aIter( rMaster.maChildren.begin() ); std::vector< ShapePtr >::iterator aIter( rMaster.maChildren.begin() );
while( aIter != rMaster.maChildren.end() ) { while( aIter != rMaster.maChildren.end() ) {
(*aIter)->setMasterTextListStyle( mpMasterTextListStyle ); (*aIter)->setMasterTextListStyle( mpMasterTextListStyle );
(*aIter++)->addShape( rFilterBase, pTheme, rxShapes, aChildTransformation, NULL, pShapeMap ); (*aIter++)->addShape( rFilterBase, pTheme, rxShapes, aChildTransformation, getFillProperties(), NULL, pShapeMap );
} }
} }
...@@ -321,7 +322,8 @@ Reference< XShape > Shape::createAndInsert( ...@@ -321,7 +322,8 @@ Reference< XShape > Shape::createAndInsert(
const awt::Rectangle* /* pShapeRect */, const awt::Rectangle* /* pShapeRect */,
sal_Bool bClearText, sal_Bool bClearText,
sal_Bool bDoNotInsertEmptyTextBody, sal_Bool bDoNotInsertEmptyTextBody,
basegfx::B2DHomMatrix& aParentTransformation ) basegfx::B2DHomMatrix& aParentTransformation,
FillProperties& rShapeOrParentShapeFillProps )
{ {
bool bIsEmbMedia = false; bool bIsEmbMedia = false;
SAL_INFO("oox", OSL_THIS_FUNC << " id: " << msId); SAL_INFO("oox", OSL_THIS_FUNC << " id: " << msId);
...@@ -516,7 +518,12 @@ Reference< XShape > Shape::createAndInsert( ...@@ -516,7 +518,12 @@ Reference< XShape > Shape::createAndInsert(
} }
aLineProperties.assignUsed( getLineProperties() ); 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() ); aEffectProperties.assignUsed ( getEffectProperties() );
ShapePropertyMap aShapeProps( rFilterBase.getModelObjectHelper() ); ShapePropertyMap aShapeProps( rFilterBase.getModelObjectHelper() );
......
...@@ -78,7 +78,7 @@ bool QuickDiagrammingImport::importDocument() throw() ...@@ -78,7 +78,7 @@ bool QuickDiagrammingImport::importDocument() throw()
pShape->addShape( *this, pShape->addShape( *this,
pTheme.get(), pTheme.get(),
xParentShape, xParentShape,
aMatrix ); aMatrix, pShape->getFillProperties() );
return true; return true;
} }
......
...@@ -328,7 +328,7 @@ void PPTShape::addShape( ...@@ -328,7 +328,7 @@ void PPTShape::addShape(
} else } else
setMasterTextListStyle( aMasterTextListStyle ); 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 ) ) if ( !rSlidePersist.isMasterPage() && rSlidePersist.getPage().is() && ( (sal_Int32)mnSubType == XML_title ) )
{ {
try try
......
...@@ -136,7 +136,7 @@ void SlidePersist::createXShapes( XmlFilterBase& rFilterBase ) ...@@ -136,7 +136,7 @@ void SlidePersist::createXShapes( XmlFilterBase& rFilterBase )
if ( pPPTShape ) if ( pPPTShape )
pPPTShape->addShape( rFilterBase, *this, getTheme().get(), xShapes, aTransformation, 0, &getShapeMap() ); pPPTShape->addShape( rFilterBase, *this, getTheme().get(), xShapes, aTransformation, 0, &getShapeMap() );
else else
(*aChildIter)->addShape( rFilterBase, getTheme().get(), xShapes, aTransformation, 0, &getShapeMap() ); (*aChildIter)->addShape( rFilterBase, getTheme().get(), xShapes, aTransformation, maShapesPtr->getFillProperties(), 0, &getShapeMap() );
aChildIter++; aChildIter++;
} }
} }
......
...@@ -290,7 +290,7 @@ ShapeContextHandler::getShape() throw (uno::RuntimeException) ...@@ -290,7 +290,7 @@ ShapeContextHandler::getShape() throw (uno::RuntimeException)
basegfx::B2DHomMatrix aMatrix; basegfx::B2DHomMatrix aMatrix;
if (mpShape->getExtDrawings().size() == 0) if (mpShape->getExtDrawings().size() == 0)
{ {
mpShape->addShape( *mxFilterBase, mpThemePtr.get(), xShapes, aMatrix ); mpShape->addShape( *mxFilterBase, mpThemePtr.get(), xShapes, aMatrix, mpShape->getFillProperties() );
xResult = mpShape->getXShape(); xResult = mpShape->getXShape();
} }
else else
...@@ -302,7 +302,7 @@ ShapeContextHandler::getShape() throw (uno::RuntimeException) ...@@ -302,7 +302,7 @@ ShapeContextHandler::getShape() throw (uno::RuntimeException)
OUString aFragmentPath(pDiagramGraphicDataContext->getFragmentPathFromRelId(*aIt)); OUString aFragmentPath(pDiagramGraphicDataContext->getFragmentPathFromRelId(*aIt));
oox::drawingml::ShapePtr pShapePtr( new Shape( "com.sun.star.drawing.GroupShape" ) ); oox::drawingml::ShapePtr pShapePtr( new Shape( "com.sun.star.drawing.GroupShape" ) );
mxFilterBase->importFragment(new ShapeDrawingFragmentHandler(*mxFilterBase, aFragmentPath, pShapePtr)); 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(); xResult = pShapePtr->getXShape();
} }
mpShape.reset((Shape*)0); mpShape.reset((Shape*)0);
...@@ -312,7 +312,7 @@ ShapeContextHandler::getShape() throw (uno::RuntimeException) ...@@ -312,7 +312,7 @@ ShapeContextHandler::getShape() throw (uno::RuntimeException)
else if (mpShape.get() != NULL) else if (mpShape.get() != NULL)
{ {
basegfx::B2DHomMatrix aTransformation; basegfx::B2DHomMatrix aTransformation;
mpShape->addShape(*mxFilterBase, mpThemePtr.get(), xShapes, aTransformation); mpShape->addShape(*mxFilterBase, mpThemePtr.get(), xShapes, aTransformation, mpShape->getFillProperties() );
xResult.set(mpShape->getXShape()); xResult.set(mpShape->getXShape());
mxGraphicShapeContext.clear( ); mxGraphicShapeContext.clear( );
} }
......
...@@ -281,7 +281,7 @@ void DrawingFragment::onEndElement() ...@@ -281,7 +281,7 @@ void DrawingFragment::onEndElement()
mxShape->setSize(Size(aShapeRectEmu.Width, aShapeRectEmu.Height)); mxShape->setSize(Size(aShapeRectEmu.Width, aShapeRectEmu.Height));
basegfx::B2DHomMatrix aTransformation; 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 /* Collect all shape positions in the WorksheetHelper base
class. But first, scale EMUs to 1/100 mm. */ class. But first, scale EMUs to 1/100 mm. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment