diff options
author | Grzegorz Araminowicz <grzegorz.araminowicz@collabora.com> | 2019-06-04 13:51:40 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2019-06-15 07:36:33 +0200 |
commit | c3e0d46062c6b37dfa74b6b388767c61912145f4 (patch) | |
tree | bad40bb54cc0f19d4e976aef339a90748f4609d6 /oox | |
parent | 4ca3ac84912ab387b27d3f6c1a288a1ba12eb730 (diff) |
SmartArt: bullet list improvements
by default start bullet list at second level
use stBulletLvl parameter to change this behaviour
Change-Id: I5084e7bf1902fdca83bea6d57a8c1f37dd2e65be
Reviewed-on: https://gerrit.libreoffice.org/73440
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/74086
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/drawingml/diagram/diagramlayoutatoms.cxx | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx index d7d6fda1e1e0..a4b80548e3dd 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx @@ -1196,27 +1196,30 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, nBaseLevel = aParagraph->getProperties().getLevel(); } + // Start bullets at: + // 1 - top level + // 2 - with children (default) + int nStartBulletsAtLevel = 2; ParamMap::const_iterator aBulletLvl = maMap.find(XML_stBulletLvl); - int nStartBulletsAtLevel = 0; if (aBulletLvl != maMap.end()) - { - nBaseLevel -= aBulletLvl->second; nStartBulletsAtLevel = aBulletLvl->second; - } + nStartBulletsAtLevel--; + bool isBulletList = false; for (auto & aParagraph : pTextBody->getParagraphs()) { - sal_Int32 nLevel = aParagraph->getProperties().getLevel(); - aParagraph->getProperties().setLevel(nLevel - nBaseLevel); - if (nStartBulletsAtLevel > 0 && nLevel >= nStartBulletsAtLevel) + sal_Int32 nLevel = aParagraph->getProperties().getLevel() - nBaseLevel; + aParagraph->getProperties().setLevel(nLevel); + if (nLevel >= nStartBulletsAtLevel) { // It is not possible to change the bullet style for text. - sal_Int32 nLeftMargin = 285750 * (nLevel - nStartBulletsAtLevel) / EMU_PER_HMM; + sal_Int32 nLeftMargin = 285750 * (nLevel - nStartBulletsAtLevel + 1) / EMU_PER_HMM; aParagraph->getProperties().getParaLeftMargin() = nLeftMargin; aParagraph->getProperties().getFirstLineIndentation() = -285750 / EMU_PER_HMM; OUString aBulletChar = OUString::fromUtf8(u8"•"); aParagraph->getProperties().getBulletList().setBulletChar(aBulletChar); aParagraph->getProperties().getBulletList().setSuffixNone(); + isBulletList = true; } } @@ -1229,8 +1232,7 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, for (auto & aParagraph : pTextBody->getParagraphs()) aParagraph->getProperties().setParaAdjust(aAlignment); } - else if (std::all_of(pTextBody->getParagraphs().begin(), pTextBody->getParagraphs().end(), - [](const std::shared_ptr<TextParagraph>& aParagraph) { return aParagraph->getProperties().getLevel() == 0; })) + else if (!isBulletList) { // if not list use default alignment - centered for (auto & aParagraph : pTextBody->getParagraphs()) |