[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - chart2/qa chart2/source oox/source

Gülşah Köse (via logerrit) logerrit at kemper.freedesktop.org
Tue Aug 25 14:06:30 UTC 2020


 chart2/qa/extras/chart2export.cxx                  |   11 -----------
 chart2/source/model/template/ChartTypeTemplate.cxx |    9 +--------
 chart2/source/tools/AxisHelper.cxx                 |    2 +-
 chart2/source/view/main/ChartView.cxx              |   17 ++++++++++++-----
 dev/null                                           |binary
 oox/source/drawingml/chart/axisconverter.cxx       |    2 ++
 6 files changed, 16 insertions(+), 25 deletions(-)

New commits:
commit 129a60db424e2599f22e8d4ecddb07f8a1624d46
Author:     Gülşah Köse <gulsah.kose at collabora.com>
AuthorDate: Tue Aug 25 16:08:12 2020 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Aug 25 16:05:55 2020 +0200

    Revert tdf#127777 fix due to reggression
    
    This reverts commit 111c260ab2883b7906f1a66e222dbf4dc3c58c4f.
    
    Change-Id: I60c54b506f6721f08a21ebcfb306f38dd9ebff62
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101328
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index cb9e4aa32df3..b1441268b31a 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -127,7 +127,6 @@ public:
     void testCombinedChartSecondaryAxisODS();
     void testCrossBetweenXLSX();
     void testCrossBetweenWithDeletedAxis();
-    void testCrossBetweenODS();
     void testAxisTitleRotationXLSX();
     void testAxisTitlePositionDOCX();
     void testAxisCrossBetweenXSLX();
@@ -243,7 +242,6 @@ public:
     CPPUNIT_TEST(testCombinedChartSecondaryAxisODS);
     CPPUNIT_TEST(testCrossBetweenXLSX);
     CPPUNIT_TEST(testCrossBetweenWithDeletedAxis);
-    CPPUNIT_TEST(testCrossBetweenODS);
     CPPUNIT_TEST(testAxisTitleRotationXLSX);
     CPPUNIT_TEST(testAxisTitlePositionDOCX);
     CPPUNIT_TEST(testAxisCrossBetweenXSLX);
@@ -2013,15 +2011,6 @@ void Chart2ExportTest::testCrossBetweenWithDeletedAxis()
     assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", "between");
 }
 
