summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorGrzegorz Araminowicz <grzegorz.araminowicz@collabora.com>2019-06-04 13:51:40 +0200
committerAndras Timar <andras.timar@collabora.com>2019-06-15 07:36:33 +0200
commitc3e0d46062c6b37dfa74b6b388767c61912145f4 (patch)
treebad40bb54cc0f19d4e976aef339a90748f4609d6 /oox
parent4ca3ac84912ab387b27d3f6c1a288a1ba12eb730 (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.cxx22
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())