chart2/source/controller/dialogs/dlg_ObjectProperties.cxx |    2 -
 chart2/source/view/main/ChartView.cxx                     |   14 ++-----
 sw/qa/extras/layout/data/tdf133005.odt                    |binary
 sw/qa/extras/layout/layout.cxx                            |   26 ++++++++++++++
 4 files changed, 31 insertions(+), 11 deletions(-)

New commits:
commit ed2c880a691a0b179bbc92a8ce4ee49eac004035
Author:     Tünde Tóth <tund...@gmail.com>
AuthorDate: Thu May 21 10:20:43 2020 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Mon May 25 13:41:49 2020 +0200

    tdf#133005 Chart: fix ODF import of date axis position
    
    Chart with date axis setting "On tick marks" wasn't
    imported correctly.
    
    See commit 40d83914d43f60a196dfabddea0b52e2046b333a
    (tdf#127792 implement UNO chart attribute MajorOrigin)
    
    Change-Id: I5967c4bab8690df1f191b33ecb0e5b043bca68a9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94621
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx 
b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
index 57375c33bfee..1add0435b0bc 100644
--- a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
+++ b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
@@ -191,7 +191,7 @@ void ObjectPropertiesDialogParameter::init( const 
uno::Reference< frame::XModel
                     if( nDimensionIndex==1 && nAxisIndex==1 && 
ChartTypeHelper::isSupportingBaseValue( xChartType ) )
                         m_bShowAxisOrigin = true;
 
-                    if ( nDimensionIndex == 0 && aData.AxisType == 
chart2::AxisType::CATEGORY )
+                    if ( nDimensionIndex == 0 && ( aData.AxisType == 
chart2::AxisType::CATEGORY || aData.AxisType == chart2::AxisType::DATE ) )
                     {
                         ChartModel* pModel = 
dynamic_cast<ChartModel*>(xChartModel.get());
                         if (pModel)
diff --git a/chart2/source/view/main/ChartView.cxx 
b/chart2/source/view/main/ChartView.cxx
index bc9d7a18d1d3..d3b0e8832e36 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -628,19 +628,13 @@ void 
SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(
 bool SeriesPlotterContainer::isCategoryPositionShifted(
     const chart2::ScaleData& rSourceScale, bool bHasComplexCategories )
 {
-    if (rSourceScale.AxisType == AxisType::CATEGORY && 
rSourceScale.ShiftedCategoryPosition)
-        return true;
-
-    if (rSourceScale.AxisType == AxisType::CATEGORY && bHasComplexCategories)
-        return true;
+    if (rSourceScale.AxisType == AxisType::CATEGORY)
+        return bHasComplexCategories || rSourceScale.ShiftedCategoryPosition;
 
     if (rSourceScale.AxisType == AxisType::DATE)
-        return true;
+        return rSourceScale.ShiftedCategoryPosition;
 
-    if (rSourceScale.AxisType == AxisType::SERIES)
-        return true;
-
-    return false;
+    return rSourceScale.AxisType == AxisType::SERIES;
 }
 
 void SeriesPlotterContainer::initAxisUsageList(const Date& rNullDate)
diff --git a/sw/qa/extras/layout/data/tdf133005.odt 
b/sw/qa/extras/layout/data/tdf133005.odt
new file mode 100644
index 000000000000..660112d66712
Binary files /dev/null and b/sw/qa/extras/layout/data/tdf133005.odt differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 853d6b997381..adac583c8ed2 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -2347,6 +2347,32 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf123268)
                 41);
 }
 
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf133005)
+{
+    SwDoc* pDoc = createDoc("tdf133005.odt");
+    SwDocShell* pShell = pDoc->GetDocShell();
+
+    // Dump the rendering of the first page as an XML file.
+    std::shared_ptr<GDIMetaFile> xMetaFile = pShell->GetPreviewMetaFile();
+    MetafileXmlDump dumper;
+    xmlDocUniquePtr pXmlDoc = dumpAndParse(dumper, *xMetaFile);
+    CPPUNIT_ASSERT(pXmlDoc);
+
+    sal_Int32 nXChartWall = getXPath(pXmlDoc,
+                                     
"/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/"
+                                     "push[1]/push[1]/polyline[1]/point[2]",
+                                     "x")
+                                .toInt32();
+    sal_Int32 nXColumn = getXPath(pXmlDoc,
+                                  
"/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/"
+                                  
"push[1]/push[42]/polypolygon/polygon/point[1]",
+                                  "x")
+                             .toInt32();
+
+    // This failed, if the value axis doesn't appear inside category.
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(nXChartWall, nXColumn, 5);
+}
+
 CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf115630)
 {
     SwDoc* pDoc = createDoc("tdf115630.docx");
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to