[Libreoffice-commits] core.git: 6 commits - chart2/qa include/oox oox/source

Markus Mohrhard markus.mohrhard at googlemail.com
Sun Apr 26 21:35:55 PDT 2015


 chart2/qa/extras/chart2export.cxx                          |   34 +++++++++++++
 chart2/qa/extras/data/xlsx/axis_character_properties.xlsx  |binary
 chart2/qa/extras/data/xlsx/title_character_properties.xlsx |binary
 include/oox/export/chartexport.hxx                         |    1 
 include/oox/export/drawingml.hxx                           |    3 -
 oox/source/drawingml/chart/axiscontext.cxx                 |   11 +---
 oox/source/export/chartexport.cxx                          |   26 +++++++++
 oox/source/export/drawingml.cxx                            |    6 +-
 8 files changed, 69 insertions(+), 12 deletions(-)

New commits:
commit 84fba0e79f319e9279ac1a6f50588a687b018ddb
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Apr 27 06:29:42 2015 +0200

    add test for title character properties, tdf#90532
    
    Change-Id: Ib9117e73a446e0e369bae0d9cfdd8bd73e3c237c

diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index f31d0bf..7c14b73 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -94,6 +94,7 @@ public:
     void testPlotAreaManualLayoutXLSX();
     void testLegendManualLayoutXLSX();
     void testAxisCharacterPropertiesXLSX();
+    void testTitleCharacterPropertiesXLSX();
 
     CPPUNIT_TEST_SUITE(Chart2ExportTest);
     CPPUNIT_TEST(testErrorBarXLSX);
@@ -152,6 +153,7 @@ public:
     CPPUNIT_TEST(testPlotAreaManualLayoutXLSX);
     CPPUNIT_TEST(testLegendManualLayoutXLSX);
     CPPUNIT_TEST(testAxisCharacterPropertiesXLSX);
+    CPPUNIT_TEST(testTitleCharacterPropertiesXLSX);
     CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -1408,6 +1410,19 @@ void Chart2ExportTest::testAxisCharacterPropertiesXLSX()
     assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:txPr/a:p/a:pPr/a:defRPr/a:solidFill/a:srgbClr", "val", "ff0000");
 }
 
+void Chart2ExportTest::testTitleCharacterPropertiesXLSX()
+{
+    load("/chart2/qa/extras/data/xlsx/", "title_character_properties.xlsx");
+    xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML");
+    CPPUNIT_ASSERT(pXmlDoc);
+
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:tx/c:rich/a:p/a:pPr/a:defRPr", "sz", "2400");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:tx/c:rich/a:p/a:pPr/a:defRPr", "b", "1");
+
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:tx/c:rich/a:p/a:r/a:rPr", "sz", "2400");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:tx/c:rich/a:p/a:r/a:rPr", "b", "1");
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/xlsx/title_character_properties.xlsx b/chart2/qa/extras/data/xlsx/title_character_properties.xlsx
new file mode 100644
index 0000000..2a23993
Binary files /dev/null and b/chart2/qa/extras/data/xlsx/title_character_properties.xlsx differ
commit ea4e3d6970aaa2ff567c027bf3b5a6902c9dabed
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Apr 27 06:28:52 2015 +0200

    add test for axis character properties, tdf#90532
    
    Change-Id: Ica4dc4c621d722bdad1d3c47c2e5389c8a6b8d04

diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index f087463..f31d0bf 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -93,6 +93,7 @@ public:
     void testTitleManualLayoutXLSX();
     void testPlotAreaManualLayoutXLSX();
     void testLegendManualLayoutXLSX();
+    void testAxisCharacterPropertiesXLSX();
 
     CPPUNIT_TEST_SUITE(Chart2ExportTest);
     CPPUNIT_TEST(testErrorBarXLSX);
@@ -150,6 +151,7 @@ public:
     CPPUNIT_TEST(testTitleManualLayoutXLSX);
     CPPUNIT_TEST(testPlotAreaManualLayoutXLSX);
     CPPUNIT_TEST(testLegendManualLayoutXLSX);
+    CPPUNIT_TEST(testAxisCharacterPropertiesXLSX);
     CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -1389,6 +1391,23 @@ void Chart2ExportTest::testLegendManualLayoutXLSX()
     CPPUNIT_ASSERT(nX != nY);
 }
 
+void Chart2ExportTest::testAxisCharacterPropertiesXLSX()
+{
+    load("/chart2/qa/extras/data/xlsx/", "axis_character_properties.xlsx");
+    xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML");
+    CPPUNIT_ASSERT(pXmlDoc);
+
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:p/a:pPr/a:defRPr", "sz", "1000");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:p/a:pPr/a:defRPr", "b", "1");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:p/a:pPr/a:defRPr", "i", "1");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:p/a:pPr/a:defRPr", "u", "sng");
+
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:txPr/a:p/a:pPr/a:defRPr", "sz", "900");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:txPr/a:p/a:pPr/a:defRPr", "b", "1");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:txPr/a:p/a:pPr/a:defRPr", "strike", "sngStrike");
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:txPr/a:p/a:pPr/a:defRPr/a:solidFill/a:srgbClr", "val", "ff0000");
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/xlsx/axis_character_properties.xlsx b/chart2/qa/extras/data/xlsx/axis_character_properties.xlsx
new file mode 100644
index 0000000..635aafe
Binary files /dev/null and b/chart2/qa/extras/data/xlsx/axis_character_properties.xlsx differ
commit e7232574e2050fea57b06cf1e87177bc419974da
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Apr 27 05:49:51 2015 +0200

    support more font properties for title OOXML export, tdf#90532
    
    Change-Id: Ib620d279332f61fb2ca1deee4b47802f995a76a1

diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index c8fb4c9..5bfa5fe 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1106,8 +1106,9 @@ void ChartExport::exportTitle( Reference< XShape > xShape )
 
     pFS->startElement( FSNS( XML_a, XML_pPr ),
             FSEND );
-    pFS->singleElement( FSNS( XML_a, XML_defRPr ),
-            FSEND );
+
+    WriteRunProperties(xPropSet, false, XML_defRPr);
+
     pFS->endElement( FSNS( XML_a, XML_pPr ) );
 
     pFS->startElement( FSNS( XML_a, XML_r ),
commit bcf295f9ca05f5b8d40ef2747b46dfb5564a74a9
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Apr 27 05:30:30 2015 +0200

    support axis text properties during OOXML export, tdf#90532
    
    Change-Id: Ied2b21154e31754f8b8461c349fe0e52ce7455e8

diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx
index 2a3ff80..31c5234 100644
--- a/include/oox/export/chartexport.hxx
+++ b/include/oox/export/chartexport.hxx
@@ -154,6 +154,7 @@ private:
     void exportSeriesValues(
         const css::uno::Reference< css::chart2::data::XDataSequence >& xValueSeq, sal_Int32 nValueType = XML_val );
     void exportShapeProps( css::uno::Reference< css::beans::XPropertySet > xPropSet );
+    void exportTextProps(css::uno::Reference< css::beans::XPropertySet > xPropSet);
     void exportDataPoints(
         const css::uno::Reference< css::beans::XPropertySet >& xSeriesProperties,
         sal_Int32 nSeriesLength );
diff --git a/include/oox/export/drawingml.hxx b/include/oox/export/drawingml.hxx
index 4bfaf3a..77cfd3c 100644
--- a/include/oox/export/drawingml.hxx
+++ b/include/oox/export/drawingml.hxx
@@ -29,6 +29,7 @@
 #include <tools/poly.hxx>
 #include <filter/msfilter/escherex.hxx>
 #include "oox/drawingml/drawingmltypes.hxx"
+#include <oox/token/tokens.hxx>
 #ifndef OOX_DRAWINGML_EXPORT_ROTATE_CLOCKWISIFY
 // Our rotation is counter-clockwise and is in 100ths of a degree.
 // drawingML rotation is clockwise and is in 60000ths of a degree.
@@ -172,7 +173,7 @@ public:
     void WriteParagraphNumbering( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet,
                                   sal_Int16 nLevel );
     void WriteRun( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > rRun );
-    void WriteRunProperties( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rRun, bool bIsField );
+    void WriteRunProperties( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rRun, bool bIsField, sal_Int32 nElement = XML_rPr );
 
     void WritePresetShape( const char* pShape );
     void WritePresetShape( const char* pShape, MSO_SPT eShapeType, bool bPredefinedHandlesUsed, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, const ::com::sun::star::beans::PropertyValue& rProp );
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 263db8d..c8fb4c9 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -2306,6 +2306,25 @@ void ChartExport::exportShapeProps( Reference< XPropertySet > xPropSet )
     pFS->endElement( FSNS( XML_c, XML_spPr ) );
 }
 
