[Libreoffice-commits] core.git: 4 commits - chart2/qa chart2/source include/oox include/xmloff offapi/com oox/source xmloff/source

Markus Mohrhard markus.mohrhard at googlemail.com
Wed Dec 18 18:55:28 PST 2013


 chart2/qa/extras/chart2export.cxx                           |   13 +++
 chart2/qa/extras/data/docx/testChartDataTable.docx          |binary
 chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx |   24 ++++++-
 chart2/source/model/main/Diagram.cxx                        |   27 +++++++-
 include/oox/drawingml/chart/plotareacontext.hxx             |   15 ++++
 include/oox/drawingml/chart/plotareaconverter.hxx           |   15 ++++
 include/oox/drawingml/chart/plotareamodel.hxx               |   13 +++
 include/oox/export/chartexport.hxx                          |    1 
 include/xmloff/xmltoken.hxx                                 |    4 +
 offapi/com/sun/star/chart2/Diagram.idl                      |    6 +
 oox/source/drawingml/chart/plotareacontext.cxx              |   37 +++++++++++
 oox/source/drawingml/chart/plotareaconverter.cxx            |   24 +++++++
 oox/source/drawingml/chart/plotareamodel.cxx                |   13 +++
 oox/source/export/chartexport.cxx                           |   40 +++++++++++-
 oox/source/token/properties.txt                             |    3 
 xmloff/source/chart/PropertyMap.hxx                         |    5 +
 xmloff/source/core/xmltoken.cxx                             |    3 
 17 files changed, 239 insertions(+), 4 deletions(-)

New commits:
commit c616d728232ad7c0920455d69f31087b81be6532
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Thu Dec 19 03:53:46 2013 +0100

    fix OOXML validation error in new data table export code
    
    Change-Id: I42b2fcdc914bc8c6066fdfce22ad05b5c01317d9

diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 6a759d0..7b44d30 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1069,6 +1069,8 @@ void ChartExport::exportPlotArea( )
     }
     //Axis Data
     exportAxes( );
+    // Data Table
+    exportDataTable();
 
     // shape properties
     Reference< ::com::sun::star::chart::X3DDisplay > xWallFloorSupplier( mxDiagram, uno::UNO_QUERY );
@@ -1080,7 +1082,6 @@ void ChartExport::exportPlotArea( )
             exportShapeProps( xWallPropSet );
         }
     }
-    exportDataTable();
     pFS->endElement( FSNS( XML_c, XML_plotArea ) );
 
 }
commit cf5c3e97b66ef31f2b8db4dca4c8eb179754e694
Author: Nikhil Walvekar <nikhil.walvekar at synerzip.com>
Date:   Thu Dec 12 17:50:37 2013 +0530

    fdo#72304 Write Chart Data Table information back to XML.
    
    During export access properties stored during import and write
    back those. Currently we just support basic chart data table information
    such as border and outline, there are more properties, which are pending.
    
    Conflicts:
    	chart2/qa/extras/chart2export.cxx
    
    Change-Id: Icbc1245fc829f49833a8c307e029c3dd3dc2e0bd

diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index dbc0a0d..eee9161 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -35,6 +35,7 @@ public:
     void testStockChart();
     void testBarChart();
     void testCrosses();
+    void testChartDataTable();
 
     CPPUNIT_TEST_SUITE(Chart2ExportTest);
     CPPUNIT_TEST(test);
@@ -43,7 +44,7 @@ public:
     CPPUNIT_TEST(testStockChart);
     CPPUNIT_TEST(testBarChart);
     CPPUNIT_TEST(testCrosses);
-
+    CPPUNIT_TEST(testChartDataTable);
     CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -434,6 +435,16 @@ void Chart2ExportTest::testCrosses()
 
     assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crosses", "val", "autoZero");
 }
+void Chart2ExportTest::testChartDataTable()
+{
+    load("/chart2/qa/extras/data/docx/", "testChartDataTable.docx");
+
+    xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text");
+    CPPUNIT_ASSERT(pXmlDoc);
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dTable/c:showHorzBorder", "val", "1");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dTable/c:showVertBorder", "val", "1");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dTable/c:showOutline", "val", "1");
+}
 
 CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
 
diff --git a/chart2/qa/extras/data/docx/testChartDataTable.docx b/chart2/qa/extras/data/docx/testChartDataTable.docx
new file mode 100644
index 0000000..8663e89
Binary files /dev/null and b/chart2/qa/extras/data/docx/testChartDataTable.docx differ
diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx
index 1e6278b..a0f8d31 100644
--- a/include/oox/export/chartexport.hxx
+++ b/include/oox/export/chartexport.hxx
@@ -118,6 +118,7 @@ private:
     void exportTitle( com::sun::star::uno::Reference<
                           ::com::sun::star::drawing::XShape > xShape );
     void exportPlotArea( );
+    void exportDataTable( );
 
     void exportAreaChart( com::sun::star::uno::Reference< com::sun::star::chart2::XChartType > xChartType );
     void exportBarChart( com::sun::star::uno::Reference< com::sun::star::chart2::XChartType > xChartType );
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 7575263..6a759d0 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1080,11 +1080,48 @@ void ChartExport::exportPlotArea( )
             exportShapeProps( xWallPropSet );
         }
     }
-
+    exportDataTable();
     pFS->endElement( FSNS( XML_c, XML_plotArea ) );
 
 }
 
+void ChartExport::exportDataTable( )
+{
+    FSHelperPtr pFS = GetFS();
+    Reference< beans::XPropertySet > aPropSet( mxDiagram, uno::UNO_QUERY );
+
+    sal_Bool bShowVBorder = sal_False;
+    sal_Bool bShowHBorder = sal_False;
+    sal_Bool bShowOutline = sal_False;
+
+    if (GetProperty( aPropSet, "DataTableHBorder"))
+        mAny >>= bShowHBorder;
+    if (GetProperty( aPropSet, "DataTableVBorder"))
+        mAny >>= bShowVBorder;
+    if (GetProperty( aPropSet, "DataTableOutline"))
+        mAny >>= bShowOutline;
+
+    if (bShowVBorder || bShowHBorder || bShowOutline)
+    {
+        pFS->startElement( FSNS( XML_c, XML_dTable),
+                FSEND );
+        if (bShowHBorder)
+            pFS->singleElement( FSNS( XML_c, XML_showHorzBorder ),
+                            XML_val, "1",
+                            FSEND );
+        if (bShowVBorder)
+            pFS->singleElement( FSNS( XML_c, XML_showVertBorder ),
+                            XML_val, "1",
+                            FSEND );
+        if (bShowOutline)
+            pFS->singleElement( FSNS( XML_c, XML_showOutline ),
+                            XML_val, "1",
+                            FSEND );
+
+        pFS->endElement(  FSNS( XML_c, XML_dTable));
+    }
+
+}
 void ChartExport::exportAreaChart( Reference< chart2::XChartType > xChartType )
 {
     FSHelperPtr pFS = GetFS();
commit ba76bf5c7b705d3f5e8d807346a34d9da34127d3
Author: Nikhil Walvekar <nikhil.walvekar at synerzip.com>
Date:   Thu Dec 12 17:47:55 2013 +0530

    fdo#72304 Added properties to store Chart data table information, during import.
    
    Change-Id: I77c458828b86bc31fae533e2e632d57237e44e6f

diff --git a/include/oox/drawingml/chart/plotareacontext.hxx b/include/oox/drawingml/chart/plotareacontext.hxx
index da337c74..9caec48 100644
--- a/include/oox/drawingml/chart/plotareacontext.hxx
+++ b/include/oox/drawingml/chart/plotareacontext.hxx
@@ -59,6 +59,21 @@ public:
 
 // ============================================================================
 
+struct DataTableModel;
+
+/** Handler for a data table context (c:dTable element).
+ */
+class DataTableContext : public ContextBase< DataTableModel >
+{
+public:
+    explicit            DataTableContext( ::oox::core::ContextHandler2Helper& rParent, DataTableModel& rModel );
+    virtual             ~DataTableContext();
+
+    virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs );
+};
+
+// ============================================================================
+
 struct PlotAreaModel;
 
 /** Handler for a chart plot area context (c:plotArea element).
diff --git a/include/oox/drawingml/chart/plotareaconverter.hxx b/include/oox/drawingml/chart/plotareaconverter.hxx
index 2185d21..aa38194 100644
--- a/include/oox/drawingml/chart/plotareaconverter.hxx
+++ b/include/oox/drawingml/chart/plotareaconverter.hxx
@@ -65,6 +65,21 @@ public:
 
 // ============================================================================
 
+struct DataTableModel;
+
+class DataTableConverter : public ConverterBase< DataTableModel >
+{
+public:
+    explicit            DataTableConverter( const ConverterRoot& rParent, DataTableModel& rModel );
+    virtual             ~DataTableConverter();
+
+    /** Converts the OOXML data table model to a chart2 diagram. */
+    void                convertFromModel(
+                            const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDiagram >& rxDiagram);
+};
+
+// ============================================================================
+
 struct PlotAreaModel;
 
 class PlotAreaConverter : public ConverterBase< PlotAreaModel >
diff --git a/include/oox/drawingml/chart/plotareamodel.hxx b/include/oox/drawingml/chart/plotareamodel.hxx
index 262bf19..7852ba8 100644
--- a/include/oox/drawingml/chart/plotareamodel.hxx
+++ b/include/oox/drawingml/chart/plotareamodel.hxx
@@ -60,17 +60,30 @@ struct WallFloorModel
 
 // ============================================================================
 
+struct DataTableModel
+{
+    bool                mbShowHBorder;      /// Show Horizontal Border
+    bool                mbShowVBorder;      /// Show Verticle Border
+    bool                mbShowOutline;      /// Show outline
+    explicit            DataTableModel();
+                        ~DataTableModel();
+};
+
+// ============================================================================
+
 struct PlotAreaModel
 {
     typedef ModelVector< TypeGroupModel >   TypeGroupVector;
     typedef ModelVector< AxisModel >        AxisVector;
     typedef ModelRef< Shape >               ShapeRef;
     typedef ModelRef< LayoutModel >         LayoutRef;
+    typedef ModelRef< DataTableModel >         DataTableRef;
 
     TypeGroupVector     maTypeGroups;       /// All chart type groups contained in the chart.
     AxisVector          maAxes;             /// All axes contained in the chart.
     ShapeRef            mxShapeProp;        /// Plot area frame formatting.
     LayoutRef           mxLayout;           /// Layout/position of the plot area.
+    DataTableRef        mxDataTable;        /// Data table of the plot area.
 
     explicit            PlotAreaModel();
                         ~PlotAreaModel();
diff --git a/oox/source/drawingml/chart/plotareacontext.cxx b/oox/source/drawingml/chart/plotareacontext.cxx
index 4b2288d..939bbc1 100644
--- a/oox/source/drawingml/chart/plotareacontext.cxx
+++ b/oox/source/drawingml/chart/plotareacontext.cxx
@@ -110,6 +110,41 @@ ContextHandlerRef WallFloorContext::onCreateContext( sal_Int32 nElement, const A
     return 0;
 }
 
+
+// ============================================================================
+
+DataTableContext::DataTableContext( ContextHandler2Helper& rParent, DataTableModel& rModel ) :
+    ContextBase< DataTableModel >( rParent, rModel )
+{
+}
+
+DataTableContext::~DataTableContext()
+{
+}
+
+ContextHandlerRef DataTableContext::onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs)
+{
+    switch( getCurrentElement() )
+    {
+        case C_TOKEN( dTable ):
+            switch( nElement )
+            {
+                case C_TOKEN( showHorzBorder ):
+                        mrModel.mbShowHBorder = rAttribs.getBool( XML_val, false );
+                        break;
+                case C_TOKEN( showVertBorder ):
+                        mrModel.mbShowVBorder = rAttribs.getBool( XML_val, false );
+                        break;
+                case C_TOKEN( showOutline ):
+                        mrModel.mbShowOutline = rAttribs.getBool( XML_val, false );
+                        break;
+            }
+        break;
+    }
+    return 0;
+}
+
+// ============================================================================
 // ============================================================================
 
 PlotAreaContext::PlotAreaContext( ContextHandler2Helper& rParent, PlotAreaModel& rModel ) :
@@ -166,6 +201,8 @@ ContextHandlerRef PlotAreaContext::onCreateContext( sal_Int32 nElement, const At
                     return new LayoutContext( *this, mrModel.mxLayout.create() );
                 case C_TOKEN( spPr ):
                     return new ShapePropertiesContext( *this, mrModel.mxShapeProp.create() );
+                case C_TOKEN(dTable):
+                    return new DataTableContext( *this, mrModel.mxDataTable.create() );
             }
         break;
     }
diff --git a/oox/source/drawingml/chart/plotareaconverter.cxx b/oox/source/drawingml/chart/plotareaconverter.cxx
index ff67b5f..c069078 100644
--- a/oox/source/drawingml/chart/plotareaconverter.cxx
+++ b/oox/source/drawingml/chart/plotareaconverter.cxx
@@ -299,6 +299,28 @@ void WallFloorConverter::convertFromModel( const Reference< XDiagram >& rxDiagra
 
 // ============================================================================
 
+DataTableConverter::DataTableConverter( const ConverterRoot& rParent, DataTableModel& rModel ) :
+        ConverterBase< DataTableModel >( rParent, rModel )
+{
+}
+
+DataTableConverter::~DataTableConverter()
+{
+}
+
+void DataTableConverter::convertFromModel( const Reference< XDiagram >& rxDiagram )
+{
+    PropertySet aPropSet( rxDiagram );
+    if (mrModel.mbShowHBorder)
+        aPropSet.setProperty( PROP_DataTableHBorder, mrModel.mbShowHBorder );
+    if (mrModel.mbShowVBorder)
+        aPropSet.setProperty( PROP_DataTableVBorder, mrModel.mbShowVBorder);
+    if (mrModel.mbShowOutline)
+        aPropSet.setProperty( PROP_DataTableOutline, mrModel.mbShowOutline );
+}
+
+// ============================================================================
+
 PlotAreaConverter::PlotAreaConverter( const ConverterRoot& rParent, PlotAreaModel& rModel ) :
     ConverterBase< PlotAreaModel >( rParent, rModel ),
     mb3dChart( false ),
@@ -398,6 +420,8 @@ void PlotAreaConverter::convertFromModel( View3DModel& rView3DModel )
         }
     }
 
+    DataTableConverter dataTableConverter (*this, mrModel.mxDataTable.getOrCreate());
+    dataTableConverter.convertFromModel(xDiagram);
     // plot area formatting
     if( xDiagram.is() && !mb3dChart )
     {
diff --git a/oox/source/drawingml/chart/plotareamodel.cxx b/oox/source/drawingml/chart/plotareamodel.cxx
index 5c53377..0813323 100644
--- a/oox/source/drawingml/chart/plotareamodel.cxx
+++ b/oox/source/drawingml/chart/plotareamodel.cxx
@@ -48,6 +48,19 @@ WallFloorModel::~WallFloorModel()
 
 // ============================================================================
 
+DataTableModel::DataTableModel() :
+        mbShowHBorder(false),
+        mbShowVBorder(false),
+        mbShowOutline(false)
+{
+}
+
+DataTableModel::~DataTableModel()
+{
+}
+
+// ============================================================================
+
 PlotAreaModel::PlotAreaModel()
 {
 }
diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt
index b0001e3..57b4270 100644
--- a/oox/source/token/properties.txt
+++ b/oox/source/token/properties.txt
@@ -120,6 +120,9 @@ D3DScenePerspective
 D3DSceneShadeMode
 DDELinks
 DatabaseRanges
+DataTableHBorder
+DataTableVBorder
+DataTableOutline
 Decoration
 DefaultScrollValue
 DefaultSpinValue
commit 20bb1e6854c42df50536238414d93993ad764999
Author: Nikhil Walvekar <nikhil.walvekar at synerzip.com>
Date:   Thu Dec 12 17:49:28 2013 +0530

    fdo#72304 Preserve Chart data table properties during ODF import/export.
    
    Change-Id: I767bb32fdaddcaf742923055cc86bb19138b42be

diff --git a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
index c54a2dc..8fad1f8 100644
--- a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
@@ -133,7 +133,10 @@ enum
     PROP_DIAGRAM_HAS_SECOND_X_AXIS_TITLE,
     PROP_DIAGRAM_HAS_SECOND_Y_AXIS_TITLE,
 
-    PROP_DIAGRAM_AUTOMATIC_SIZE
+    PROP_DIAGRAM_AUTOMATIC_SIZE,
+    PROP_DIAGRAM_DATATABLEHBORDER,
+    PROP_DIAGRAM_DATATABLEVBORDER,
+    PROP_DIAGRAM_DATATABLEOUTLINE
 };
 
 void lcl_AddPropertiesToVector(
@@ -415,6 +418,25 @@ void lcl_AddPropertiesToVector(
                   ::getBooleanCppuType(),
                   beans::PropertyAttribute::BOUND
                   | beans::PropertyAttribute::MAYBEDEFAULT ));
+    rOutProperties.push_back(
+        Property( "DataTableHBorder",
+                PROP_DIAGRAM_DATATABLEHBORDER,
+                  ::getBooleanCppuType(),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+    rOutProperties.push_back(
+        Property( "DataTableVBorder",
+                PROP_DIAGRAM_DATATABLEVBORDER,
+                  ::getBooleanCppuType(),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+    rOutProperties.push_back(
+        Property( "DataTableOutline",
+                PROP_DIAGRAM_DATATABLEOUTLINE,
+                  ::getBooleanCppuType(),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
 }
 
 struct StaticDiagramWrapperPropertyArray_Initializer
diff --git a/chart2/source/model/main/Diagram.cxx b/chart2/source/model/main/Diagram.cxx
index 5922ae2..ca3e389 100644
--- a/chart2/source/model/main/Diagram.cxx
+++ b/chart2/source/model/main/Diagram.cxx
@@ -71,7 +71,10 @@ enum
     PROP_DIAGRAM_ROTATION_HORIZONTAL,
     PROP_DIAGRAM_ROTATION_VERTICAL,
     PROP_DIAGRAM_MISSING_VALUE_TREATMENT,
-    PROP_DIAGRAM_3DRELATIVEHEIGHT
+    PROP_DIAGRAM_3DRELATIVEHEIGHT,
+    PROP_DIAGRAM_DATATABLEHBORDER,
+    PROP_DIAGRAM_DATATABLEVBORDER,
+    PROP_DIAGRAM_DATATABLEOUTLINE
 };
 
 void lcl_AddPropertiesToVector(
@@ -169,6 +172,25 @@ void lcl_AddPropertiesToVector(
                   PROP_DIAGRAM_3DRELATIVEHEIGHT,
                   ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
                   beans::PropertyAttribute::MAYBEVOID ));
+   rOutProperties.push_back(
+       Property( "DataTableHBorder",
+               PROP_DIAGRAM_DATATABLEHBORDER,
+                 ::getBooleanCppuType(),
+                 beans::PropertyAttribute::BOUND
+                 | beans::PropertyAttribute::MAYBEDEFAULT ));
+   rOutProperties.push_back(
+       Property( "DataTableVBorder",
+               PROP_DIAGRAM_DATATABLEVBORDER,
+                 ::getBooleanCppuType(),
+                 beans::PropertyAttribute::BOUND
+                 | beans::PropertyAttribute::MAYBEDEFAULT ));
+   rOutProperties.push_back(
+       Property( "DataTableOutline",
+               PROP_DIAGRAM_DATATABLEOUTLINE,
+                 ::getBooleanCppuType(),
+                 beans::PropertyAttribute::BOUND
+                 | beans::PropertyAttribute::MAYBEDEFAULT ));
+
 }
 
 struct StaticDiagramDefaults_Initializer
@@ -188,6 +210,9 @@ private:
         ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_GROUP_BARS_PER_AXIS, true );
         ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_INCLUDE_HIDDEN_CELLS, true );
         ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_RIGHT_ANGLED_AXES, false );
+        ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_DATATABLEHBORDER, false );
+        ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_DATATABLEVBORDER, false );
+        ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_DATATABLEOUTLINE, false );
         ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DIAGRAM_STARTING_ANGLE, 90 );
         ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DIAGRAM_3DRELATIVEHEIGHT, 100 );
          ::chart::SceneProperties::AddDefaultsToMap( rOutMap );
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx
index 71e41b0..cf4df36 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -3218,6 +3218,10 @@ namespace xmloff { namespace token {
         XML_RFC_LANGUAGE_TAG,
         XML_RFC_LANGUAGE_TAG_ASIAN,
         XML_RFC_LANGUAGE_TAG_COMPLEX,
+        // Chart data table properties
+        XML_CHART_DTABLE_SHOWHORZBORDER,
+        XML_CHART_DTABLE_SHOWVERTBORDER,
+        XML_CHART_DTABLE_SHOWOUTLINE,
 
         XML_TOKEN_END
     };
diff --git a/offapi/com/sun/star/chart2/Diagram.idl b/offapi/com/sun/star/chart2/Diagram.idl
index 815c2df..f599ae7 100644
--- a/offapi/com/sun/star/chart2/Diagram.idl
+++ b/offapi/com/sun/star/chart2/Diagram.idl
@@ -97,6 +97,12 @@ service Diagram
 
     [optional, property] boolean                    RightAngledAxes;
 
+    /** Chart Datatable flags
+    */
+    [optional, property] boolean                    DataTableHBorder;
+    [optional, property] boolean                    DataTableVBorder;
+    [optional, property] boolean                    DataTableOutline;
+
     /** Perspective of 3D charts ( [0,100] ).
      */
     [optional, property] long                       Perspective;
diff --git a/xmloff/source/chart/PropertyMap.hxx b/xmloff/source/chart/PropertyMap.hxx
index a1efee2..70336dc 100644
--- a/xmloff/source/chart/PropertyMap.hxx
+++ b/xmloff/source/chart/PropertyMap.hxx
@@ -133,6 +133,11 @@ const XMLPropertyMapEntry aXMLChartPropMap[] =
     MAP_ENTRY_ODF12( "AutomaticSize", CHART, XML_AUTOMATIC_SIZE, XML_TYPE_BOOL ),
     MAP_ENTRY_ODF12( "StartingAngle", CHART, XML_ANGLE_OFFSET, XML_TYPE_NUMBER ),
     MAP_ENTRY_ODF12( "MissingValueTreatment", CHART, XML_TREAT_EMPTY_CELLS, XML_SCH_TYPE_MISSING_VALUE_TREATMENT ),
+    // #72304 Chart data table flags
+    MAP_ENTRY_ODF12( "DataTableHBorder", CHART, XML_CHART_DTABLE_SHOWHORZBORDER, XML_TYPE_BOOL ),
+    MAP_ENTRY_ODF12( "DataTableVBorder", CHART, XML_CHART_DTABLE_SHOWVERTBORDER, XML_TYPE_BOOL ),
+    MAP_ENTRY_ODF12( "DataTableOutline", CHART, XML_CHART_DTABLE_SHOWOUTLINE, XML_TYPE_BOOL ),
+
     MAP_ENTRY( "ScaleText", CHART, XML_SCALE_TEXT, XML_TYPE_BOOL ),
 
     // spline settings
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 95ce705..1d97220 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -3218,6 +3218,9 @@ namespace xmloff { namespace token {
         TOKEN( "rfc-language-tag",          XML_RFC_LANGUAGE_TAG ),
         TOKEN( "rfc-language-tag-asian",    XML_RFC_LANGUAGE_TAG_ASIAN ),
         TOKEN( "rfc-language-tag-complex",  XML_RFC_LANGUAGE_TAG_COMPLEX ),
+        TOKEN( "data-table-show-horz-border",     XML_CHART_DTABLE_SHOWHORZBORDER ),
+        TOKEN( "data-table-show-vert-border",     XML_CHART_DTABLE_SHOWVERTBORDER ),
+        TOKEN( "data-table-show-outline",     XML_CHART_DTABLE_SHOWOUTLINE ),
 
 #if OSL_DEBUG_LEVEL > 0
         { 0, NULL, NULL,                       XML_TOKEN_END }


More information about the Libreoffice-commits mailing list