diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2020-05-22 17:58:22 +0200 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-05-29 16:33:44 +0200 |
commit | 50d004fc8fe2c44516c52d22b40a221e8e3b587d (patch) | |
tree | e43d6afef727c87f0ec58cb830961798188ea791 /oox/source/drawingml/diagram/diagram.hxx | |
parent | 03fe7a259e71d1c3f5190652649f9d4a6f75b4b7 (diff) |
smartart import: handle multiple <a:schemeClr> in <dgm:fillClrLst>
The TODO in the ColorFragmentHandler ctor was right: we only handled the
last <a:schemeClr> child, but there can be multiple one.
Use them based on the index of a shape in a <dgm:forEach> loop.
Move the TODO to the only place which still assumes a single color in
the color list.
(cherry picked from commit 12bea6c897822964ad4705418da54411cb15749e)
Conflicts:
oox/source/drawingml/colorchoicecontext.cxx
oox/source/drawingml/diagram/diagram.cxx
sd/qa/unit/import-tests-smartart.cxx
Change-Id: I1c5c4f82e621f1110ef06b0490ff79f82f60f214
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95015
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'oox/source/drawingml/diagram/diagram.hxx')
-rw-r--r-- | oox/source/drawingml/diagram/diagram.hxx | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/oox/source/drawingml/diagram/diagram.hxx b/oox/source/drawingml/diagram/diagram.hxx index 576c4007e29f..a674e248961e 100644 --- a/oox/source/drawingml/diagram/diagram.hxx +++ b/oox/source/drawingml/diagram/diagram.hxx @@ -22,6 +22,7 @@ #include <map> #include <memory> +#include <vector> #include <rtl/ustring.hxx> @@ -111,12 +112,15 @@ typedef std::map<OUString,DiagramStyle> DiagramQStyleMap; struct DiagramColor { - oox::drawingml::Color maFillColor; - oox::drawingml::Color maLineColor; - oox::drawingml::Color maEffectColor; - oox::drawingml::Color maTextFillColor; - oox::drawingml::Color maTextLineColor; - oox::drawingml::Color maTextEffectColor; + std::vector<oox::drawingml::Color> maFillColors; + std::vector<oox::drawingml::Color> maLineColors; + std::vector<oox::drawingml::Color> maEffectColors; + std::vector<oox::drawingml::Color> maTextFillColors; + std::vector<oox::drawingml::Color> maTextLineColors; + std::vector<oox::drawingml::Color> maTextEffectColors; + + static const oox::drawingml::Color& + getColorByIndex(const std::vector<oox::drawingml::Color>& rColors, sal_Int32 nIndex); }; typedef std::map<OUString,DiagramColor> DiagramColorMap; |