+void ChartExport::exportTextProps(Reference<XPropertySet> xPropSet)
+{
+    FSHelperPtr pFS = GetFS();
+    pFS->startElement(FSNS(XML_c, XML_txPr), FSEND);
+
+    pFS->startElement(FSNS(XML_c, XML_bodyPr), FSEND);
+    pFS->endElement(FSNS(XML_c, XML_bodyPr));
+
+    pFS->startElement(FSNS(XML_a, XML_p), FSEND);
+    pFS->startElement(FSNS(XML_a, XML_pPr), FSEND);
+
+    WriteRunProperties(xPropSet, false, XML_defRPr);
+
+    pFS->endElement(FSNS(XML_a, XML_pPr));
+    pFS->endElement(FSNS(XML_a, XML_p));
+
+    pFS->endElement(FSNS(XML_c, XML_txPr));
+}
+
 void ChartExport::InitPlotArea( )
 {
     Reference< XPropertySet > xDiagramProperties (mxDiagram, uno::UNO_QUERY);
@@ -2680,6 +2699,8 @@ void ChartExport::_exportAxis(
     // shape properties
     exportShapeProps( xAxisProp );
 
+    exportTextProps(xAxisProp);
+
     pFS->singleElement( FSNS( XML_c, XML_crossAx ),
             XML_val, I32S( rAxisIdPair.nCrossAx ),
             FSEND );
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 7ba4f1f..4f0621d 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1167,7 +1167,7 @@ void DrawingML::WriteShapeTransformation( Reference< XShape > rXShape, sal_Int32
     WriteTransformation( Rectangle( Point( aPos.X, aPos.Y ), Size( aSize.Width, aSize.Height ) ), nXmlNamespace, bFlipH, bFlipV, OOX_DRAWINGML_EXPORT_ROTATE_CLOCKWISIFY(nRotation) );
 }
 
-void DrawingML::WriteRunProperties( Reference< XPropertySet > rRun, bool bIsField )
+void DrawingML::WriteRunProperties( Reference< XPropertySet > rRun, bool bIsField, sal_Int32 nElement /*= XML_rPr*/ )
 {
     Reference< XPropertySet > rXPropSet( rRun, UNO_QUERY );
     Reference< XPropertyState > rXPropState( rRun, UNO_QUERY );
@@ -1318,7 +1318,7 @@ void DrawingML::WriteRunProperties( Reference< XPropertySet > rRun, bool bIsFiel
         }
     }
 
-    mpFS->startElementNS( XML_a, XML_rPr,
+    mpFS->startElementNS( XML_a, nElement,
                           XML_b, bold,
                           XML_i, italic,
                           XML_lang, usLanguage.isEmpty() ? NULL : USS( usLanguage ),
@@ -1405,7 +1405,7 @@ void DrawingML::WriteRunProperties( Reference< XPropertySet > rRun, bool bIsFiel
         }
     }
 
-    mpFS->endElementNS( XML_a, XML_rPr );
+    mpFS->endElementNS( XML_a, nElement );
 }
 
 const char* DrawingML::GetFieldType( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > rRun, bool& bIsField )
commit 38a5e500b1b9ff135d190e65413cd519ae8c89be
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Apr 26 04:05:30 2015 +0200

    fix noMultiLvlLbl MSO 2007 vs OOXML
    
    Change-Id: I22c8708e9868696bd03eb05360cf198ded7d65f5

diff --git a/oox/source/drawingml/chart/axiscontext.cxx b/oox/source/drawingml/chart/axiscontext.cxx
index 2c7f876..fec2785 100644
--- a/oox/source/drawingml/chart/axiscontext.cxx
+++ b/oox/source/drawingml/chart/axiscontext.cxx
@@ -187,8 +187,7 @@ ContextHandlerRef CatAxisContext::onCreateContext( sal_Int32 nElement, const Att
             mrModel.mnLabelOffset = rAttribs.getInteger( XML_val, 100 );
             return 0;
         case C_TOKEN( noMultiLvlLbl ):
-            // default is 'false', not 'true' as specified
-            mrModel.mbNoMultiLevel = rAttribs.getBool( XML_val, false );
+            mrModel.mbNoMultiLevel = rAttribs.getBool( XML_val, !bMSO2007Doc );
             return 0;
         case C_TOKEN( tickLblSkip ):
             mrModel.mnTickLabelSkip = rAttribs.getInteger( XML_val, 0 );
commit 00bb94ebdc2dcfb8408befbff79cbcbdd94ad7d7
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Apr 26 04:04:14 2015 +0200

    fix auto MSO 2007 vs OOXML
    
    Change-Id: I23dfa8612cc46a46b7cb8d9fa991058fdb506ef0

diff --git a/oox/source/drawingml/chart/axiscontext.cxx b/oox/source/drawingml/chart/axiscontext.cxx
index 95c2f37..2c7f876 100644
--- a/oox/source/drawingml/chart/axiscontext.cxx
+++ b/oox/source/drawingml/chart/axiscontext.cxx
@@ -171,11 +171,11 @@ CatAxisContext::~CatAxisContext()
 
 ContextHandlerRef CatAxisContext::onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs )
 {
+    bool bMSO2007Doc = getFilter().isMSO2007Document();
     if( isRootElement() ) switch( nElement )
     {
         case C_TOKEN( auto ):
-            // default is 'false', not 'true' as specified
-            mrModel.mbAuto = rAttribs.getBool( XML_val, false );
+            mrModel.mbAuto = rAttribs.getBool( XML_val, !bMSO2007Doc );
             return 0;
         case C_TOKEN( axPos ):
             mrModel.mnAxisPos = rAttribs.getToken( XML_val, XML_TOKEN_INVALID );
@@ -211,11 +211,11 @@ DateAxisContext::~DateAxisContext()
 
 ContextHandlerRef DateAxisContext::onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs )
 {
+    bool bMSO2007Doc = getFilter().isMSO2007Document();
     if( isRootElement() ) switch( nElement )
     {
         case C_TOKEN( auto ):
-            // default is 'false', not 'true' as specified
-            mrModel.mbAuto = rAttribs.getBool( XML_val, false );
+            mrModel.mbAuto = rAttribs.getBool( XML_val, !bMSO2007Doc );
             return 0;
         case C_TOKEN( baseTimeUnit ):
             mrModel.monBaseTimeUnit = rAttribs.getToken( XML_val, XML_days );


More information about the Libreoffice-commits mailing list