-void Chart2ExportTest::testCrossBetweenODS()
-{
-    // Original file was created with LibreOffice
-    load("/chart2/qa/extras/data/ods/", "test_CrossBetween.ods");
-    xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML");
-    CPPUNIT_ASSERT(pXmlDoc);
-    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", "between");
-}
-
 void Chart2ExportTest::testAxisTitleRotationXLSX()
 {
     load("/chart2/qa/extras/data/xlsx/", "axis_title_rotation.xlsx");
diff --git a/chart2/qa/extras/data/ods/test_CrossBetween.ods b/chart2/qa/extras/data/ods/test_CrossBetween.ods
deleted file mode 100644
index e59546b3d0cd..000000000000
Binary files a/chart2/qa/extras/data/ods/test_CrossBetween.ods and /dev/null differ
diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx b/chart2/source/model/template/ChartTypeTemplate.cxx
index afd9eb0f048a..03a12a13a5a2 100644
--- a/chart2/source/model/template/ChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ChartTypeTemplate.cxx
@@ -623,14 +623,7 @@ void ChartTypeTemplate::adaptScales(
                         aData.Categories = xCategories;
                         if(bSupportsCategories)
                         {
-                            Reference< XChartType > xChartType(getChartTypeForNewSeries(Sequence< Reference< XChartType > >()));
-                            if( aData.AxisType == AxisType::CATEGORY )
-                            {
-                                if( !m_aServiceName.endsWith("ColumnWithLine") )
-                                    aData.ShiftedCategoryPosition = ::chart::ChartTypeHelper::shiftCategoryPosAtXAxisPerDefault(xChartType);
-                                else
-                                    aData.ShiftedCategoryPosition = true;
-                            }
+                            Reference< XChartType > xChartType( getChartTypeForNewSeries(Sequence< Reference< XChartType > >() ));
                             bool bSupportsDates = ::chart::ChartTypeHelper::isSupportingDateAxis( xChartType, nDimensionX );
                             if( aData.AxisType != AxisType::CATEGORY && ( aData.AxisType != AxisType::DATE || !bSupportsDates) )
                             {
diff --git a/chart2/source/tools/AxisHelper.cxx b/chart2/source/tools/AxisHelper.cxx
index 6ec3d44f48d4..25d481bff352 100644
--- a/chart2/source/tools/AxisHelper.cxx
+++ b/chart2/source/tools/AxisHelper.cxx
@@ -73,7 +73,7 @@ ScaleData AxisHelper::createDefaultScale()
     ScaleData aScaleData;
     aScaleData.AxisType = chart2::AxisType::REALNUMBER;
     aScaleData.AutoDateAxis = true;
-    aScaleData.ShiftedCategoryPosition = false;
+    aScaleData.ShiftedCategoryPosition = false;//this is adapted in the view code currently
     Sequence< SubIncrement > aSubIncrements(1);
     aSubIncrements[0] = SubIncrement();
     aScaleData.IncrementData.SubIncrements = aSubIncrements;
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index f0f84a9783f2..0468ecf78642 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -324,8 +324,8 @@ public:
 
     void AdaptScaleOfYAxisWithoutAttachedSeries( ChartModel& rModel );
 
-    static bool isCategoryPositionShifted(
-        const chart2::ScaleData& rSourceScale, bool bHasComplexCategories );
+    bool isCategoryPositionShifted(
+        const chart2::ScaleData& rSourceScale, bool bHasComplexCategories, bool bShiftedCategoryPosition) const;
 
 private:
     /** A vector of series plotters.
@@ -349,12 +349,14 @@ private:
      */
     sal_Int32 m_nMaxAxisIndex;
 
+    bool m_bChartTypeUsesShiftedCategoryPositionPerDefault;
     sal_Int32 m_nDefaultDateNumberFormat;
 };
 
 SeriesPlotterContainer::SeriesPlotterContainer( std::vector< std::unique_ptr<VCoordinateSystem> >& rVCooSysList )
         : m_rVCooSysList( rVCooSysList )
         , m_nMaxAxisIndex(0)
+        , m_bChartTypeUsesShiftedCategoryPositionPerDefault(false)
         , m_nDefaultDateNumberFormat(0)
 {
 }
@@ -518,6 +520,9 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(
                 }
             }
 
+            if(nT==0)
+                m_bChartTypeUsesShiftedCategoryPositionPerDefault = ChartTypeHelper::shiftCategoryPosAtXAxisPerDefault( xChartType );
+
             bool bExcludingPositioning = DiagramHelper::getDiagramPositioningMode( xDiagram ) == DiagramPositioningMode_EXCLUDING;
             VSeriesPlotter* pPlotter = VSeriesPlotter::createSeriesPlotter( xChartType, nDimensionCount, bExcludingPositioning );
             if( !pPlotter )
@@ -626,9 +631,9 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(
 }
 
 bool SeriesPlotterContainer::isCategoryPositionShifted(
-    const chart2::ScaleData& rSourceScale, bool bHasComplexCategories )
+    const chart2::ScaleData& rSourceScale, bool bHasComplexCategories, bool bShiftedCategoryPosition) const
 {
-    if (rSourceScale.AxisType == AxisType::CATEGORY && rSourceScale.ShiftedCategoryPosition)
+    if (rSourceScale.AxisType == AxisType::CATEGORY && (m_bChartTypeUsesShiftedCategoryPositionPerDefault || bShiftedCategoryPosition))
         return true;
 
     if (rSourceScale.AxisType == AxisType::CATEGORY && bHasComplexCategories)
@@ -679,7 +684,9 @@ void SeriesPlotterContainer::initAxisUsageList(const Date& rNullDate)
                         AxisHelper::checkDateAxis( aSourceScale, pCatProvider, bDateAxisAllowed );
 
                     bool bHasComplexCat = pCatProvider && pCatProvider->hasComplexCategories() && bComplexCategoryAllowed;
-                    aSourceScale.ShiftedCategoryPosition = isCategoryPositionShifted(aSourceScale, bHasComplexCat);
+                    // Come from CrossBetween OOXML tag
+                    bool bShiftedCategoryPosition = aSourceScale.ShiftedCategoryPosition;
+                    aSourceScale.ShiftedCategoryPosition = isCategoryPositionShifted(aSourceScale, bHasComplexCat, bShiftedCategoryPosition);
 
                     m_aAxisUsageList[xAxis].aAutoScaling = ScaleAutomatism(aSourceScale, rNullDate);
                 }
diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx
index 86764b241e52..f0e65035dd7c 100644
--- a/oox/source/drawingml/chart/axisconverter.cxx
+++ b/oox/source/drawingml/chart/axisconverter.cxx
@@ -233,6 +233,8 @@ void AxisConverter::convertFromModel(
             case API_Y_AXIS:
                 OSL_ENSURE( mrModel.mnTypeId == C_TOKEN( valAx ), "AxisConverter::convertFromModel - unexpected axis model type (must: c:valAx)" );
                 aScaleData.AxisType = isPercent(rTypeGroups) ? cssc2::AxisType::PERCENT : cssc2::AxisType::REALNUMBER;
+                if( mrModel.mnCrossBetween != -1 )
+                    aScaleData.ShiftedCategoryPosition = mrModel.mnCrossBetween == XML_between;
             break;
             case API_Z_AXIS:
                 OSL_ENSURE( mrModel.mnTypeId == C_TOKEN( serAx ), "AxisConverter::convertFromModel - unexpected axis model type (must: c:serAx)" );


More information about the Libreoffice-commits mailing list