Blob Blame History Raw
From 74a22d42753350039ee8fcdb5e6df1e0807c0cca Mon Sep 17 00:00:00 2001
From: Kohei Yoshida <kohei.yoshida@collabora.com>
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 <andras.timar@collabora.com>
---
 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