chart2/source/view/axes/VAxisProperties.cxx            |   10 +++++++---
 chart2/source/view/axes/VAxisProperties.hxx            |    8 ++++++--
 chart2/source/view/axes/VCartesianCoordinateSystem.cxx |    5 ++++-
 chart2/source/view/axes/VPolarCoordinateSystem.cxx     |    6 +++++-
 oox/inc/drawingml/chart/datatablemodel.hxx             |    3 +++
 oox/source/drawingml/chart/datatablecontext.cxx        |    7 ++++++-
 oox/source/drawingml/chart/datatableconverter.cxx      |    3 +++
 7 files changed, 34 insertions(+), 8 deletions(-)

New commits:
commit 7077e688408210b32596cbac2f2202610094ddf3
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Mon May 16 16:19:39 2022 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Sun Jul 17 21:49:43 2022 +0200

    oox: support reading text and shape properties for a data table
    
    Change-Id: I740d3bd6af11457ecb54878be648ad1e22b9d4b8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137153
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/oox/inc/drawingml/chart/datatablemodel.hxx 
b/oox/inc/drawingml/chart/datatablemodel.hxx
index 5c7fe7901200..937dbb3c60a6 100644
--- a/oox/inc/drawingml/chart/datatablemodel.hxx
+++ b/oox/inc/drawingml/chart/datatablemodel.hxx
@@ -28,6 +28,9 @@ struct DataTableModel
     bool mbShowOutline : 1; /// Show outline
     bool mbShowKeys : 1;
 
+    ModelRef<Shape> mxShapeProp; /// frame formatting.
+    ModelRef<TextBody> mxTextProp; /// text formatting.
+
     DataTableModel()
         : mbShowHBorder(false)
         , mbShowVBorder(false)
diff --git a/oox/source/drawingml/chart/datatablecontext.cxx 
b/oox/source/drawingml/chart/datatablecontext.cxx
index 0813a6424312..c277dae5f4d6 100644
--- a/oox/source/drawingml/chart/datatablecontext.cxx
+++ b/oox/source/drawingml/chart/datatablecontext.cxx
@@ -18,7 +18,8 @@
  */
 
 #include <drawingml/chart/datatablecontext.hxx>
-
+#include <drawingml/shapepropertiescontext.hxx>
+#include <drawingml/textbodycontext.hxx>
 #include <drawingml/chart/plotareamodel.hxx>
 #include <oox/core/xmlfilterbase.hxx>
 #include <oox/helper/attributelist.hxx>
@@ -57,6 +58,10 @@ ContextHandlerRef 
DataTableContext::onCreateContext(sal_Int32 nElement,
                 case C_TOKEN(showKeys):
                     mrModel.mbShowKeys = rAttribs.getBool(XML_val, false);
                     break;
+                case C_TOKEN(spPr):
+                    return new ShapePropertiesContext(*this, 
mrModel.mxShapeProp.create());
+                case C_TOKEN(txPr):
+                    return new TextBodyContext(*this, 
mrModel.mxTextProp.create());
             }
             break;
     }
diff --git a/oox/source/drawingml/chart/datatableconverter.cxx 
b/oox/source/drawingml/chart/datatableconverter.cxx
index 3c477c5d7507..4e42b7468ebc 100644
--- a/oox/source/drawingml/chart/datatableconverter.cxx
+++ b/oox/source/drawingml/chart/datatableconverter.cxx
@@ -55,6 +55,9 @@ void 
DataTableConverter::convertFromModel(uno::Reference<chart2::XDiagram> const
             aPropSet.setProperty(PROP_Outline, mrModel.mbShowOutline);
         if (mrModel.mbShowKeys)
             aPropSet.setProperty(PROP_Keys, mrModel.mbShowKeys);
+
+        getFormatter().convertFormatting(aPropSet, mrModel.mxShapeProp, 
mrModel.mxTextProp,
+                                         OBJECTTYPE_DATATABLE);
     }
     catch (uno::Exception&)
     {
commit 6b481f8bb44a14ebbfe010476cf2ca3728e7d539
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Mon May 16 16:10:02 2022 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Sun Jul 17 21:49:32 2022 +0200

    chart2: add DataTable to AxisProperties, take account at rendering
    
    The Diagram model has the DataTable class, but now we need to
    take this into account at rendering. First add the DataTable to
    AxisProperties, to decide if the data table should be rendered or
    not.
    
    Change-Id: Ia18fcffccc632e4d36011544066072ae3cdfbfc7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137152
    Tested-by: Tomaž Vajngerl <qui...@gmail.com>
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/chart2/source/view/axes/VAxisProperties.cxx 
b/chart2/source/view/axes/VAxisProperties.cxx
index d07cc33d8b9a..f39420c9ce02 100644
--- a/chart2/source/view/axes/VAxisProperties.cxx
+++ b/chart2/source/view/axes/VAxisProperties.cxx
@@ -153,8 +153,9 @@ TickmarkProperties 
AxisProperties::getBiggestTickmarkProperties()
     return aTickmarkProperties;
 }
 
