summaryrefslogtreecommitdiff
path: root/oox/source
diff options
context:
space:
mode:
authorTamás Zolnai <tamas.zolnai@collabora.com>2018-02-14 02:15:54 +0100
committerTamás Zolnai <tamas.zolnai@collabora.com>2018-02-14 04:08:46 +0100
commit53551d49d3be2301985f2cf2d8bb23ff374ecfd1 (patch)
tree6c9c0b00cde12b4fe60a3d1bd5a2724563040b3c /oox/source
parentd0aca687f654eff81b86540007e7c8606ab00e1f (diff)
tdf#51340: Line spacing is imported incorrectly from PPTX
Move the line spacing member to the TextParagraphProperties class which is used to do the inheritance from master / layout slides. Change-Id: I0bf92420963163eae78e06ebc7fdfa1f2c72fdf8 Reviewed-on: https://gerrit.libreoffice.org/49692 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Diffstat (limited to 'oox/source')
-rw-r--r--oox/source/drawingml/textparagraphproperties.cxx11
-rw-r--r--oox/source/drawingml/textparagraphpropertiescontext.cxx17
2 files changed, 20 insertions, 8 deletions
diff --git a/oox/source/drawingml/textparagraphproperties.cxx b/oox/source/drawingml/textparagraphproperties.cxx
index c36912bb9dca..8f4e635db48c 100644
--- a/oox/source/drawingml/textparagraphproperties.cxx
+++ b/oox/source/drawingml/textparagraphproperties.cxx
@@ -388,6 +388,8 @@ void TextParagraphProperties::apply( const TextParagraphProperties& rSourceProps
mnLevel = rSourceProps.mnLevel;
if( rSourceProps.moParaAdjust )
moParaAdjust = rSourceProps.moParaAdjust;
+ if( rSourceProps.maLineSpacing.bHasValue )
+ maLineSpacing = rSourceProps.maLineSpacing;
}
void TextParagraphProperties::pushToPropSet( const ::oox::core::XmlFilterBase* pFilterBase,
@@ -486,6 +488,15 @@ void TextParagraphProperties::pushToPropSet( const ::oox::core::XmlFilterBase* p
{
aPropSet.setProperty( PROP_ParaAdjust, css::style::ParagraphAdjust_LEFT);
}
+
+ if ( maLineSpacing.bHasValue )
+ {
+ aPropSet.setProperty( PROP_ParaLineSpacing, maLineSpacing.toLineSpacing());
+ }
+ else
+ {
+ aPropSet.setProperty( PROP_ParaLineSpacing, css::style::LineSpacing( css::style::LineSpacingMode::PROP, 100 ));
+ }
}
float TextParagraphProperties::getCharHeightPoints( float fDefault ) const
diff --git a/oox/source/drawingml/textparagraphpropertiescontext.cxx b/oox/source/drawingml/textparagraphpropertiescontext.cxx
index fdc9c3f210a9..5cf1750dec4e 100644
--- a/oox/source/drawingml/textparagraphpropertiescontext.cxx
+++ b/oox/source/drawingml/textparagraphpropertiescontext.cxx
@@ -133,8 +133,8 @@ TextParagraphPropertiesContext::TextParagraphPropertiesContext( ContextHandler2H
TextParagraphPropertiesContext::~TextParagraphPropertiesContext()
{
PropertyMap& rPropertyMap( mrTextParagraphProperties.getTextParagraphPropertyMap() );
- if ( maLineSpacing.bHasValue )
- rPropertyMap.setProperty( PROP_ParaLineSpacing, maLineSpacing.toLineSpacing());
+ if ( mrTextParagraphProperties.getLineSpacing().bHasValue )
+ rPropertyMap.setProperty( PROP_ParaLineSpacing, mrTextParagraphProperties.getLineSpacing().toLineSpacing());
else
rPropertyMap.setProperty( PROP_ParaLineSpacing, css::style::LineSpacing( css::style::LineSpacingMode::PROP, 100 ));
@@ -166,7 +166,7 @@ ContextHandlerRef TextParagraphPropertiesContext::onCreateContext( sal_Int32 aEl
switch( aElementToken )
{
case A_TOKEN( lnSpc ): // CT_TextSpacing
- return new TextSpacingContext( *this, maLineSpacing );
+ return new TextSpacingContext( *this, mrTextParagraphProperties.getLineSpacing() );
case A_TOKEN( spcBef ): // CT_TextSpacing
return new TextSpacingContext( *this, mrTextParagraphProperties.getParaTopMargin() );
case A_TOKEN( spcAft ): // CT_TextSpacing
@@ -315,17 +315,18 @@ ContextHandlerRef TextParagraphPropertiesContext::onCreateContext( sal_Int32 aEl
OptValue<sal_Int32> oLineSpacing = rAttribs.getInteger(W_TOKEN(line));
if (oLineSpacing.has())
{
+ TextSpacing& rLineSpacing = mrTextParagraphProperties.getLineSpacing();
if( !oLineRule.has() || oLineRule.get() == "auto" )
{
- maLineSpacing.nUnit = TextSpacing::Unit::Percent;
- maLineSpacing.nValue = oLineSpacing.get() * MAX_PERCENT / 240;
+ rLineSpacing.nUnit = TextSpacing::Unit::Percent;
+ rLineSpacing.nValue = oLineSpacing.get() * MAX_PERCENT / 240;
}
else
{
- maLineSpacing.nUnit = TextSpacing::Unit::Points;
- maLineSpacing.nValue = TWIPS_TO_MM(oLineSpacing.get());
+ rLineSpacing.nUnit = TextSpacing::Unit::Points;
+ rLineSpacing.nValue = TWIPS_TO_MM(oLineSpacing.get());
}
- maLineSpacing.bHasValue = true;
+ rLineSpacing.bHasValue = true;
}
}
break;