chart2: for a data table we need to force shift category position

To be able to show the data table correctly we need to always
show the categories "between tick marks" as otherwise the table
columns wouldn't align correctly. This forces that the shift
position is always enabled.

Change-Id: Ia6a627931fcaba64f0f974faf1d8763405ad410d
diff --git a/chart2/source/view/main/SeriesPlotterContainer.cxx b/chart2/source/view/main/SeriesPlotterContainer.cxx
index 1eb6a64..9f2e4fb 100644
--- a/chart2/source/view/main/SeriesPlotterContainer.cxx
+++ b/chart2/source/view/main/SeriesPlotterContainer.cxx
@@ -170,6 +170,9 @@
         DBG_UNHANDLED_EXCEPTION("chart2");
     }
 
+    if (xDiagram->getDataTable().is())
+        m_bForceShiftPosition = true;
+
     //prepare for autoscaling and shape creation
     // - create plotter for charttypes (for each first scale group at each plotter, as they are independent)
     // - add series to plotter (thus each charttype can provide minimum and maximum values for autoscaling)
@@ -335,6 +338,9 @@
 bool SeriesPlotterContainer::isCategoryPositionShifted(const chart2::ScaleData& rSourceScale,
                                                        bool bHasComplexCategories)
 {
+    if (m_bForceShiftPosition)
+        return true;
+
     if (rSourceScale.AxisType == AxisType::CATEGORY)
         return bHasComplexCategories || rSourceScale.ShiftedCategoryPosition
                || m_bChartTypeUsesShiftedCategoryPositionPerDefault;
diff --git a/chart2/source/view/main/SeriesPlotterContainer.hxx b/chart2/source/view/main/SeriesPlotterContainer.hxx
index e34d07a..578f2ba 100644
--- a/chart2/source/view/main/SeriesPlotterContainer.hxx
+++ b/chart2/source/view/main/SeriesPlotterContainer.hxx
@@ -151,6 +151,7 @@
     sal_Int32 m_nMaxAxisIndex;
 
     bool m_bChartTypeUsesShiftedCategoryPositionPerDefault;
+    bool m_bForceShiftPosition = false;
     sal_Int32 m_nDefaultDateNumberFormat;
 };