From 74a22d42753350039ee8fcdb5e6df1e0807c0cca Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Mon, 7 Jul 2014 13:26:23 -0400 Subject: [PATCH 004/137] Adjust for the splitting of number format properties in chart. Since 1d38cb365543924f9c50014e6b2227e77de1d0c9, "number format" and "link number format to source" properties are 2 separate properties. Adjust OOXML import code for that split. Also, always set axis' number format via NumberFormat property even when it's a percent format. The axis object doesn't keep a non-percent and percent number formats separately. Change-Id: I8667b6f1a78d88cc37d059518919ad1b37f154e1 (cherry picked from commit af5a6615dfdbe5c2cacdcacb00fc6f418b925c06) (cherry picked from commit 29d5f3db525e275c62cd2eafb18899fe68198ea3) Signed-off-by: Andras Timar --- oox/source/drawingml/chart/axisconverter.cxx | 8 +------- oox/source/drawingml/chart/objectformatter.cxx | 8 +++----- oox/source/token/properties.txt | 1 + 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index da1a732..f290992 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -307,13 +307,7 @@ void AxisConverter::convertFromModel( const Reference< XCoordinateSystem >& rxCo // number format ------------------------------------------------------ if( (aScaleData.AxisType == cssc2::AxisType::REALNUMBER) || (aScaleData.AxisType == cssc2::AxisType::PERCENT) ) - { - bool bPercent = false; - if( mrModel.maNumberFormat.maFormatCode.indexOf('%') >= 0) - bPercent = true; - mrModel.maNumberFormat.mbSourceLinked = false; - getFormatter().convertNumberFormat( aAxisProp, mrModel.maNumberFormat, bPercent ); - } + getFormatter().convertNumberFormat(aAxisProp, mrModel.maNumberFormat, false); // position of crossing axis ------------------------------------------ diff --git a/oox/source/drawingml/chart/objectformatter.cxx b/oox/source/drawingml/chart/objectformatter.cxx index a69dae0..b5b0a5b 100644 --- a/oox/source/drawingml/chart/objectformatter.cxx +++ b/oox/source/drawingml/chart/objectformatter.cxx @@ -1111,11 +1111,7 @@ void ObjectFormatter::convertNumberFormat( PropertySet& rPropSet, const NumberFo if( mxData->mxNumFmts.is() ) { sal_Int32 nPropId = bPercentFormat ? PROP_PercentageNumberFormat : PROP_NumberFormat; - if( rNumberFormat.mbSourceLinked || rNumberFormat.maFormatCode.isEmpty() ) - { - rPropSet.setAnyProperty( nPropId, Any() ); - } - else try + try { sal_Int32 nIndex = rNumberFormat.maFormatCode.equalsIgnoreAsciiCase("general") ? mxData->mxNumTypes->getStandardIndex( mxData->maFromLocale ) : @@ -1128,6 +1124,8 @@ void ObjectFormatter::convertNumberFormat( PropertySet& rPropSet, const NumberFo OSL_FAIL( OStringBuffer( "ObjectFormatter::convertNumberFormat - cannot create number format '" ). append( OUStringToOString( rNumberFormat.maFormatCode, osl_getThreadTextEncoding() ) ).append( '\'' ).getStr() ); } + + rPropSet.setProperty(PROP_LinkNumberFormatToSource, makeAny(rNumberFormat.mbSourceLinked)); } } diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt index b0001e3..6d384b8 100644 --- a/oox/source/token/properties.txt +++ b/oox/source/token/properties.txt @@ -291,6 +291,7 @@ LineStartWidth LineStyle LineTransparence LineWidth +LinkNumberFormatToSource LinkURL LoadReadonly LookUpLabels -- 1.9.3