[Libreoffice-commits] core.git: Branch 'private/kohei/chart-bugs' - chart2/source

Kohei Yoshida kohei.yoshida at collabora.com
Tue Jun 17 16:37:48 PDT 2014


 chart2/source/tools/AxisHelper.cxx    |    8 ++++++--
 chart2/source/view/main/ChartView.cxx |    6 ++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

New commits:
commit 5761232368093e6b0a9a9b2860647be6470733cb
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue Jun 17 19:37:20 2014 -0400

    Set the number format code only when it changes.
    
    Otherwise the chart view would keep updating itself endlessly.
    
    Change-Id: I653ae396a48dd0fdcaa3ef308657509dac541594

diff --git a/chart2/source/tools/AxisHelper.cxx b/chart2/source/tools/AxisHelper.cxx
index c6ba570..acc7570 100644
--- a/chart2/source/tools/AxisHelper.cxx
+++ b/chart2/source/tools/AxisHelper.cxx
@@ -148,8 +148,11 @@ sal_Int32 AxisHelper::getExplicitNumberFormatKeyForAxis(
 
     bool bLinkToSource = true;
     xProp->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkToSource;
+    xProp->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormatKey;
 
-    if (bLinkToSource || !(xProp->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormatKey))
+    sal_Int32 nOldNumberFormat = nNumberFormatKey;
+
+    if (bLinkToSource)
     {
         bool bFormatSet = false;
         //check whether we have a percent scale -> use percent format
@@ -323,7 +326,8 @@ sal_Int32 AxisHelper::getExplicitNumberFormatKeyForAxis(
             }
         }
 
-        xProp->setPropertyValue(CHART_UNONAME_NUMFMT, uno::makeAny(nNumberFormatKey));
+        if (nOldNumberFormat != nNumberFormatKey)
+            xProp->setPropertyValue(CHART_UNONAME_NUMFMT, uno::makeAny(nNumberFormatKey));
     }
 
     return nNumberFormatKey;
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index a29c174..9142b3e 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -1877,7 +1877,9 @@ sal_Int32 ExplicitValueProvider::getExplicitNumberFormatKeyForDataLabel(
     }
     catch ( const beans::UnknownPropertyException& ) {}
 
-    if (bLinkToSource || !(xSeriesOrPointProp->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nFormat))
+    xSeriesOrPointProp->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nFormat;
+    sal_Int32 nOldFormat = nFormat;
+    if (bLinkToSource)
     {
         uno::Reference< chart2::XChartType > xChartType( DataSeriesHelper::getChartTypeOfSeries( xSeries, xDiagram ) );
 
@@ -1903,7 +1905,7 @@ sal_Int32 ExplicitValueProvider::getExplicitNumberFormatKeyForDataLabel(
             }
         }
 
-        if (nFormat >= 0)
+        if (nFormat >= 0 && nOldFormat != nFormat)
             xSeriesOrPointProp->setPropertyValue(CHART_UNONAME_NUMFMT, uno::makeAny(nFormat));
     }
 


More information about the Libreoffice-commits mailing list