diff options
author | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-07-29 21:43:41 +0200 |
---|---|---|
committer | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-07-29 22:38:05 +0200 |
commit | d742c0019435d0bc90c9342492583636099a057f (patch) | |
tree | 0f7de068930a28408977abe85aac95452b9fb6cc /oox | |
parent | 14b211478d2eded45f3e966e579a50c41325c216 (diff) |
tdf#109223: PPTX: Vertical flip of child shape is not imported correctly
Group shape level vertical flip is not handled well. Recent handling
of group shape's transformation makes it hard to import this attribute,
but we can import the right text direction at least.
Change-Id: Ib9e39e3dcb28a95fabc61c13152a3f7296fbd4c3
Reviewed-on: https://gerrit.libreoffice.org/40554
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/drawingml/shape.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx index 3368cd0c315a..ccc73d8b47c9 100644 --- a/oox/source/drawingml/shape.cxx +++ b/oox/source/drawingml/shape.cxx @@ -115,6 +115,7 @@ Shape::Shape( const sal_Char* pServiceName, bool bDefaultHeight ) , mnRotation( 0 ) , mbFlipH( false ) , mbFlipV( false ) +, mbInheritedTextFlipV(false) , mbHidden( false ) , mbHiddenMasterShape( false ) , mbLockedCanvas( false ) @@ -156,6 +157,7 @@ Shape::Shape( const ShapePtr& pSourceShape ) , mnRotation( pSourceShape->mnRotation ) , mbFlipH( pSourceShape->mbFlipH ) , mbFlipV( pSourceShape->mbFlipV ) +, mbInheritedTextFlipV(pSourceShape->mbInheritedTextFlipV) , mbHidden( pSourceShape->mbHidden ) , mbHiddenMasterShape( pSourceShape->mbHiddenMasterShape ) , mbLockedCanvas( pSourceShape->mbLockedCanvas ) @@ -312,6 +314,7 @@ void Shape::applyShapeReference( const Shape& rReferencedShape, bool bUseText ) mnRotation = rReferencedShape.mnRotation; mbFlipH = rReferencedShape.mbFlipH; mbFlipV = rReferencedShape.mbFlipV; + mbInheritedTextFlipV = rReferencedShape.mbInheritedTextFlipV; mbHidden = rReferencedShape.mbHidden; } @@ -385,6 +388,7 @@ void Shape::addChildren( std::vector< ShapePtr >::iterator aIter( rMaster.maChildren.begin() ); while( aIter != rMaster.maChildren.end() ) { (*aIter)->setMasterTextListStyle( mpMasterTextListStyle ); + (*aIter)->applyParentTextFlipV(mbInheritedTextFlipV != mbFlipV); (*aIter++)->addShape( rFilterBase, pTheme, rxShapes, aChildTransformation, getFillProperties(), pShapeMap ); } } @@ -1065,6 +1069,8 @@ Reference< XShape > const & Shape::createAndInsert( if( getTextBody() ) { sal_Int32 nTextRotateAngle = static_cast< sal_Int32 >( getTextBody()->getTextProperties().moRotation.get( 0 ) ); + if(mbInheritedTextFlipV) + nTextRotateAngle -= 180 * 60000; /* OOX measures text rotation clockwise in 1/60000th degrees, relative to the containing shape. setTextRotateAngle wants degrees anticlockwise. */ |