Author: jsc
Date: Fri Jun 8 11:31:12 2012
New Revision: 1348027
URL: http://svn.apache.org/viewvc?rev=1348027&view=rev
Log:
119629: Bullet color is lost when open pptx sample file
fix: apply text's color to bullet color.
Patch By: companycy
Found By: zongdj
Review By: jsc
Modified:
incubator/ooo/trunk/main/oox/inc/oox/drawingml/textparagraphproperties.hxx
incubator/ooo/trunk/main/oox/source/drawingml/textparagraph.cxx
Modified:
incubator/ooo/trunk/main/oox/inc/oox/drawingml/textparagraphproperties.hxx
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/oox/inc/oox/drawingml/textparagraphproperties.hxx?rev=1348027&r1=1348026&r2=1348027&view=diff
==============================================================================
--- incubator/ooo/trunk/main/oox/inc/oox/drawingml/textparagraphproperties.hxx
(original)
+++ incubator/ooo/trunk/main/oox/inc/oox/drawingml/textparagraphproperties.hxx
Fri Jun 8 11:31:12 2012
@@ -90,6 +90,7 @@ public:
sal_Int16 getLevel( ) const { return mnLevel; }
PropertyMap& getTextParagraphPropertyMap() { return
maTextParagraphPropertyMap; }
BulletList& getBulletList() { return maBulletList;
}
+ const BulletList& getBulletList() const { return
maBulletList; }
TextCharacterProperties& getTextCharacterProperties() { return
maTextCharacterProperties; }
const TextCharacterProperties& getTextCharacterProperties() const {
return maTextCharacterProperties; }
Modified: incubator/ooo/trunk/main/oox/source/drawingml/textparagraph.cxx
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/oox/source/drawingml/textparagraph.cxx?rev=1348027&r1=1348026&r2=1348027&view=diff
==============================================================================
--- incubator/ooo/trunk/main/oox/source/drawingml/textparagraph.cxx (original)
+++ incubator/ooo/trunk/main/oox/source/drawingml/textparagraph.cxx Fri Jun 8
11:31:12 2012
@@ -46,6 +46,16 @@ TextParagraph::~TextParagraph()
{
}
+void lcl_getBulletclr(Color& bulletClr,
+ const TextRunVector& rRuns)
+{
+ // color of closest text in runs
+ if (rRuns.begin() != rRuns.end() &&
((*rRuns.begin())->getTextCharacterProperties()).maCharColor.isUsed())
+ {
+ bulletClr =
((*rRuns.begin())->getTextCharacterProperties()).maCharColor;
+ }
+}
+
void TextParagraph::insertAt(
const ::oox::core::XmlFilterBase& rFilterBase,
const Reference < XText > &xText,
@@ -101,6 +111,15 @@ void TextParagraph::insertAt(
pTextParagraphStyle->pushToPropSet( rFilterBase, xProps,
aioBulletList, NULL, sal_False, fCharacterSize );
fCharacterSize = pTextParagraphStyle->getCharHeightPoints( 18 );
}
+
+ // bullet color inherits from closest text
+ if (maProperties.getBulletList().maBulletColorPtr &&
!(maProperties.getBulletList().maBulletColorPtr)->isUsed())
+ {
+ Color bulletClr;
+ lcl_getBulletclr(bulletClr, maRuns);
+
(maProperties.getBulletList().maBulletColorPtr)->assignIfUsed(bulletClr);
+ }
+
maProperties.pushToPropSet( rFilterBase, xProps, aioBulletList,
&pTextParagraphStyle->getBulletList(), sal_True, fCharacterSize );
// empty paragraphs do not have bullets in ppt