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.mohrh...@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.mohrh...@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.mohrh...@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.mohrh...@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.mohrh...@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.mohrh...@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 ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits