summaryrefslogtreecommitdiff
path: root/oox/source/drawingml
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/drawingml')
-rw-r--r--oox/source/drawingml/textparagraph.cxx7
-rw-r--r--oox/source/drawingml/textparagraphproperties.cxx19
2 files changed, 21 insertions, 5 deletions
diff --git a/oox/source/drawingml/textparagraph.cxx b/oox/source/drawingml/textparagraph.cxx
index 1b599a6668e0..1119652fb155 100644
--- a/oox/source/drawingml/textparagraph.cxx
+++ b/oox/source/drawingml/textparagraph.cxx
@@ -108,15 +108,16 @@ void TextParagraph::insertAt(
float fCharacterSize = nCharHeight > 0 ? GetFontHeight( nCharHeight ) : 18;
if ( pTextParagraphStyle.get() )
{
- pTextParagraphStyle->pushToPropSet( &rFilterBase, xProps, aioBulletList, NULL, sal_True, fCharacterSize, true );
+ TextParagraphProperties aParaProp;
+ aParaProp.apply( *pTextParagraphStyle );
+ aParaProp.apply( maProperties );
+ aParaProp.pushToPropSet( &rFilterBase, xProps, aioBulletList, &pTextParagraphStyle->getBulletList(), sal_True, fCharacterSize, true );
fCharacterSize = pTextParagraphStyle->getCharHeightPoints( fCharacterSize );
// bullets have same color as following texts by default
if( !aioBulletList.hasProperty( PROP_BulletColor ) && maRuns.size() > 0
&& (*maRuns.begin())->getTextCharacterProperties().maCharColor.isUsed() )
aioBulletList[ PROP_BulletColor ] <<= (*maRuns.begin())->getTextCharacterProperties().maCharColor.getColor( rFilterBase.getGraphicHelper() );
-
- maProperties.pushToPropSet( &rFilterBase, xProps, aioBulletList, &pTextParagraphStyle->getBulletList(), sal_True, fCharacterSize );
}
// empty paragraphs do not have bullets in ppt
diff --git a/oox/source/drawingml/textparagraphproperties.cxx b/oox/source/drawingml/textparagraphproperties.cxx
index 3cd0bbaad37a..350d09affd68 100644
--- a/oox/source/drawingml/textparagraphproperties.cxx
+++ b/oox/source/drawingml/textparagraphproperties.cxx
@@ -26,6 +26,7 @@
#include <com/sun/star/awt/XBitmap.hpp>
#include <com/sun/star/graphic/XGraphic.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/style/TabStop.hpp>
#include "oox/helper/helper.hxx"
#include "oox/helper/propertyset.hxx"
@@ -418,12 +419,15 @@ void TextParagraphProperties::pushToPropSet( const ::oox::core::XmlFilterBase* p
if ( noParaLeftMargin )
{
rioBulletMap[ PROP_LeftMargin ] <<= static_cast< sal_Int32 >( *noParaLeftMargin );
- noParaLeftMargin = boost::optional< sal_Int32 >( 0 );
+ noParaLeftMargin = boost::none;
}
if ( noFirstLineIndentation )
{
+ // Force Paragraph property as zero - impress seems to use the value from previous
+ // (non) bullet line if not set to zero explicitly :(
+ aPropSet.setProperty( PROP_ParaFirstLineIndent, 0 );
rioBulletMap[ PROP_FirstLineOffset ] <<= static_cast< sal_Int32 >( *noFirstLineIndentation );
- noFirstLineIndentation = boost::optional< sal_Int32 >( 0 );
+ noFirstLineIndentation = boost::none;
}
if ( nNumberingType != NumberingType::BITMAP && !rioBulletMap.hasProperty( PROP_BulletColor ) && pFilterBase )
rioBulletMap[ PROP_BulletColor ] <<= static_cast< sal_Int32 >( maTextCharacterProperties.maCharColor.getColor( pFilterBase->getGraphicHelper()));
@@ -459,7 +463,18 @@ void TextParagraphProperties::pushToPropSet( const ::oox::core::XmlFilterBase* p
if ( noParaLeftMargin )
aPropSet.setProperty( PROP_ParaLeftMargin, sal_Int32( *noParaLeftMargin ) );
if ( noFirstLineIndentation )
+ {
aPropSet.setProperty( PROP_ParaFirstLineIndent, *noFirstLineIndentation );
+ if( bPushDefaultValues )
+ {
+ // Reset TabStops - these would be auto calculated by Impress
+ TabStop aTabStop;
+ aTabStop.Position = 0;
+ Sequence< TabStop > aSeq(1);
+ aSeq[0] = aTabStop;
+ aPropSet.setProperty( PROP_ParaTabStops, aSeq );
+ }
+ }
}
float TextParagraphProperties::getCharHeightPoints( float fDefault ) const