diff options
author | Grzegorz Araminowicz <g.araminowicz@gmail.com> | 2017-06-23 15:11:08 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2017-06-26 10:18:18 +0200 |
commit | 603a8414454ab963b5907085d6642dcfd432ce34 (patch) | |
tree | 3d55fc22ecee9873ea217237f3f7d4505f2f2df5 | |
parent | 2bdfeb0b0973ebb7c4d9c410e22df2a56deef5bc (diff) |
SmartArt: layout diagram
Change-Id: I854703ea3cb09ace2d0b01a47d9f07bb7a98b70e
Reviewed-on: https://gerrit.libreoffice.org/39172
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r-- | oox/source/drawingml/diagram/diagram.cxx | 2 | ||||
-rw-r--r-- | oox/source/drawingml/diagram/diagramlayoutatoms.cxx | 16 |
2 files changed, 13 insertions, 5 deletions
diff --git a/oox/source/drawingml/diagram/diagram.cxx b/oox/source/drawingml/diagram/diagram.cxx index a72988627602..3272e47da5fe 100644 --- a/oox/source/drawingml/diagram/diagram.cxx +++ b/oox/source/drawingml/diagram/diagram.cxx @@ -317,6 +317,8 @@ void Diagram::addTo( const ShapePtr & pParentShape ) // collect data, init maps build( ); + pParentShape->setChildSize(pParentShape->getSize()); + // create Shape hierarchy ShapeCreationVisitor aCreationVisitor(pParentShape, *this); if( mpLayout->getNode() ) diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx index 46510dee0126..d77020ad7ab7 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx @@ -271,6 +271,7 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, break; case XML_lin: + case XML_snake: { if( rShape->getChildren().empty() ) { @@ -300,8 +301,8 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, aCurrPos.Y + sz.Height); // HACK: the spacing is arbitrary - aCurrPos.X += nIncX*(sz.Width+5); - aCurrPos.Y += nIncY*(sz.Height+5); + aCurrPos.X += nIncX*(sz.Width+50); + aCurrPos.Y += nIncY*(sz.Height+50); ++aCurrShape; } @@ -311,7 +312,6 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, } case XML_pyra: - case XML_snake: break; case XML_sp: @@ -331,8 +331,8 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, // HACK - count chars & paragraphs to come up with *some* // notion of necessary size - const sal_Int32 nHackyFontHeight=50; - const sal_Int32 nHackyFontWidth=20; + const sal_Int32 nHackyFontHeight=500; + const sal_Int32 nHackyFontWidth=400; awt::Size aTotalSize; for( size_t nPara=0; nPara<pTextBody->getParagraphs().size(); ++nPara ) { @@ -489,6 +489,12 @@ bool LayoutNode::setupShape( const ShapePtr& rShape, const Diagram& rDgm, sal_uI rShape->getShapeStyleRefs()[XML_fontRef].maPhClr = rColor.maTextFillColor; } } + else + { + // if no style label apply at least some fill color + rShape->getShapeStyleRefs()[XML_fillRef].maPhClr.setScrgbClr(0, 0, 0); + rShape->getShapeStyleRefs()[XML_fillRef].mnThemedIdx = 2; + } // even if no data node found, successful anyway. it's // contained at the layoutnode |