-AxisProperties::AxisProperties( rtl::Reference< Axis > xAxisModel
-                              , ExplicitCategoriesProvider* 
pExplicitCategoriesProvider )
+AxisProperties::AxisProperties(rtl::Reference<::chart::Axis> xAxisModel,
+                               ExplicitCategoriesProvider* 
pExplicitCategoriesProvider,
+                               rtl::Reference<::chart::DataTable> const& 
xDataTableModel)
     : m_xAxisModel(std::move(xAxisModel))
     , m_nDimensionIndex(0)
     , m_bIsMainAxis(true)
@@ -174,6 +175,7 @@ AxisProperties::AxisProperties( rtl::Reference< Axis > 
xAxisModel
     , m_bComplexCategories(false)
     , m_pExplicitCategoriesProvider(pExplicitCategoriesProvider)
     , m_bLimitSpaceForLabels(false)
+    , m_xDataTableModel(xDataTableModel)
 {
 }
 
@@ -256,7 +258,9 @@ void AxisProperties::init( bool bCartesian )
     if( bCartesian )
     {
         if (m_nDimensionIndex == 0)
-            m_bDisplayDataTable = false;
+        {
+            m_bDisplayDataTable = m_xDataTableModel.is();
+        }
 
         if( m_nDimensionIndex == 0 && m_nAxisType == AxisType::CATEGORY
                 && m_pExplicitCategoriesProvider && 
m_pExplicitCategoriesProvider->hasComplexCategories() )
diff --git a/chart2/source/view/axes/VAxisProperties.hxx 
b/chart2/source/view/axes/VAxisProperties.hxx
index d66b2f3a919e..6b6b7c361ea2 100644
--- a/chart2/source/view/axes/VAxisProperties.hxx
+++ b/chart2/source/view/axes/VAxisProperties.hxx
@@ -21,6 +21,7 @@
 #include "TickmarkProperties.hxx"
 #include <Axis.hxx>
 #include <LabelAlignment.hxx>
+#include <DataTable.hxx>
 
 #include <com/sun/star/chart/ChartAxisLabelPosition.hpp>
 #include <com/sun/star/chart/ChartAxisMarkPosition.hpp>
@@ -139,10 +140,13 @@ struct AxisProperties final
 
     bool                                m_bLimitSpaceForLabels;
 
+    rtl::Reference<::chart::DataTable> m_xDataTableModel;
+
     //methods:
 
-    AxisProperties( rtl::Reference< ::chart::Axis > xAxisModel
-                  , ExplicitCategoriesProvider* pExplicitCategoriesProvider );
+    AxisProperties(rtl::Reference<::chart::Axis> xAxisModel,
+                   ExplicitCategoriesProvider* pExplicitCategoriesProvider,
+                   rtl::Reference<::chart::DataTable> const& xDataTableModel);
 
     void init(bool bCartesian=false);//init from model data (m_xAxisModel)
 
diff --git a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx 
b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
index e1a2ba5046e3..cd0d49188a1c 100644
--- a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
@@ -23,6 +23,8 @@
 #include <BaseCoordinateSystem.hxx>
 #include <AxisIndexDefines.hxx>
 #include <Axis.hxx>
+#include <DataTable.hxx>
+#include <Diagram.hxx>
 #include <AxisHelper.hxx>
 #include <cppuhelper/implbase.hxx>
 #include <ChartModel.hxx>
@@ -130,7 +132,8 @@ void VCartesianCoordinateSystem::createVAxisList(
             if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, 
m_xCooSysModel ))
                 continue;
 
-            AxisProperties 
aAxisProperties(xAxis,getExplicitCategoriesProvider());
+            rtl::Reference<Diagram> 
xDiagram(xChartDoc->getFirstChartDiagram());
+            AxisProperties aAxisProperties(xAxis, 
getExplicitCategoriesProvider(), xDiagram->getDataTableRef());
             aAxisProperties.m_nDimensionIndex = nDimensionIndex;
             aAxisProperties.m_bSwapXAndY = bSwapXAndY;
             aAxisProperties.m_bIsMainAxis = (nAxisIndex==0);
diff --git a/chart2/source/view/axes/VPolarCoordinateSystem.cxx 
b/chart2/source/view/axes/VPolarCoordinateSystem.cxx
index 3a3351a54fc3..338a1c4ab7ed 100644
--- a/chart2/source/view/axes/VPolarCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VPolarCoordinateSystem.cxx
@@ -24,6 +24,8 @@
 #include <AxisIndexDefines.hxx>
 #include <Axis.hxx>
 #include <AxisHelper.hxx>
+#include <Diagram.hxx>
+#include <DataTable.hxx>
 #include <ChartModel.hxx>
 
 namespace chart
@@ -90,7 +92,9 @@ void VPolarCoordinateSystem::createVAxisList(
             rtl::Reference< Axis > xAxis = 
getAxisByDimension(nDimensionIndex,nAxisIndex);
             if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, 
m_xCooSysModel ))
                 continue;
-            AxisProperties 
aAxisProperties(xAxis,getExplicitCategoriesProvider());
+
+            rtl::Reference<Diagram> 
xDiagram(xChartDoc->getFirstChartDiagram());
+            AxisProperties 
aAxisProperties(xAxis,getExplicitCategoriesProvider(), 
xDiagram->getDataTableRef());
             aAxisProperties.init();
             if(aAxisProperties.m_bDisplayLabels)
                 aAxisProperties.m_nNumberFormatKey = 
getNumberFormatKeyForAxis(xAxis, xChartDoc);

Reply via email to