summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2013-10-07 11:16:04 +0200
committerThorsten Behrens <thb@documentfoundation.org>2013-10-07 11:57:54 +0200
commit840a8573c8cebe67ddd3c9fe106c7dbd789bb334 (patch)
tree2762e0067fe735f3174dc4586492200d27e0be1c
parent49bae3b37fba86f9ca84a317d6c1dd7d41736eae (diff)
Fix fdo#70220 Superscript not imported from pptx.
Import works now, though EditEngine still fscks up font scaling - seems for CharEscapementHeight to work, there has to be reference, non-scaled text in the same portion ... Change-Id: I5505ae83bd6b700ebe8c3465beec40a4df2efb78
-rw-r--r--include/oox/drawingml/textcharacterproperties.hxx1
-rw-r--r--oox/source/drawingml/textcharacterproperties.cxx7
-rw-r--r--oox/source/drawingml/textcharacterpropertiescontext.cxx39
3 files changed, 23 insertions, 24 deletions
diff --git a/include/oox/drawingml/textcharacterproperties.hxx b/include/oox/drawingml/textcharacterproperties.hxx
index 99792fe7725d..2e519c95f5b8 100644
--- a/include/oox/drawingml/textcharacterproperties.hxx
+++ b/include/oox/drawingml/textcharacterproperties.hxx
@@ -46,6 +46,7 @@ struct TextCharacterProperties
OptValue< sal_Int32 > moHeight;
OptValue< sal_Int32 > moSpacing;
OptValue< sal_Int32 > moUnderline;
+ OptValue< sal_Int32 > moBaseline;
OptValue< sal_Int32 > moStrikeout;
OptValue< sal_Int32 > moCaseMap;
OptValue< bool > moBold;
diff --git a/oox/source/drawingml/textcharacterproperties.cxx b/oox/source/drawingml/textcharacterproperties.cxx
index 8a12c629bd8c..a8a880600976 100644
--- a/oox/source/drawingml/textcharacterproperties.cxx
+++ b/oox/source/drawingml/textcharacterproperties.cxx
@@ -22,6 +22,7 @@
#include <com/sun/star/awt/FontSlant.hpp>
#include <com/sun/star/awt/FontWeight.hpp>
#include <i18nlangtag/languagetag.hxx>
+#include <editeng/escapementitem.hxx>
#include "oox/helper/helper.hxx"
#include "oox/helper/propertyset.hxx"
#include "oox/core/xmlfilterbase.hxx"
@@ -52,6 +53,7 @@ void TextCharacterProperties::assignUsed( const TextCharacterProperties& rSource
moHeight.assignIfUsed( rSourceProps.moHeight );
moSpacing.assignIfUsed( rSourceProps.moSpacing );
moUnderline.assignIfUsed( rSourceProps.moUnderline );
+ moBaseline.assignIfUsed( rSourceProps.moBaseline );
moStrikeout.assignIfUsed( rSourceProps.moStrikeout );
moCaseMap.assignIfUsed( rSourceProps.moCaseMap );
moBold.assignIfUsed( rSourceProps.moBold );
@@ -114,6 +116,11 @@ void TextCharacterProperties::pushToPropMap( PropertyMap& rPropMap, const XmlFil
rPropMap[ PROP_CharStrikeout ] <<= GetFontStrikeout( moStrikeout.get( XML_noStrike ) );
rPropMap[ PROP_CharCaseMap ] <<= GetCaseMap( moCaseMap.get( XML_none ) );
+ if( !bUseOptional || moBaseline.has() ) {
+ rPropMap[ PROP_CharEscapement ] <<= sal_Int16(moBaseline.get( 0 ) / 1000);
+ rPropMap[ PROP_CharEscapementHeight ] <<= sal_Int8(DFLT_ESC_PROP);
+ }
+
if( !bUseOptional || moBold.has() ) {
float fWeight = moBold.get( false ) ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL;
rPropMap[ PROP_CharWeight ] <<= fWeight;
diff --git a/oox/source/drawingml/textcharacterpropertiescontext.cxx b/oox/source/drawingml/textcharacterpropertiescontext.cxx
index dfca590a62e5..a937dba392d2 100644
--- a/oox/source/drawingml/textcharacterpropertiescontext.cxx
+++ b/oox/source/drawingml/textcharacterpropertiescontext.cxx
@@ -52,36 +52,27 @@ TextCharacterPropertiesContext::TextCharacterPropertiesContext(
mrTextCharacterProperties.moUnderline = rAttribs.getToken( XML_u );
if ( rAttribs.hasAttribute( XML_strike ) )
mrTextCharacterProperties.moStrikeout = rAttribs.getToken( XML_strike );
+ if ( aAttribs.hasAttribute( XML_baseline ) )
+ mrTextCharacterProperties.moBaseline = aAttribs.getInteger( XML_baseline );
-// mrTextCharacterProperties.moCaseMap = rAttribs.getToken( XML_cap );
if ( rAttribs.hasAttribute( XML_b ) )
mrTextCharacterProperties.moBold = rAttribs.getBool( XML_b );
if ( rAttribs.hasAttribute( XML_i ) )
mrTextCharacterProperties.moItalic = rAttribs.getBool( XML_i );
-// TODO
-/* todo: we need to be able to iterate over the XFastAttributes
-
- // ST_TextNonNegativePoint
- const OUString sCharKerning( "CharKerning" );
- //case A_TOKEN( kern ):
-
- // ST_TextLanguageID
- OUString sAltLang = rAttribs.getString( XML_altLang ).get();
-
- case A_TOKEN( kumimoji ): // xsd:boolean
- break;
- case A_TOKEN( spc ): // ST_TextPoint
- case A_TOKEN( normalizeH ): // xsd:boolean
- case A_TOKEN( baseline ): // ST_Percentage
- case A_TOKEN( noProof ): // xsd:boolean
- case A_TOKEN( dirty ): // xsd:boolean
- case A_TOKEN( err ): // xsd:boolean
- case A_TOKEN( smtClean ): // xsd:boolean
- case A_TOKEN( smtId ): // xsd:unsignedInt
- break;
-*/
-
+ /* TODO / unhandled so far:
+ XML_cap
+ A_TOKEN( kern )
+ XML_altLang
+ A_TOKEN( kumimoji )
+ A_TOKEN( spc )
+ A_TOKEN( normalizeH )
+ A_TOKEN( noProof )
+ A_TOKEN( dirty )
+ A_TOKEN( err )
+ A_TOKEN( smtClean )
+ A_TOKEN( smtId )
+ */
}
TextCharacterPropertiesContext::~TextCharacterPropertiesContext()