[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 16 chart2/qa/extras/data/pptx/tdf150176.pptx |binary oox/source/drawingml/chart/objectformatter.cxx |4 ++-- 3 files changed, 18 insertions(+), 2 deletions(-) New commits: commit 071a36e042c76286fedb38f479dac79f29b661f9 Author: Balazs Varga AuthorDate: Mon Aug 8 18:56:04 2022 +0200 Commit: Balazs Varga CommitDate: Tue Aug 9 11:35:42 2022 +0200 tdf#150176 pptx chart import: fix automatic border style Do not set the default border style for chart area in case of pptx charts, if it is came from the MSO as an automtic line style. regression from commit: 0dac43445b35da7e554dd4d7574c59611a0d0be1 (tdf#81437 XLSX import: fix missing chart border) Change-Id: Iaaaecc1dffe80c3f1528851e707236f2f7228bee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137993 Tested-by: Jenkins Reviewed-by: Balazs Varga diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 316520fb5197..4e5b3a83130e 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -85,6 +85,7 @@ public: void testTdf126033(); void testAutoBackgroundXLSX(); void testAutoChartAreaBorderPropXLSX(); +void testAutoChartAreaBorderPropPPTX(); void testChartAreaStyleBackgroundXLSX(); void testChartHatchFillXLSX(); void testAxisTextRotationXLSX(); @@ -178,6 +179,7 @@ public: CPPUNIT_TEST(testTdf126033); CPPUNIT_TEST(testAutoBackgroundXLSX); CPPUNIT_TEST(testAutoChartAreaBorderPropXLSX); +CPPUNIT_TEST(testAutoChartAreaBorderPropPPTX); CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX); CPPUNIT_TEST(testChartHatchFillXLSX); CPPUNIT_TEST(testAxisTextRotationXLSX); @@ -1106,6 +1108,20 @@ void Chart2ImportTest::testAutoChartAreaBorderPropXLSX() sal_Int32(26), nWidth); } +void Chart2ImportTest::testAutoChartAreaBorderPropPPTX() +{ +load(u"/chart2/qa/extras/data/pptx/", u"tdf150176.pptx"); +Reference xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + +// Test "Automatic" chartarea border style/color/width. +Reference xPropSet = xChartDoc->getPageBackground(); +CPPUNIT_ASSERT(xPropSet.is()); +drawing::LineStyle eStyle = xPropSet->getPropertyValue("LineStyle").get(); +CPPUNIT_ASSERT_EQUAL_MESSAGE("'Automatic' chartarea border should be loaded as none style for pptx.", +drawing::LineStyle_NONE, eStyle); +} + void Chart2ImportTest::testChartAreaStyleBackgroundXLSX() { load(u"/chart2/qa/extras/data/xlsx/", u"chart-area-style-background.xlsx"); diff --git a/chart2/qa/extras/data/pptx/tdf150176.pptx b/chart2/qa/extras/data/pptx/tdf150176.pptx new file mode 100644 index ..fa217f92c822 Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf150176.pptx differ diff --git a/oox/source/drawingml/chart/objectformatter.cxx b/oox/source/drawingml/chart/objectformatter.cxx index 14c96d166a03..5644b9eedf09 100644 --- a/oox/source/drawingml/chart/objectformatter.cxx +++ b/oox/source/drawingml/chart/objectformatter.cxx @@ -829,8 +829,8 @@ LineFormatter::LineFormatter( ObjectFormatterData& rData, const AutoFormatEntry* if( const Theme* pTheme = mrData.mrFilter.getCurrentTheme() ) if( const LineProperties* pLineProps = pTheme->getLineStyle( pAutoFormatEntry->mnThemedIdx ) ) *mxAutoLine = *pLineProps; -// set automatic border property for chartarea, because of tdf#81437 and tdf#82217 -if ( eObjType == OBJECTTYPE_CHARTSPACE ) +// set automatic border property for chartarea, because of tdf#81437 and tdf#82217, except for pptx (tdf#150176) +if ( eObjType == OBJECTTYPE_CHARTSPACE && !rData.mrFilter.getFileUrl().endsWithIgnoreAsciiCase(".pptx") ) { mxAutoLine->maLineFill.moFillType = oox::GraphicHelper::getDefaultChartAreaLineStyle(); mxAutoLine->moLineWidth = oox::GraphicHelper::getDefaultChartAreaLineWidth();
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 17 ++--- chart2/qa/extras/data/xlsx/tdf142351.xlsx|binary oox/source/drawingml/chart/axisconverter.cxx |4 ++-- 3 files changed, 16 insertions(+), 5 deletions(-) New commits: commit e701732725dd641741f39020d7dc965bc4db765d Author: Balazs Varga AuthorDate: Tue Aug 17 14:28:48 2021 +0200 Commit: László Németh CommitDate: Mon Aug 23 11:50:29 2021 +0200 tdf#142351 chart ooxml import: fix category axis cross position Set PROP_CrossoverPosition value regardless of the mrModel.mbAuto value, which is a different thing. This element specifies that this axis is a date or text axis based on the data that is used for the axis labels, not a specific choice. Change-Id: Ifa291aac2f4bb3981d968de3489b23f1af485104 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120592 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 89dcdeb529fd..608905e59328 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -531,10 +531,21 @@ void Chart2ExportTest::testBarChart() void Chart2ExportTest::testCrosses() { -load(u"/chart2/qa/extras/data/docx/", "Bar_horizontal_cone.docx"); -xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +// test crosses val="autoZero" with DOCX +{ +load(u"/chart2/qa/extras/data/docx/", "Bar_horizontal_cone.docx"); +xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crosses", "val", "autoZero"); +} +// tdf#142351: test crossesAt val="-50" with XLSX +{ +load(u"/chart2/qa/extras/data/xlsx/", "tdf142351.xlsx"); +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); -assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crosses", "val", "autoZero"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crossesAt", "val", "-50"); +} } void Chart2ExportTest::testScatterChartTextXValues() diff --git a/chart2/qa/extras/data/xlsx/tdf142351.xlsx b/chart2/qa/extras/data/xlsx/tdf142351.xlsx new file mode 100644 index ..0414bb3f1625 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf142351.xlsx differ diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index 7aa141c0f798..4620f5b5a15c 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -372,8 +372,8 @@ void AxisConverter::convertFromModel(const Reference& rxCoord case XML_max: eAxisPos = cssc::ChartAxisPosition_END; break; case XML_autoZero: eAxisPos = cssc::ChartAxisPosition_ZERO; break; } -if( !mrModel.mbAuto ) -aAxisProp.setProperty( PROP_CrossoverPosition, eAxisPos ); + +aAxisProp.setProperty( PROP_CrossoverPosition, eAxisPos ); // calculate automatic origin depending on scaling mode of crossing axis bool bCrossingLogScale = pCrossingAxis && lclIsLogarithmicScale( *pCrossingAxis );
[Libreoffice-commits] core.git: chart2/qa oox/source sd/qa
chart2/qa/extras/chart2import.cxx|4 - chart2/qa/extras/xshape/chart2xshape.cxx |2 oox/source/drawingml/textbody.cxx|1 oox/source/ppt/pptshape.cxx | 104 +++ sd/qa/unit/data/pptx/numfmt.pptx |binary sd/qa/unit/data/pptx/slidenum_field.pptx |binary sd/qa/unit/import-tests.cxx |2 7 files changed, 109 insertions(+), 4 deletions(-) New commits: commit 166671f4aa19deec47c10a220ae1d29fa57faa93 Author: Sarper Akdemir AuthorDate: Sun Apr 25 15:59:39 2021 +0300 Commit: Miklos Vajna CommitDate: Wed Jun 16 14:32:41 2021 +0200 tdf#59323: pptx import: import footer fields as properties Makes footer, slidenum and datetime placeholders that are inserted to the slides themselves on pptx files imported as slide properties if it is possible to do so without losing information (style, position etc.) If that is not the case and the footers have some special style applied to them that isn't inherited from master slides, fallbacks to the current implementation importing them as shapes. Also since the default way of displaying slide footers in LO use the respective text fields on master slides, information in master/layout slide datetime and footer placeholders respectively get replaced with text fields and text fields. Change-Id: Ib2f7d18103b62c0c9a8453e01cfd2fd1aa1d39af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117008 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 41d55297a336..383e4524468a 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -764,7 +764,7 @@ void Chart2ImportTest::testBnc864396() void Chart2ImportTest::testBnc889755() { load(u"/chart2/qa/extras/data/pptx/", "bnc889755.pptx"); -uno::Reference xChartDoc(getChartDocFromDrawImpress(0, 6), uno::UNO_QUERY_THROW); +uno::Reference xChartDoc(getChartDocFromDrawImpress(0, 5), uno::UNO_QUERY_THROW); CPPUNIT_ASSERT(xChartDoc->hasInternalDataProvider()); uno::Reference< chart2::XInternalDataProvider > xDataProvider( xChartDoc->getDataProvider(), uno::UNO_QUERY_THROW ); @@ -792,7 +792,7 @@ void Chart2ImportTest::testBnc889755() uno::Reference xDoc(mxComponent, uno::UNO_QUERY_THROW); uno::Reference xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW); // Shape "Title 3" -uno::Reference xShapeProps(xPage->getByIndex(5), uno::UNO_QUERY_THROW); +uno::Reference xShapeProps(xPage->getByIndex(4), uno::UNO_QUERY_THROW); awt::Gradient aTransparence; xShapeProps->getPropertyValue("FillTransparenceGradient") >>= aTransparence; CPPUNIT_ASSERT(aTransparence.StartColor != aTransparence.EndColor); diff --git a/chart2/qa/extras/xshape/chart2xshape.cxx b/chart2/qa/extras/xshape/chart2xshape.cxx index 895f84bb62a4..4964bfc455ee 100644 --- a/chart2/qa/extras/xshape/chart2xshape.cxx +++ b/chart2/qa/extras/xshape/chart2xshape.cxx @@ -177,7 +177,7 @@ void Chart2XShapeTest::testTdf76649TrendLineBug() void Chart2XShapeTest::testTdf88154LabelRotatedLayout() { load(u"chart2/qa/extras/xshape/data/pptx/", "tdf88154_LabelRotatedLayout.pptx"); -uno::Reference xChartDoc = getChartDocFromDrawImpress(0, 6); +uno::Reference xChartDoc = getChartDocFromDrawImpress(0, 5); uno::Reference xDumper(xChartDoc, UNO_QUERY_THROW); OUString rDump = xDumper->dump(); OString aXmlDump = OUStringToOString(rDump, RTL_TEXTENCODING_UTF8); diff --git a/oox/source/drawingml/textbody.cxx b/oox/source/drawingml/textbody.cxx index b665e7b355a0..f4da6886a69c 100644 --- a/oox/source/drawingml/textbody.cxx +++ b/oox/source/drawingml/textbody.cxx @@ -35,6 +35,7 @@ TextBody::TextBody() } TextBody::TextBody( const TextBodyPtr& pBody ) +: mbHasNoninheritedBodyProperties( false ) { if( pBody ) { maTextProperties = pBody->maTextProperties; diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx index 4e07ae104db3..f1c4a892ac14 100644 --- a/oox/source/ppt/pptshape.cxx +++ b/oox/source/ppt/pptshape.cxx @@ -20,8 +20,12 @@ #include #include #include +#include +#include #include +#include +#include #include #include #include @@ -86,6 +90,19 @@ static const char* lclDebugSubType( sal_Int32 nType ) return "unknown - please extend lclDebugSubType"; } +namespace +{ +bool ShapeHasNoVisualPropertiesOnImport(oox::ppt::PPTShape& rPPTShape) +{ +return !rPPTShape.hasNonInheritedShapeProperties() +&& !rPPTShape.hasShapeStyleRefs() +&& !rPPTShape.getTextBody()->hasVisualRunProperties() +&& !rPPTShape.getTextBody()->hasNoninheritedBodyProperties() +&& !rPPTShape.getTextBody()->hasListStyleOnImport() +&& !rPPTShape.getTextBody()->hasParagraphProperties(); +} +} + oox::drawingml::T
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx| 35 +++ chart2/qa/extras/data/xlsx/tdf140489.xlsx|binary oox/source/drawingml/chart/plotareaconverter.cxx |8 +++-- 3 files changed, 41 insertions(+), 2 deletions(-) New commits: commit be82f6313f298c13a2f040b218c6f2a33705ff8c Author: Szymon Kłos AuthorDate: Thu Apr 8 15:08:38 2021 +0200 Commit: Szymon Kłos CommitDate: Mon Apr 12 13:39:57 2021 +0200 tdf#140489 fix chart display in xlsx Commit 1147383: tdf#114181 XLSX combined chart: fix swapped primary and secondary axes etc. introduced regression by applying axis swaping not only for combined charts. Change-Id: I764399579ff922ddd495540fdd2a39675f2a8da5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113836 Tested-by: Jenkins Reviewed-by: Szymon Kłos diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 93596eebc2a0..3a8b77f48cdd 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -119,6 +119,7 @@ public: void testAxisTitleRotationXLSX(); void testAxisTitlePositionDOCX(); void testCombinedChartAttachedAxisXLSX(); +void testTdf140489MultiSeriesChartAxisXLSX(); void testTdf90510(); // Pie chart label placement settings(XLS) void testTdf109858(); // Pie chart label placement settings(XLSX) @@ -243,6 +244,7 @@ public: CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisTitlePositionDOCX); CPPUNIT_TEST(testCombinedChartAttachedAxisXLSX); +CPPUNIT_TEST(testTdf140489MultiSeriesChartAxisXLSX); CPPUNIT_TEST(testTdf90510); CPPUNIT_TEST(testTdf109858); CPPUNIT_TEST(testTdf130105); @@ -1759,6 +1761,39 @@ void Chart2ImportTest::testCombinedChartAttachedAxisXLSX() CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex); } +void Chart2ImportTest::testTdf140489MultiSeriesChartAxisXLSX() +{ +load(u"/chart2/qa/extras/data/xlsx/", "tdf140489.xlsx"); +Reference< chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); +// First series +Reference xSeries = getDataSeriesFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xSeries.is()); + +Reference xPropSet(xSeries, uno::UNO_QUERY_THROW); +sal_Int32 nAxisIndex = -1; +uno::Any aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); +CPPUNIT_ASSERT(aAny >>= nAxisIndex); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex); + +// Second series +xSeries = getDataSeriesFromDoc(xChartDoc, 0, 1); +CPPUNIT_ASSERT(xSeries.is()); + +xPropSet.set(xSeries, uno::UNO_QUERY_THROW); +aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); +CPPUNIT_ASSERT(aAny >>= nAxisIndex); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex); + +// Third series +xSeries = getDataSeriesFromDoc(xChartDoc, 0, 2); +CPPUNIT_ASSERT(xSeries.is()); + +xPropSet.set(xSeries, uno::UNO_QUERY_THROW); +aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); +CPPUNIT_ASSERT(aAny >>= nAxisIndex); +CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nAxisIndex); +} + void Chart2ImportTest::testInternalDataProvider() { uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromImpress(u"/chart2/qa/extras/data/odp/", "chart.odp"), uno::UNO_QUERY_THROW); const uno::Reference< chart2::data::XDataProvider >& rxDataProvider = xChartDoc->getDataProvider(); diff --git a/chart2/qa/extras/data/xlsx/tdf140489.xlsx b/chart2/qa/extras/data/xlsx/tdf140489.xlsx new file mode 100644 index ..bd24f40be7b5 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf140489.xlsx differ diff --git a/oox/source/drawingml/chart/plotareaconverter.cxx b/oox/source/drawingml/chart/plotareaconverter.cxx index 80ea37c57d30..9a0f9d337c8a 100644 --- a/oox/source/drawingml/chart/plotareaconverter.cxx +++ b/oox/source/drawingml/chart/plotareaconverter.cxx @@ -420,9 +420,13 @@ void PlotAreaConverter::convertFromModel( View3DModel& rView3DModel ) // varying point colors only for single series in single chart type bool bSupportsVaryColorsByPoint = mrModel.maTypeGroups.size() == 1; +bool bIsCombinedChart = mrModel.maTypeGroups.size() == 2 && +mrModel.maTypeGroups[0]->mnTypeId != mrModel.maTypeGroups[1]->mnTypeId; + // convert all axes sets, and check which axis is attached to the first maTypeGroups -sal_Int32 nStartAxesSetIdx = (rValAxisIds.size() > 1 && aAxesSets.size() > 0 && aAxesSets[0]->maAxes.count( API_Y_AXIS ) -&& aAxesSets[0]->maAxes[ API_Y_AXIS ]->mnAxisId != rValAxisIds[0] ) ? 1 : 0; +sal_Int32 nStartAxesSetIdx = bIsCombinedChart ? ((rValAxisIds.size() > 1 && aAxesSets.size() > 0 && aAxesSets[0]->maAxes.count( API_Y_AXIS ) +&& aAxesSets[0]->maAxes[ API_Y_AXIS ]->mnAxisId != rValAxisIds[0] ) ? 1 : 0) +: 0; sal_Int32 nAxesSetIdx = nStartAxesSetIdx; bool bUseFixedInnerSize = false;
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 10 ++ oox/source/drawingml/fillproperties.cxx |4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) New commits: commit 247963e53cce24c199a751c8ffb17f58b3a7d473 Author: Justin Luth AuthorDate: Wed Jan 27 10:46:05 2021 +0300 Commit: Justin Luth CommitDate: Thu Mar 4 17:45:23 2021 +0100 tdf#139940 oox: mark end before growing largest segment backwards This fixes a regression in 7.1 (backported to 7.0.1) caused by commit 73993fdb5d4b507694cd0edf80887d19f7e2bf9a for tdf#134183. The largest segment has already been found, so we know where the next segment starts. Now if we grow it backwards, that shouldn't affect where it ends. So flag the end before growing the start, otherwise we would have to recalculate the end again. Change-Id: Iaae401d0438e533c7498be56f48fa153f7d3ff0a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110004 Tested-by: Justin Luth Reviewed-by: Justin Luth diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 4b425a386b70..59bd6ab2fda2 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -841,6 +841,16 @@ void Chart2ImportTest::testBnc889755() CPPUNIT_ASSERT_EQUAL(OUString("Nov-13"), aRowLabels[13]); CPPUNIT_ASSERT_EQUAL(OUString("Dec-13"), aRowLabels[14]); CPPUNIT_ASSERT_EQUAL(OUString("Jan-14"), aRowLabels[15]); + +//tdf#139940 - the title's gradient was lost and was filled with solid blue, instead of a "blue underline". +uno::Reference xDoc(mxComponent, uno::UNO_QUERY_THROW); +uno::Reference xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW); +// Shape "Title 3" +uno::Reference xShapeProps(xPage->getByIndex(5), uno::UNO_QUERY_THROW); +awt::Gradient aTransparence; +xShapeProps->getPropertyValue("FillTransparenceGradient") >>= aTransparence; +CPPUNIT_ASSERT(aTransparence.StartColor != aTransparence.EndColor); +CPPUNIT_ASSERT_EQUAL(static_cast(0xff), aTransparence.StartColor); } void Chart2ImportTest::testBnc882383() diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index 754aa54ee2b8..3aa54ef36ea2 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -630,6 +630,9 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, aGradient.Angle = static_cast< sal_Int16 >( (8100 - (nDmlAngle / (PER_DEGREE / 10))) % 3600 ); Color aStartColor, aEndColor; +// Make a note where the widest segment stops, because we will try to grow it next. +auto aWidestSegmentEnd = std::next(aWidestSegmentStart); + // Try to grow the widest segment backwards: if a previous segment has the same // color, just different transparency, include it. while (aWidestSegmentStart != aGradientStops.begin()) @@ -644,7 +647,6 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, aWidestSegmentStart = it; } -auto aWidestSegmentEnd = std::next(aWidestSegmentStart); // Try to grow the widest segment forward: if a next segment has the same // color, just different transparency, include it. while (aWidestSegmentEnd != std::prev(aGradientStops.end())) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 34 ++-- chart2/qa/extras/data/docx/testcustomshapepos.docx |binary oox/source/drawingml/chart/chartdrawingfragment.cxx |9 + 3 files changed, 34 insertions(+), 9 deletions(-) New commits: commit fbe77e5d61ca63a688c12be721e760935d78e780 Author: Balazs Varga AuthorDate: Sun Dec 13 14:08:38 2020 +0100 Commit: László Németh CommitDate: Wed Dec 16 15:35:10 2020 +0100 tdf#138889 OOXML chart: fix import of rotated shapes in charts, resulted e.g. distorted arrows. Change-Id: I2d25aeeef8aed9fccacf3cc9f735123e8d891de5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107670 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index b94b27f4506a..e4742405d967 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -2615,6 +2615,11 @@ void Chart2ImportTest::testTdf134225() void Chart2ImportTest::testTdf136105() { +// FIXME: the DPI check should be removed when either (1) the test is fixed to work with +// non-default DPI; or (2) unit tests on Windows are made to use svp VCL plugin. +if (!IsDefaultDPI()) +return; + load("/chart2/qa/extras/data/xlsx/", "tdf136105.xlsx"); // 1st chart with fix inner position and size { @@ -2775,15 +2780,26 @@ void Chart2ImportTest::testTdfCustomShapePos() Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), UNO_QUERY_THROW); Reference xDrawPageSupplier(xChartDoc, UNO_QUERY_THROW); Reference xDrawPage(xDrawPageSupplier->getDrawPage(), UNO_SET_THROW); -Reference xCustomShape(xDrawPage->getByIndex(0), UNO_QUERY_THROW); - -// test position and size of a custom shape within a chart -awt::Point aPosition = xCustomShape->getPosition(); -CPPUNIT_ASSERT_DOUBLES_EQUAL(8845, aPosition.X, 300); -CPPUNIT_ASSERT_DOUBLES_EQUAL(855, aPosition.Y, 300); -awt::Size aSize = xCustomShape->getSize(); -CPPUNIT_ASSERT_DOUBLES_EQUAL(4831, aSize.Width, 300); -CPPUNIT_ASSERT_DOUBLES_EQUAL(1550, aSize.Height, 300); +// test position and size of a custom shape within a chart, rotated by 0 degree. +{ +Reference xCustomShape(xDrawPage->getByIndex(0), UNO_QUERY_THROW); +awt::Point aPosition = xCustomShape->getPosition(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(8845, aPosition.X, 300); +CPPUNIT_ASSERT_DOUBLES_EQUAL(855, aPosition.Y, 300); +awt::Size aSize = xCustomShape->getSize(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(4831, aSize.Width, 300); +CPPUNIT_ASSERT_DOUBLES_EQUAL(1550, aSize.Height, 300); +} +// test position and size of a custom shape within a chart, rotated by 90 degree. +{ +Reference xCustomShape(xDrawPage->getByIndex(1), UNO_QUERY_THROW); +awt::Point aPosition = xCustomShape->getPosition(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(1658, aPosition.X, 300); +CPPUNIT_ASSERT_DOUBLES_EQUAL(6119, aPosition.Y, 300); +awt::Size aSize = xCustomShape->getSize(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(4165, aSize.Width, 300); +CPPUNIT_ASSERT_DOUBLES_EQUAL(1334, aSize.Height, 300); +} } CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); diff --git a/chart2/qa/extras/data/docx/testcustomshapepos.docx b/chart2/qa/extras/data/docx/testcustomshapepos.docx index 31c5284e11b9..640c48ea4627 100644 Binary files a/chart2/qa/extras/data/docx/testcustomshapepos.docx and b/chart2/qa/extras/data/docx/testcustomshapepos.docx differ diff --git a/oox/source/drawingml/chart/chartdrawingfragment.cxx b/oox/source/drawingml/chart/chartdrawingfragment.cxx index 85eeb2986bcc..c41e2db49821 100644 --- a/oox/source/drawingml/chart/chartdrawingfragment.cxx +++ b/oox/source/drawingml/chart/chartdrawingfragment.cxx @@ -209,6 +209,15 @@ void ChartDrawingFragment::onEndElement() EmuRectangle aShapeRectEmu = mxAnchor->calcAnchorRectEmu( maChartRectEmu ); if( (aShapeRectEmu.X >= 0) && (aShapeRectEmu.Y >= 0) && (aShapeRectEmu.Width >= 0) && (aShapeRectEmu.Height >= 0) ) { +const sal_Int32 aRotation = mxShape->getRotation(); +if( (aRotation >= 45 * PER_DEGREE && aRotation < 135 * PER_DEGREE) || (aRotation >= 225 * PER_DEGREE && aRotation < 315 * PER_DEGREE) ) +{ +sal_Int64 nHalfWidth = aShapeRectEmu.Width / 2; +sal_Int64 nHalfHeight = aShapeRectEmu.Height / 2; +aShapeRectEmu.X = aShapeRectEmu.X + nHalfWidth - nHalfHeight; +aShapeRectEmu.Y = aShapeRectEmu.Y + nHalfHeight - nHalfWidth; +std::swap(aShapeRectEmu.Width, aShapeRectEmu.Height); +} // TODO: DrawingML implementation expects 32-bit coordinates for EMU rectangles (change that to EmuRectangle) awt::Rectangle aShapeRectEmu32( getLimite
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 19 +++ chart2/qa/extras/data/docx/testcustomshapepos.docx |binary oox/source/drawingml/chart/chartspaceconverter.cxx |6 +- 3 files changed, 24 insertions(+), 1 deletion(-) New commits: commit f1a5bb0b79c212a0459b1a17dd15f1159e663dbd Author: Balazs Varga AuthorDate: Thu Nov 26 17:44:24 2020 +0100 Commit: Balazs Varga CommitDate: Mon Nov 30 10:23:29 2020 +0100 tdf#138561 OOXML Chart import: fix custom shape position and size within charts. Use default page size for custom shapes, too, like in the case of other shapes (legend, titles, etc.), until we get the actual size of the embedded chart. Follow up commit: a01ccdfa5fd5a0260b7aedf955e1e5aa0df072c3 (tdf#138307 Chart import: fix disappeared text from custom shape) Change-Id: Id6da7322326fbe8dfa570264107db59cc45dff31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106704 Reviewed-by: Balazs Varga Tested-by: Balazs Varga diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index cb8c08c0697e..b94b27f4506a 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -170,6 +170,7 @@ public: void testTdf137505(); void testTdf137734(); void testTdf137874(); +void testTdfCustomShapePos(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -289,6 +290,7 @@ public: CPPUNIT_TEST(testTdf137505); CPPUNIT_TEST(testTdf137734); CPPUNIT_TEST(testTdf137874); +CPPUNIT_TEST(testTdfCustomShapePos); CPPUNIT_TEST_SUITE_END(); @@ -2767,6 +2769,23 @@ void Chart2ImportTest::testTdf137874() CPPUNIT_ASSERT(xLegendEntry.is()); } +void Chart2ImportTest::testTdfCustomShapePos() +{ +load("/chart2/qa/extras/data/docx/", "testcustomshapepos.docx"); +Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), UNO_QUERY_THROW); +Reference xDrawPageSupplier(xChartDoc, UNO_QUERY_THROW); +Reference xDrawPage(xDrawPageSupplier->getDrawPage(), UNO_SET_THROW); +Reference xCustomShape(xDrawPage->getByIndex(0), UNO_QUERY_THROW); + +// test position and size of a custom shape within a chart +awt::Point aPosition = xCustomShape->getPosition(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(8845, aPosition.X, 300); +CPPUNIT_ASSERT_DOUBLES_EQUAL(855, aPosition.Y, 300); +awt::Size aSize = xCustomShape->getSize(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(4831, aSize.Width, 300); +CPPUNIT_ASSERT_DOUBLES_EQUAL(1550, aSize.Height, 300); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/testcustomshapepos.docx b/chart2/qa/extras/data/docx/testcustomshapepos.docx new file mode 100644 index ..31c5284e11b9 Binary files /dev/null and b/chart2/qa/extras/data/docx/testcustomshapepos.docx differ diff --git a/oox/source/drawingml/chart/chartspaceconverter.cxx b/oox/source/drawingml/chart/chartspaceconverter.cxx index 1f90c2e092eb..d33e0086cc08 100644 --- a/oox/source/drawingml/chart/chartspaceconverter.cxx +++ b/oox/source/drawingml/chart/chartspaceconverter.cxx @@ -275,9 +275,13 @@ void ChartSpaceConverter::convertFromModel( const Reference< XShapes >& rxExtern drawing page instead, it is not possible to embed OLE objects. */ bool bOleSupport = rxExternalPage.is(); +awt::Size aChartSize = getChartSize(); +if( aChartSize.Width <= 0 || aChartSize.Height <= 0 ) +aChartSize = getDefaultPageSize(); + // now, xShapes is not null anymore getFilter().importFragment( new ChartDrawingFragment( -getFilter(), mrModel.maDrawingPath, xShapes, getChartSize(), aShapesOffset, bOleSupport ) ); +getFilter(), mrModel.maDrawingPath, xShapes, aChartSize, aShapesOffset, bOleSupport ) ); } catch( Exception& ) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 15 ++ chart2/qa/extras/data/xlsx/tdf137917.xlsx |binary oox/source/export/chartexport.cxx | 75 ++ 3 files changed, 90 insertions(+) New commits: commit e8a9d0050675034aa5d4670330ea47ef32306973 Author: Balazs Varga AuthorDate: Wed Nov 4 11:18:56 2020 +0100 Commit: László Németh CommitDate: Fri Nov 6 11:30:57 2020 +0100 tdf#137917 Chart OOXML: fix export of TimeIncrement of Date axis Export of Major, Minor interval and baseTimeUnit of date axis as required by the OOXML standard. Change-Id: I09820ad99777874e76176dcd8b64cbe864eaefdc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105284 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index d86fa14ef84c..73f9166d176c 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -181,6 +181,7 @@ public: void testTdf123647(); void testTdf136267(); void testDataLabelPlacementPieChart(); +void testTdf137917(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -324,6 +325,7 @@ public: CPPUNIT_TEST(testTdf123647); CPPUNIT_TEST(testTdf136267); CPPUNIT_TEST(testDataLabelPlacementPieChart); +CPPUNIT_TEST(testTdf137917); CPPUNIT_TEST_SUITE_END(); @@ -2969,6 +2971,19 @@ void Chart2ExportTest::testDataLabelPlacementPieChart() } +void Chart2ExportTest::testTdf137917() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf137917.xlsx"); +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:baseTimeUnit", "val", "days"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:majorUnit", "val", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:majorTimeUnit", "val", "months"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:minorUnit", "val", "7"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:minorTimeUnit", "val", "days"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/tdf137917.xlsx b/chart2/qa/extras/data/xlsx/tdf137917.xlsx new file mode 100644 index ..4d08a23acd8a Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf137917.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 19c5b7abf5f4..f13cbca60d8c 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -48,6 +48,9 @@ #include #include #include +#include +#include +#include #include #include @@ -286,6 +289,51 @@ static sal_Int32 lcl_getCategoryAxisType( const Reference< chart2::XDiagram >& x return nAxisType; } +static OUString lclGetTimeUnitToken( sal_Int32 nTimeUnit ) +{ +switch( nTimeUnit ) +{ +case cssc::TimeUnit::DAY: return "days"; +case cssc::TimeUnit::MONTH:return "months"; +case cssc::TimeUnit::YEAR: return "years"; +default: OSL_ENSURE(false, "lclGetTimeUnitToken - unexpected time unit"); +} +return "days"; +} + +static cssc::TimeIncrement lcl_getDateTimeIncrement( const Reference< chart2::XDiagram >& xDiagram, sal_Int32 nAxisIndex ) +{ +cssc::TimeIncrement aTimeIncrement; +try +{ +Reference< chart2::XCoordinateSystemContainer > xCooSysCnt( +xDiagram, uno::UNO_QUERY_THROW); +const Sequence< Reference< chart2::XCoordinateSystem > > aCooSysSeq( +xCooSysCnt->getCoordinateSystems()); +for( const auto& xCooSys : aCooSysSeq ) +{ +OSL_ASSERT(xCooSys.is()); +if( 0 < xCooSys->getDimension() && nAxisIndex <= xCooSys->getMaximumAxisIndexByDimension(0) ) +{ +Reference< chart2::XAxis > xAxis = xCooSys->getAxisByDimension(0, nAxisIndex); +OSL_ASSERT(xAxis.is()); +if( xAxis.is() ) +{ +chart2::ScaleData aScaleData = xAxis->getScaleData(); +aTimeIncrement = aScaleData.TimeIncrement; +break; +} +} +} +} +catch (const uno::Exception&) +{ +DBG_UNHANDLED_EXCEPTION("oox"); +} + +return aTimeIncrement; +} + static bool lcl_isSeriesAttachedToFirstAxis( const Reference< chart2::XDataSeries > & xDataSeries ) { @@ -3184,6 +3232,33 @@ void ChartExport::_exportAxis( // FIXME: seems not support? lblOffset pFS->singleElement(FSNS(XML_c, XML_lblOffset), XML_val, OString::number(100)); +// export baseTimeUnit, majorTimeUnit, minorTimeUnit
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx| 12 oox/source/drawingml/chart/axisconverter.cxx |4 2 files changed, 16 insertions(+) New commits: commit e64f9356df76c41e3c5c432984e0ce1d25ca Author: Tünde Tóth AuthorDate: Thu Oct 29 14:47:09 2020 +0100 Commit: László Németh CommitDate: Fri Oct 30 19:08:29 2020 +0100 tdf#126133 Chart OOXML import: set default text rotation to 0° for the horizontal axis title, even if the position of the axis is left or right. With this, OOXML charts generated by third-party tools imported without bad rotated title text (as previously in commit fdb6d6ccf45e679ff3e369a876482b6801e08e25 [tdf#137734 Chart OOXML import: fix variable color charts], without bad variable colors). Change-Id: Id348fe037e4f1eb2d7253957224298aa95db5b15 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105012 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 0cff3a8027be..62f9b85c1d76 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -2739,6 +2739,18 @@ void Chart2ImportTest::testTdf137734() bool bVaryColor = true; CPPUNIT_ASSERT(aAny >>= bVaryColor); CPPUNIT_ASSERT(!bVaryColor); + +// tdf#126133 Test primary X axis Rotation value +Reference xXAxis = getAxisFromDoc(xChartDoc, 0, 0, 0); +CPPUNIT_ASSERT(xXAxis.is()); +Reference xTitled(xXAxis, uno::UNO_QUERY_THROW); +Reference xTitle = xTitled->getTitleObject(); +CPPUNIT_ASSERT(xTitle.is()); +Reference xTitlePropSet(xTitle, uno::UNO_QUERY_THROW); +uno::Any aAny2 = xTitlePropSet->getPropertyValue("TextRotation"); +double nRotation = -1; +CPPUNIT_ASSERT(aAny2 >>= nRotation); +CPPUNIT_ASSERT_EQUAL(0.0, nRotation); } CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index 8599c68e6732..fa506e5a04dc 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -371,6 +371,10 @@ void AxisConverter::convertFromModel( if( mrModel.mxTitle.is() && (rTypeGroups.front()->getTypeInfo().meTypeCategory != TYPECATEGORY_RADAR) ) { Reference< XTitled > xTitled( xAxis, UNO_QUERY_THROW ); +if (((nAxisIdx == API_X_AXIS && rTypeInfo.meTypeId != TYPEID_HORBAR) +|| (nAxisIdx == API_Y_AXIS && rTypeInfo.meTypeId == TYPEID_HORBAR)) +&& (mrModel.mnAxisPos == XML_l || mrModel.mnAxisPos == XML_r)) +mrModel.mxTitle->mnDefaultRotation = 0; TitleConverter aTitleConv( *this, *mrModel.mxTitle ); aTitleConv.convertFromModel( xTitled, OoxResId(STR_DIAGRAM_AXISTITLE), OBJECTTYPE_AXISTITLE, nAxesSetIdx, nAxisIdx ); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 19 ++- chart2/qa/extras/data/xlsx/tdf137734.xlsx |binary oox/source/drawingml/chart/axismodel.cxx |2 +- oox/source/drawingml/chart/typegroupmodel.cxx |2 +- 4 files changed, 20 insertions(+), 3 deletions(-) New commits: commit fdb6d6ccf45e679ff3e369a876482b6801e08e25 Author: Tünde Tóth AuthorDate: Tue Oct 27 15:41:02 2020 +0100 Commit: László Németh CommitDate: Fri Oct 30 15:40:12 2020 +0100 tdf#137734 Chart OOXML import: fix variable color charts generated by third-party tools by setting VaryColorsByPoint, if the c:varyColors element is missing. Change-Id: Ia5031d26699b8926054b96ba38320ac848b4f228 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104892 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 705c4a69a25f..0cff3a8027be 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -170,6 +170,7 @@ public: void testTdf134111(); void testTdf136752(); void testTdf137505(); +void testTdf137734(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -286,6 +287,7 @@ public: CPPUNIT_TEST(testTdf134111); CPPUNIT_TEST(testTdf136752); CPPUNIT_TEST(testTdf137505); +CPPUNIT_TEST(testTdf137734); CPPUNIT_TEST_SUITE_END(); @@ -1540,7 +1542,7 @@ void Chart2ImportTest::testVaryColorDefaultValues2013XLSX() uno::Any aAny = xPropSet->getPropertyValue("VaryColorsByPoint"); bool bVaryColor = false; CPPUNIT_ASSERT(aAny >>= bVaryColor); -CPPUNIT_ASSERT(bVaryColor); +CPPUNIT_ASSERT(!bVaryColor); } void Chart2ImportTest::testPlotVisOnlyDefaultValue2013XLSX() @@ -2724,6 +2726,21 @@ void Chart2ImportTest::testTdf137505() CPPUNIT_ASSERT_EQUAL(float(12), nFontSize); } +void Chart2ImportTest::testTdf137734() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf137734.xlsx"); +Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); +CPPUNIT_ASSERT(xChartDoc.is()); +Reference xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xDataSeries.is()); +Reference xPropSet(xDataSeries, uno::UNO_QUERY_THROW); +uno::Any aAny = xPropSet->getPropertyValue("VaryColorsByPoint"); +bool bVaryColor = true; +CPPUNIT_ASSERT(aAny >>= bVaryColor); +CPPUNIT_ASSERT(!bVaryColor); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/tdf137734.xlsx b/chart2/qa/extras/data/xlsx/tdf137734.xlsx new file mode 100644 index ..8c177becc30e Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf137734.xlsx differ diff --git a/oox/source/drawingml/chart/axismodel.cxx b/oox/source/drawingml/chart/axismodel.cxx index d84c707eba01..0159810dfc1f 100644 --- a/oox/source/drawingml/chart/axismodel.cxx +++ b/oox/source/drawingml/chart/axismodel.cxx @@ -49,7 +49,7 @@ AxisModel::AxisModel( sal_Int32 nTypeId, bool bMSO2007Doc ) : mnTickMarkSkip( 0 ), mnTypeId( nTypeId ), mbAuto( false ), -mbDeleted( !bMSO2007Doc ), +mbDeleted( false ), mbNoMultiLevel( false ) { } diff --git a/oox/source/drawingml/chart/typegroupmodel.cxx b/oox/source/drawingml/chart/typegroupmodel.cxx index cc106a5de118..9479f93c4939 100644 --- a/oox/source/drawingml/chart/typegroupmodel.cxx +++ b/oox/source/drawingml/chart/typegroupmodel.cxx @@ -53,7 +53,7 @@ TypeGroupModel::TypeGroupModel( sal_Int32 nTypeId, bool bMSO2007Doc ) : mbShowMarker( !bMSO2007Doc ), mbShowNegBubbles( !bMSO2007Doc ), mbSmooth( !bMSO2007Doc ), -mbVaryColors( !bMSO2007Doc ), +mbVaryColors( false ), mbWireframe( !bMSO2007Doc ) { } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 55 + chart2/qa/extras/data/docx/tdf136650.docx |binary oox/source/drawingml/chart/seriesconverter.cxx | 22 ++ 3 files changed, 53 insertions(+), 24 deletions(-) New commits: commit e4d3ad9fe640e71cf3bb4c969b75ebc17ce8e335 Author: Balazs Varga AuthorDate: Tue Sep 15 16:50:45 2020 +0200 Commit: László Németh CommitDate: Tue Sep 22 11:24:42 2020 +0200 tdf#136650 DOCX pie chart import: fix percentage Follow-up of commit e0da00d655ecca5986eea3812a8a670c6adbc40f (tdf#132174 Chart DOCX import: fix label number format). Change-Id: Ie0b2fe6305d7696de6dddc1f17d078fc2e749e4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102753 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 651d2b829e06..fe0a2c48231e 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -1303,23 +1303,46 @@ void Chart2ImportTest::testNumberFormatsXLSX() void Chart2ImportTest::testNumberFormatsDOCX() { load("/chart2/qa/extras/data/docx/", "tdf132174.docx"); -uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); -CPPUNIT_ASSERT(xChartDoc.is()); - -css::uno::Reference xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); -Reference xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); -uno::Reference xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); -CPPUNIT_ASSERT(xPropertySet.is()); +{ +uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +css::uno::Reference xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); +Reference xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +uno::Reference xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT(xPropertySet.is()); + +sal_Int32 nNumberFormat; +bool bLinkNumberFormatToSource = true; +const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, "0%"); +xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; +CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); +xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; +// LinkNumberFormatToSource should be set to false even if the original OOXML contain a true value, +// because the inner data table of charts have no own number format! +CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); +} -sal_Int32 nNumberFormat; -bool bLinkNumberFormatToSource = true; -const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, "0%"); -xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; -CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); -xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; -// LinkNumberFormatToSource should be set to false even if the OOXML contain a true value, -// because the inner data table of charts have no own number format! -CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); +load("/chart2/qa/extras/data/docx/", "tdf136650.docx"); +{ +uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +css::uno::Reference xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); +Reference xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xDataSeries.is()); +Reference xPropertySet(xDataSeries->getDataPointByIndex(1), uno::UNO_SET_THROW); + +sal_Int32 nNumberFormat; +bool bLinkNumberFormatToSource = true; +const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, "0%"); +xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; +CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); +xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; +// LinkNumberFormatToSource should be set to false even if the original OOXML file contain a true value, +// because the inner data table of charts have no own number format! +CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); +} } void Chart2ImportTest::testPercentageNumberFormatsDOCX() diff --git a/chart2/qa/extras/data/docx/tdf136650.docx b/chart2/qa/extras/data/docx/tdf136650.docx new file mode 100644 index ..cd095ec63110 Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf136650.doc
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 17 + chart2/qa/extras/data/xlsx/data_labels_fill_color.xlsx |binary oox/source/export/chartexport.cxx | 31 + 3 files changed, 42 insertions(+), 6 deletions(-) New commits: commit a11bb74d4f464e9639ddb5b8d87dc4770663fea8 Author: Gülşah Köse AuthorDate: Fri Sep 18 13:20:30 2020 +0300 Commit: Gülşah Köse CommitDate: Fri Sep 18 18:55:17 2020 +0200 tdf#136247 OOXML export data label background color. Change-Id: Ie3e00e8195239e6570bfe76c2451bae11c209145 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102999 Tested-by: Jenkins Reviewed-by: Gülşah Köse diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 8916208f8bde..49edb53991fe 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -107,6 +107,7 @@ public: void testAxisNumberFormatXLSX(); void testDataPointLabelNumberFormatXLSX(); void testDataLabelDefaultValuesXLSX(); +void testDataLabelFillColor(); void testTitleOverlayXLSX(); void testInvertIfNegativeXLSX(); void testBubble3DXLSX(); @@ -248,6 +249,7 @@ public: CPPUNIT_TEST(testAxisNumberFormatXLSX); CPPUNIT_TEST(testDataPointLabelNumberFormatXLSX); CPPUNIT_TEST(testDataLabelDefaultValuesXLSX); +CPPUNIT_TEST(testDataLabelFillColor); CPPUNIT_TEST(testTitleOverlayXLSX); CPPUNIT_TEST(testInvertIfNegativeXLSX); CPPUNIT_TEST(testBubble3DXLSX); @@ -1739,6 +1741,21 @@ void Chart2ExportTest::testDataLabelDefaultValuesXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLblPos", "val", "outEnd"); } +void Chart2ExportTest::testDataLabelFillColor() +{ +load("/chart2/qa/extras/data/xlsx/", "data_labels_fill_color.xlsx"); +Reference< chart2::XChartDocument> xDoc = getChartDocFromSheet(0, mxComponent); +Reference xSeries = getDataSeriesFromDoc(xDoc, 0); +Reference xPropSet(xSeries, uno::UNO_QUERY_THROW); +uno::Any aAny = xPropSet->getPropertyValue("LabelFillColor"); +sal_Int32 nLabelFillColor; +CPPUNIT_ASSERT(aAny >>= nLabelFillColor); + +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:spPr/a:solidFill/a:srgbClr", "val", "F79646"); +} + void Chart2ExportTest::testTitleOverlayXLSX() { load("/chart2/qa/extras/data/xlsx/", "chart_title.xlsx"); diff --git a/chart2/qa/extras/data/xlsx/data_labels_fill_color.xlsx b/chart2/qa/extras/data/xlsx/data_labels_fill_color.xlsx new file mode 100644 index ..1a55f5b86836 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/data_labels_fill_color.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 12b3aba485ab..4d830f37c6ba 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3407,27 +3407,46 @@ void writeLabelProperties( const FSHelperPtr& pFS, ChartExport* pChartExport, Sequence> aCustomLabelFields; sal_Int32 nLabelBorderWidth = 0; sal_Int32 nLabelBorderColor = 0x00FF; +sal_Int32 nLabelFillColor = -1; xPropSet->getPropertyValue("Label") >>= aLabel; xPropSet->getPropertyValue("CustomLabelFields") >>= aCustomLabelFields; xPropSet->getPropertyValue("LabelBorderWidth") >>= nLabelBorderWidth; xPropSet->getPropertyValue("LabelBorderColor") >>= nLabelBorderColor; +xPropSet->getPropertyValue("LabelFillColor") >>= nLabelFillColor; -if (nLabelBorderWidth > 0) +if (nLabelBorderWidth > 0 || nLabelFillColor != -1) { pFS->startElement(FSNS(XML_c, XML_spPr)); -pFS->startElement(FSNS(XML_a, XML_ln), XML_w, - OString::number(convertHmmToEmu(nLabelBorderWidth))); -if (nLabelBorderColor != -1) + +if (nLabelFillColor != -1) { pFS->startElement(FSNS(XML_a, XML_solidFill)); -OString aStr = OString::number(nLabelBorderColor, 16).toAsciiUpperCase(); +OString aStr = OString::number(nLabelFillColor, 16).toAsciiUpperCase(); pFS->singleElement(FSNS(XML_a, XML_srgbClr), XML_val, aStr); pFS->endElement(FSNS(XML_a, XML_solidFill)); } -pFS->endElement(FSNS(XML_a, XML_ln)); + +if (nLabelBorderWidth > 0) +{ +pFS->startElement(FSNS(XML_a, XML_ln), XML_w, + OString::number(convertHmmToEmu(nLabelBorderWidth))); + +if (nLabelBorderColor != -1) +{ +pFS->startElement(FSNS(XML_a, XML_solidFill)); + +OString aStr = OString::number(nLabelBorderColor, 16).toAsciiUpperCase(); +pFS->singleElement(FSNS(XML_a, XML_srgbClr), XML_val, aStr); + +pFS->en
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 14 ++ chart2/qa/extras/data/odp/tdf121189.odp |binary oox/source/export/shapes.cxx|1 + 3 files changed, 15 insertions(+) New commits: commit 0c5ac9d1cb39eac838a612092a8934a6ca12326f Author: Daniel Arato (NISZ) AuthorDate: Mon Aug 24 17:29:08 2020 +0200 Commit: László Németh CommitDate: Mon Aug 31 10:12:41 2020 +0200 tdf#121189 PPTX export: fix missing chart Based on Regina Henschel's technical analysis and code pointer. Change-Id: Ifdea48c09d23dce495fa6bc90a9e1648dbb5ccb3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101283 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index fddfdc0c2e67..7e17c2f1307c 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -156,6 +156,7 @@ public: void testTdf119029(); void testTdf108022(); void testTdf121744(); +void testTdf121189(); void testTdf122031(); void testTdf115012(); void testTdf134118(); @@ -295,6 +296,7 @@ public: CPPUNIT_TEST(testTdf119029); CPPUNIT_TEST(testTdf108022); CPPUNIT_TEST(testTdf121744); +CPPUNIT_TEST(testTdf121189); CPPUNIT_TEST(testTdf122031); CPPUNIT_TEST(testTdf115012); CPPUNIT_TEST(testTdf134118); @@ -2577,6 +2579,18 @@ void Chart2ExportTest::testTdf121744() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]", "val", YValueId ); } +void Chart2ExportTest::testTdf121189() +{ +load("/chart2/qa/extras/data/odp/", "tdf121189.odp"); +reload("Impress Office Open XML"); + +uno::Reference xDoc(mxComponent, uno::UNO_QUERY_THROW); +uno::Reference xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xPage->getCount()); +uno::Reference xShape(xPage->getByIndex(0), uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT_EQUAL(OUString("com.sun.star.drawing.OLE2Shape"), xShape->getShapeType()); +} + void Chart2ExportTest::testTdf122031() { //Checks pie chart data label format. diff --git a/chart2/qa/extras/data/odp/tdf121189.odp b/chart2/qa/extras/data/odp/tdf121189.odp new file mode 100644 index ..6f99e0054936 Binary files /dev/null and b/chart2/qa/extras/data/odp/tdf121189.odp differ diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx index 3121aa745a16..e7997226f689 100644 --- a/oox/source/export/shapes.cxx +++ b/oox/source/export/shapes.cxx @@ -1490,6 +1490,7 @@ static const NameToConvertMapType& lcl_GetConverters() { "com.sun.star.presentation.GraphicObjectShape" , &ShapeExport::WriteGraphicObjectShape }, { "com.sun.star.presentation.MediaShape" , &ShapeExport::WriteGraphicObjectShape }, +{ "com.sun.star.presentation.ChartShape" , &ShapeExport::WriteOLE2Shape }, { "com.sun.star.presentation.OLE2Shape", &ShapeExport::WriteOLE2Shape }, { "com.sun.star.presentation.TableShape" , &ShapeExport::WriteTableShape }, { "com.sun.star.presentation.TextShape", &ShapeExport::WriteTextShape }, ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 11 +++ chart2/qa/extras/data/xlsx/tdf134118.xlsx |binary oox/source/drawingml/chart/chartspaceconverter.cxx | 11 ++- 3 files changed, 21 insertions(+), 1 deletion(-) New commits: commit 886c2e35fadc7813498da041fc4ea8a8ba2fb358 Author: Balazs Varga AuthorDate: Wed Aug 12 08:34:42 2020 +0200 Commit: László Németh CommitDate: Sun Aug 23 13:05:46 2020 +0200 tdf#134118 Chart OOXML import: fix gaps in month based data Leave gaps instead of zeroes, like MSO does, if data ranges contain empty cells at month based time resolution. Change-Id: Ie934b56d9d5cb556bcca41e0e4ddce3ea65f7228 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100573 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 948aaec6700a..4be864c69ce4 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -157,6 +157,7 @@ public: void testTdf121744(); void testTdf122031(); void testTdf115012(); +void testTdf134118(); void testTdf123206_customLabelText(); void testCustomLabelText(); void testDeletedLegendEntries(); @@ -295,6 +296,7 @@ public: CPPUNIT_TEST(testTdf121744); CPPUNIT_TEST(testTdf122031); CPPUNIT_TEST(testTdf115012); +CPPUNIT_TEST(testTdf134118); CPPUNIT_TEST(testTdf123206_customLabelText); CPPUNIT_TEST(testCustomLabelText); CPPUNIT_TEST(testDeletedLegendEntries); @@ -2571,6 +2573,15 @@ void Chart2ExportTest::testTdf115012() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:dispBlanksAs", "val", "zero"); } +void Chart2ExportTest::testTdf134118() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf134118.xlsx"); +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +// workaround: use leave-gap instead of zero to show the original line chart +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:dispBlanksAs", "val", "gap"); +} + void Chart2ExportTest::testTdf123206_customLabelText() { load("/chart2/qa/extras/data/docx/", "tdf123206.docx"); diff --git a/chart2/qa/extras/data/xlsx/tdf134118.xlsx b/chart2/qa/extras/data/xlsx/tdf134118.xlsx new file mode 100644 index ..ca86fb8cf118 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf134118.xlsx differ diff --git a/oox/source/drawingml/chart/chartspaceconverter.cxx b/oox/source/drawingml/chart/chartspaceconverter.cxx index 342b6190a67d..1f90c2e092eb 100644 --- a/oox/source/drawingml/chart/chartspaceconverter.cxx +++ b/oox/source/drawingml/chart/chartspaceconverter.cxx @@ -206,7 +206,16 @@ void ChartSpaceConverter::convertFromModel( const Reference< XShapes >& rxExtern { using namespace ::com::sun::star::chart::MissingValueTreatment; sal_Int32 nMissingValues = LEAVE_GAP; -switch( mrModel.mnDispBlanksAs ) + +// tdf#134118 leave gap if the time unit is month +bool bIsMonthBasedTimeUnit = false; +if( mrModel.mxPlotArea.is() && mrModel.mxPlotArea->maAxes.size() > 0 && +mrModel.mxPlotArea->maAxes[0]->monBaseTimeUnit.has() ) +{ +bIsMonthBasedTimeUnit = mrModel.mxPlotArea->maAxes[0]->monBaseTimeUnit.get() == XML_months; +} + +if (!bIsMonthBasedTimeUnit) switch( mrModel.mnDispBlanksAs ) { case XML_gap: nMissingValues = LEAVE_GAP; break; case XML_zero: nMissingValues = USE_ZERO; break; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source sc/source
chart2/qa/extras/chart2export.cxx | 10 ++ chart2/qa/extras/data/xlsx/empty_chart.xlsx |binary oox/source/export/chartexport.cxx |5 + sc/source/filter/xcl97/xcl97rec.cxx | 10 ++ 4 files changed, 21 insertions(+), 4 deletions(-) New commits: commit a8950d08a33e7aded31d4591c98a03d1edf8c5a4 Author: Tünde Tóth AuthorDate: Fri Aug 14 13:45:38 2020 +0200 Commit: László Németh CommitDate: Wed Aug 19 10:31:51 2020 +0200 tdf#123647 Chart XLSX export: fix missing empty chart Save empty chart as empty bar chart, because a chart without chart type is invalid. Change-Id: Ieb9cc4300070b5280565fe814ba0343640dfff0a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100844 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 754768880054..948aaec6700a 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -174,6 +174,7 @@ public: void testTdf132594(); void testTdf134255(); void testTdf134977(); +void testTdf123647(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -311,6 +312,7 @@ public: CPPUNIT_TEST(testTdf132594); CPPUNIT_TEST(testTdf134255); CPPUNIT_TEST(testTdf134977); +CPPUNIT_TEST(testTdf123647); CPPUNIT_TEST_SUITE_END(); @@ -2861,6 +2863,14 @@ void Chart2ExportTest::testTdf134977() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:tx/c:rich/a:p/a:r/a:rPr", "sz", "900"); } +void Chart2ExportTest::testTdf123647() +{ +load("/chart2/qa/extras/data/xlsx/", "empty_chart.xlsx"); +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart", 1); +} CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/empty_chart.xlsx b/chart2/qa/extras/data/xlsx/empty_chart.xlsx new file mode 100644 index ..449902146af6 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/empty_chart.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index ab8458d44b04..5ea054d83ca0 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -1380,6 +1380,11 @@ void ChartExport::exportPlotArea( const Reference< css::chart::XChartDocument >& // chart type const Sequence< Reference< chart2::XCoordinateSystem > > aCooSysSeq( xBCooSysCnt->getCoordinateSystems()); + +// tdf#123647 Save empty chart as empty bar chart. +if (!aCooSysSeq.hasElements()) +exportBarChart(nullptr); + for( const auto& rCS : aCooSysSeq ) { Reference< chart2::XChartTypeContainer > xCTCnt( rCS, uno::UNO_QUERY ); diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx index 213dfe77d4ae..0f9ba1288d33 100644 --- a/sc/source/filter/xcl97/xcl97rec.cxx +++ b/sc/source/filter/xcl97/xcl97rec.cxx @@ -202,9 +202,11 @@ bool IsValidObject( const XclObj& rObj ) if (!xCooSysContainer.is()) return false; -const uno::Sequence > xCooSysSeq = xCooSysContainer->getCoordinateSystems(); -if (!xCooSysSeq.hasElements()) -return false; +const uno::Sequence> xCooSysSeq = xCooSysContainer->getCoordinateSystems(); + +// tdf#123647 Save empty charts too. +// if (!xCooSysSeq.hasElements()) +// return false; for (const auto& rCooSys : xCooSysSeq) { @@ -212,7 +214,7 @@ bool IsValidObject( const XclObj& rObj ) if (!xChartTypeCont.is()) return false; -uno::Sequence > xChartTypeSeq = xChartTypeCont->getChartTypes(); +uno::Sequence> xChartTypeSeq = xChartTypeCont->getChartTypes(); if (!xChartTypeSeq.hasElements()) // No chart type. Not good. return false; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 26 +- chart2/qa/extras/chart2import.cxx |2 - chart2/qa/extras/data/xlsx/custom_data_label.xlsx |binary oox/source/drawingml/chart/seriesconverter.cxx|1 4 files changed, 27 insertions(+), 2 deletions(-) New commits: commit bcda268cde1f8408c2066ce985acedfce3e3bc2e Author: Tünde Tóth AuthorDate: Mon Aug 3 09:12:14 2020 +0200 Commit: László Németh CommitDate: Fri Aug 7 11:54:24 2020 +0200 tdf#134977 Chart OOXML: fix import of custom data label Use the data series properties for the default properties of the custom data labels. Change-Id: I651fa030276dfdec13b5801c0188bfd07c498b49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99987 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 628bdb98b213..f9b2651a922c 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -173,6 +173,7 @@ public: void testTdf133191(); void testTdf132594(); void testTdf134255(); +void testTdf134977(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -309,6 +310,7 @@ public: CPPUNIT_TEST(testTdf133191); CPPUNIT_TEST(testTdf132594); CPPUNIT_TEST(testTdf134255); +CPPUNIT_TEST(testTdf134977); CPPUNIT_TEST_SUITE_END(); @@ -2238,7 +2240,7 @@ void Chart2ExportTest::testCustomDataLabel() CPPUNIT_ASSERT_EQUAL(OUString("line"), aFields[5]->getString()); aFields[5]->getPropertyValue("CharHeight") >>= nFontSize; aFields[5]->getPropertyValue("CharColor") >>= nFontColor; -CPPUNIT_ASSERT_EQUAL(static_cast(13), nFontSize); +CPPUNIT_ASSERT_EQUAL(static_cast(11.97), nFontSize); CPPUNIT_ASSERT_EQUAL(static_cast(0xbf9000), nFontColor); CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_NEWLINE, aFields[6]->getFieldType()); @@ -2837,6 +2839,28 @@ void Chart2ExportTest::testTdf134255() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:txPr/a:bodyPr", "wrap", "square"); } +void Chart2ExportTest::testTdf134977() +{ +load("/chart2/qa/extras/data/xlsx/", "custom_data_label.xlsx"); + +//import test +uno::Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT(xChartDoc.is()); +Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xDataSeries.is()); +uno::Reference xPropertySet(xDataSeries->getDataPointByIndex(0), uno::UNO_SET_THROW); +uno::Sequence> aFields; +float nFontSize; +xPropertySet->getPropertyValue("CustomLabelFields") >>= aFields; +aFields[0]->getPropertyValue("CharHeight") >>= nFontSize; +CPPUNIT_ASSERT_EQUAL(static_cast(9), nFontSize); + +//export test +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:tx/c:rich/a:p/a:r/a:rPr", "sz", "900"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 6c982238a5b3..d502d163fc64 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -1862,7 +1862,7 @@ void Chart2ImportTest::testTdf115107() CPPUNIT_ASSERT_EQUAL(OUString("line"), aFields[5]->getString()); aFields[5]->getPropertyValue("CharHeight") >>= nFontSize; aFields[5]->getPropertyValue("CharColor") >>= nFontColor; -CPPUNIT_ASSERT_EQUAL(static_cast(13), nFontSize); +CPPUNIT_ASSERT_EQUAL(static_cast(11.97), nFontSize); CPPUNIT_ASSERT_EQUAL(static_cast(0xbf9000), nFontColor); CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_NEWLINE, aFields[6]->getFieldType()); diff --git a/chart2/qa/extras/data/xlsx/custom_data_label.xlsx b/chart2/qa/extras/data/xlsx/custom_data_label.xlsx new file mode 100644 index ..cc69aaf0dc66 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/custom_data_label.xlsx differ diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index b34bc355ca4d..6e75fc89beab 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -315,6 +315,7 @@ void DataLabelConverter::convertFromModel( const Reference< XDataSeries >& rxDat // Store properties oox::PropertySet aPropertySet( xCustomLabel ); +convertTextProperty( aPropertySet, getFormatter(), mrModel.mxText->mxTextBody ); pRun->getTextCharacterProperties().pushToPropSet(
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 19 +++ chart2/qa/extras/data/docx/tdf134111.docx |binary oox/source/drawingml/chart/objectformatter.cxx |2 +- 3 files changed, 20 insertions(+), 1 deletion(-) New commits: commit 6d1e9482cf1519e5b4d73331a5bcdfbbc9a15776 Author: Balazs Varga AuthorDate: Fri Jun 19 11:07:04 2020 +0200 Commit: László Németh CommitDate: Wed Jul 15 16:36:23 2020 +0200 tdf#134111 Chart OOXML Import: set text break to true of category axis labels, even if the XML do not contain Text Properties of category axis labels. Change-Id: Ia0b154b2dfbfb00ffa0762af771423196586a5ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96683 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 47aacb1af402..6c982238a5b3 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -163,6 +163,7 @@ public: void testTdf133376(); void testTdf134225(); void testTdf91250(); +void testTdf134111(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -274,6 +275,7 @@ public: CPPUNIT_TEST(testTdf133376); CPPUNIT_TEST(testTdf134225); CPPUNIT_TEST(testTdf91250); +CPPUNIT_TEST(testTdf134111); CPPUNIT_TEST_SUITE_END(); @@ -2575,6 +2577,23 @@ void Chart2ImportTest::testTdf91250() CPPUNIT_ASSERT_EQUAL(OUString("8.657"), aCategories[3]); } +void Chart2ImportTest::testTdf134111() +{ +// tdf134111 : To check TextBreak value is true +load("/chart2/qa/extras/data/docx/", "tdf134111.docx"); +uno::Reference< chart::XChartDocument > xChartDoc = getChartDocFromWriter(0); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); +uno::Reference< chart::XDiagram > mxDiagram(xChartDoc->getDiagram()); +CPPUNIT_ASSERT(mxDiagram.is()); +uno::Reference< chart::XAxisXSupplier > xAxisXSupp(mxDiagram, uno::UNO_QUERY); +CPPUNIT_ASSERT(xAxisXSupp.is()); +uno::Reference< beans::XPropertySet > xAxisProp(xAxisXSupp->getXAxis()); +bool bTextBreak = false; +xAxisProp->getPropertyValue("TextBreak") >>= bTextBreak; +// Expected value of 'TextBreak' is true +CPPUNIT_ASSERT(bTextBreak); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/tdf134111.docx b/chart2/qa/extras/data/docx/tdf134111.docx new file mode 100644 index ..26e3a03e0b6d Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf134111.docx differ diff --git a/oox/source/drawingml/chart/objectformatter.cxx b/oox/source/drawingml/chart/objectformatter.cxx index 7e4073686065..c0669678eee0 100644 --- a/oox/source/drawingml/chart/objectformatter.cxx +++ b/oox/source/drawingml/chart/objectformatter.cxx @@ -1155,7 +1155,7 @@ bool ObjectFormatter::getTextRotation( const ModelRef< TextBody >& rxTextProp, s } else { -return false; +return true; } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 22 ++ chart2/qa/extras/data/docx/tdf134255.docx |binary oox/source/drawingml/chart/objectformatter.cxx |4 3 files changed, 26 insertions(+) New commits: commit c777cb492d12fb7038254f116102716b9cb84fa3 Author: Balazs Varga AuthorDate: Tue Jul 7 13:11:19 2020 +0200 Commit: László Németh CommitDate: Mon Jul 13 10:39:19 2020 +0200 tdf#134255 Chart OOXML Import: set the auto text wrap property to true, if we do not have text property attribute. Change-Id: I1a416f74c3f034f902fd583790f9db307f5e8881 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98252 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 4e4c7168c3b3..f70898a11ce6 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -171,6 +171,7 @@ public: void testTdf133190(); void testTdf133191(); void testTdf132594(); +void testTdf134255(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -305,6 +306,7 @@ public: CPPUNIT_TEST(testTdf133190); CPPUNIT_TEST(testTdf133191); CPPUNIT_TEST(testTdf132594); +CPPUNIT_TEST(testTdf134255); CPPUNIT_TEST_SUITE_END(); @@ -2802,6 +2804,26 @@ void Chart2ExportTest::testTdf132594() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:cat", 1); } +void Chart2ExportTest::testTdf134255() +{ +load("/chart2/qa/extras/data/docx/", "tdf134255.docx"); +Reference xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +// import test +Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xDataSeries.is()); +Reference< beans::XPropertySet > xPropSet(xDataSeries, UNO_QUERY_THROW); +bool bWrap = false; +CPPUNIT_ASSERT((xPropSet->getPropertyValue("TextWordWrap") >>= bWrap) && bWrap); + +// export test +xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:txPr/a:bodyPr", "wrap", "square"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/tdf134255.docx b/chart2/qa/extras/data/docx/tdf134255.docx new file mode 100644 index ..ff3cd8b67b53 Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf134255.docx differ diff --git a/oox/source/drawingml/chart/objectformatter.cxx b/oox/source/drawingml/chart/objectformatter.cxx index c4f48b73e450..7e4073686065 100644 --- a/oox/source/drawingml/chart/objectformatter.cxx +++ b/oox/source/drawingml/chart/objectformatter.cxx @@ -1077,7 +1077,11 @@ void ObjectFormatter::convertTextRotation( PropertySet& rPropSet, const ModelRef void ObjectFormatter::convertTextWrap( PropertySet& rPropSet, const ModelRef< TextBody >& rxTextProp ) { if( !rxTextProp.is() ) +{ +// set default value (in OOXML the default value is true) +rPropSet.setProperty( PROP_TextWordWrap, true ); return; +} PropertyMap& aPropMap = rxTextProp->getTextProperties().maPropertyMap; if( aPropMap.hasProperty(PROP_TextWordWrap) ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx| 22 ++ chart2/qa/extras/data/docx/tdf91250.docx |binary oox/source/drawingml/chart/datasourcecontext.cxx |3 +++ 3 files changed, 25 insertions(+) New commits: commit f66fbd4fb5fd557d6065aeea987b3dafdc30a430 Author: Balazs Varga AuthorDate: Mon Jun 8 14:26:33 2020 +0200 Commit: László Németh CommitDate: Wed Jun 10 11:38:32 2020 +0200 tdf#91250 Chart DOCX Import: Fix decimal place formatting issue Use UNLIMITED_PRECISION in case of GENERAL number format of CATEGORY axis labels in embedded charts, just like Calc does. Change-Id: I30cb50955c67824bd1aa88fb139618ce0f0974fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95802 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 4a74b468774f..804f154333e8 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -161,6 +161,7 @@ public: void testTdf119138MissingAutoTitleDeleted(); void testStockChartShiftedCategoryPosition(); void testTdf133376(); +void testTdf91250(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -270,6 +271,7 @@ public: CPPUNIT_TEST(testTdf119138MissingAutoTitleDeleted); CPPUNIT_TEST(testStockChartShiftedCategoryPosition); CPPUNIT_TEST(testTdf133376); +CPPUNIT_TEST(testTdf91250); CPPUNIT_TEST_SUITE_END(); @@ -2523,6 +2525,26 @@ void Chart2ImportTest::testTdf133376() CPPUNIT_ASSERT_DOUBLES_EQUAL(5269, aLabelPosition.Y, 30); } +void Chart2ImportTest::testTdf91250() +{ +load("/chart2/qa/extras/data/docx/", "tdf91250.docx"); +uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); +Reference xInternalProvider(xChartDoc->getDataProvider(), uno::UNO_QUERY); +CPPUNIT_ASSERT(xInternalProvider.is()); + +Reference xDescAccess(xInternalProvider, uno::UNO_QUERY); +CPPUNIT_ASSERT(xDescAccess.is()); + +// Get the category labels. +Sequence aCategories = xDescAccess->getRowDescriptions(); +CPPUNIT_ASSERT_EQUAL(sal_Int32(4), aCategories.getLength()); +CPPUNIT_ASSERT_EQUAL(OUString("12.3254"), aCategories[0]); +CPPUNIT_ASSERT_EQUAL(OUString("11.62315"), aCategories[1]); +CPPUNIT_ASSERT_EQUAL(OUString("9.26"), aCategories[2]); +CPPUNIT_ASSERT_EQUAL(OUString("8.657"), aCategories[3]); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/tdf91250.docx b/chart2/qa/extras/data/docx/tdf91250.docx new file mode 100644 index ..4cb199b45795 Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf91250.docx differ diff --git a/oox/source/drawingml/chart/datasourcecontext.cxx b/oox/source/drawingml/chart/datasourcecontext.cxx index 7ad910af65d4..16cd509e4a63 100644 --- a/oox/source/drawingml/chart/datasourcecontext.cxx +++ b/oox/source/drawingml/chart/datasourcecontext.cxx @@ -127,6 +127,9 @@ void DoubleSequenceContext::onCharacters( const OUString& rChars ) double fValue = rChars.toDouble(); ::Color* pColor = nullptr; OUString aFormattedValue; +// tdf#91250: use UNLIMITED_PRECISION in case of GENERAL Number Format of category axis labels +if( pNumFrmt->GetStandardPrec() != SvNumberFormatter::UNLIMITED_PRECISION ) + pNumFrmt->ChangeStandardPrec(SvNumberFormatter::UNLIMITED_PRECISION); pNumFrmt->GetOutputString( fValue, nKey, aFormattedValue, &pColor ); mrModel.maData[ mnPtIndex ] <<= aFormattedValue; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 22 ++ chart2/qa/extras/data/docx/tdf133632.docx |binary oox/source/drawingml/chart/seriesconverter.cxx |2 +- 3 files changed, 23 insertions(+), 1 deletion(-) New commits: commit 0c0f4b1531e2e985bd53e8c551328f46bde0c8c9 Author: Balazs Varga AuthorDate: Thu Jun 4 11:33:06 2020 +0200 Commit: László Németh CommitDate: Wed Jun 10 11:26:56 2020 +0200 tdf#133632 Chart DOCX Import: fix percentage number format Set the LinkNumberFormatToSource to false only if we have an inner data table and the labels are shown as values. Regression from commit: e0da00d655ecca5986eea3812a8a670c6adbc40f (tdf#132174 Chart DOCX import: fix label number format) Change-Id: I879c5d81709995bfa49c18e0c84aaf6dc3dea41c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95493 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index ca91d5084c50..4a74b468774f 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -91,6 +91,7 @@ public: void testTextBreakXLSX(); void testNumberFormatsXLSX(); void testNumberFormatsDOCX(); +void testPercentageNumberFormatsDOCX(); void testTransparentBackground(OUString const & filename); @@ -208,6 +209,7 @@ public: CPPUNIT_TEST(testTextBreakXLSX); CPPUNIT_TEST(testNumberFormatsXLSX); CPPUNIT_TEST(testNumberFormatsDOCX); +CPPUNIT_TEST(testPercentageNumberFormatsDOCX); CPPUNIT_TEST(testAutoTitleDelDefaultValue2007XLSX); CPPUNIT_TEST(testAutoTitleDelDefaultValue2013XLSX); CPPUNIT_TEST(testDispBlanksAsDefaultValue2007XLSX); @@ -1312,6 +1314,26 @@ void Chart2ImportTest::testNumberFormatsDOCX() CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); } +void Chart2ImportTest::testPercentageNumberFormatsDOCX() +{ +load("/chart2/qa/extras/data/docx/", "tdf133632.docx"); +uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +css::uno::Reference xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); +Reference xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +uno::Reference xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT(xPropertySet.is()); + +bool bLinkNumberFormatToSource = false; +chart2::DataPointLabel aLabel; +xPropertySet->getPropertyValue("Label") >>= aLabel; +CPPUNIT_ASSERT_EQUAL(sal_False, aLabel.ShowNumber); +CPPUNIT_ASSERT_EQUAL(sal_True, aLabel.ShowNumberInPercent); +bool bSuccess = xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; +CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to true.", bSuccess && bLinkNumberFormatToSource); +} + void Chart2ImportTest::testAutoTitleDelDefaultValue2007XLSX() { load("/chart2/qa/extras/data/xlsx/", "autotitledel_2007.xlsx"); diff --git a/chart2/qa/extras/data/docx/tdf133632.docx b/chart2/qa/extras/data/docx/tdf133632.docx new file mode 100644 index ..b970e73f4c2f Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf133632.docx differ diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index 5d08b28d8094..c55c3891a975 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -343,7 +343,7 @@ void DataLabelsConverter::convertFromModel( const Reference< XDataSeries >& rxDa { bool bMSO2007Doc = getFilter().isMSO2007Document(); // tdf#132174: the inner data table has no own cell number format. -if( getChartDocument()->hasInternalDataProvider() ) +if( getChartDocument()->hasInternalDataProvider() && mrModel.mobShowVal.get(!bMSO2007Doc) ) mrModel.maNumberFormat.mbSourceLinked = false; lclConvertLabelFormatting( aPropSet, getFormatter(), mrModel, rTypeGroup, true, bMSO2007Doc ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 11 +++ chart2/qa/extras/data/xlsx/chart_pie2007.xlsx |binary oox/source/drawingml/chart/typegroupmodel.cxx |2 +- 3 files changed, 12 insertions(+), 1 deletion(-) New commits: commit 47e45d75f7789f0178ea3e1b22ef7b8adc77018e Author: Tünde Tóth AuthorDate: Tue May 26 13:34:32 2020 +0200 Commit: László Németh CommitDate: Wed May 27 10:53:54 2020 +0200 tdf#132594 Chart XLSX import: fix legend entries in pie charts Legend entry text of pie chart wasn't imported correctly in XLSX documents created with Excel 2007. Regression from commit: e0b0502516a10181bbd1737b93b38b2bba4c98e8 (tdf#128016 Chart OOXML Import: fix duplicated category labels) Change-Id: I4567437a41fe66e124dccbd148c0c49196d5c007 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94864 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 429ea41c5a5a..81b79439a9ff 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -170,6 +170,7 @@ public: void testTdf125812(); void testTdf133190(); void testTdf133191(); +void testTdf132594(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -303,6 +304,7 @@ public: CPPUNIT_TEST(testTdf125812); CPPUNIT_TEST(testTdf133190); CPPUNIT_TEST(testTdf133191); +CPPUNIT_TEST(testTdf132594); CPPUNIT_TEST_SUITE_END(); @@ -2791,6 +2793,15 @@ void Chart2ExportTest::testTdf133191() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:txPr/a:bodyPr", "rot", "-450"); } +void Chart2ExportTest::testTdf132594() +{ +load("/chart2/qa/extras/data/xlsx/", "chart_pie2007.xlsx"); +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:cat", 1); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/chart_pie2007.xlsx b/chart2/qa/extras/data/xlsx/chart_pie2007.xlsx new file mode 100644 index ..b122680257c0 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/chart_pie2007.xlsx differ diff --git a/oox/source/drawingml/chart/typegroupmodel.cxx b/oox/source/drawingml/chart/typegroupmodel.cxx index e109d89b913d..0edd189e27a6 100644 --- a/oox/source/drawingml/chart/typegroupmodel.cxx +++ b/oox/source/drawingml/chart/typegroupmodel.cxx @@ -55,7 +55,7 @@ TypeGroupModel::TypeGroupModel( sal_Int32 nTypeId, bool bMSO2007Doc ) : mbSmooth( !bMSO2007Doc ), mbVaryColors( !bMSO2007Doc ), mbWireframe( !bMSO2007Doc ), -mbCatAxisVisible( !bMSO2007Doc ) +mbCatAxisVisible( true ) { } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 25 + chart2/qa/extras/data/xlsx/tdf133190_tdf133191.xlsx |binary oox/source/export/chartexport.cxx | 28 +--- 3 files changed, 44 insertions(+), 9 deletions(-) New commits: commit 74d020fb1344dd904681b612739727351f183b78 Author: Balazs Varga AuthorDate: Wed May 20 21:10:41 2020 +0200 Commit: László Németh CommitDate: Mon May 25 14:40:14 2020 +0200 tdf#133190 tdf#133191 Chart OOXML export: fix text wrap and rotation of data point labels. Change-Id: Ic61d9ee149e838c000b5dc9ac0411bbe0f07219a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94598 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 08086d8ae2ab..429ea41c5a5a 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -168,6 +168,8 @@ public: void testTdf131979(); void testTdf132076(); void testTdf125812(); +void testTdf133190(); +void testTdf133191(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -299,6 +301,8 @@ public: CPPUNIT_TEST(testTdf131979); CPPUNIT_TEST(testTdf132076); CPPUNIT_TEST(testTdf125812); +CPPUNIT_TEST(testTdf133190); +CPPUNIT_TEST(testTdf133191); CPPUNIT_TEST_SUITE_END(); @@ -2766,6 +2770,27 @@ void Chart2ExportTest::testTdf125812() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", "b", "51000"); } +void Chart2ExportTest::testTdf133190() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf133190_tdf133191.xlsx"); +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +// Test word wrap of data point label +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:txPr/a:bodyPr", "wrap", "none"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[2]/c:txPr/a:bodyPr", "wrap", "square"); +} + +void Chart2ExportTest::testTdf133191() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf133190_tdf133191.xlsx"); +xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +// Test rotation of data point label +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:txPr/a:bodyPr", "rot", "-450"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/tdf133190_tdf133191.xlsx b/chart2/qa/extras/data/xlsx/tdf133190_tdf133191.xlsx new file mode 100644 index ..f8cad0e8cfec Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf133190_tdf133191.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 211b5b456438..6511cfaac48c 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2573,9 +2573,11 @@ void ChartExport::exportTextProps(const Reference& xPropSet) pFS->startElement(FSNS(XML_c, XML_txPr)); sal_Int32 nRotation = 0; +const char* textWordWrap = nullptr; + if (auto xServiceInfo = uno::Reference(xPropSet, uno::UNO_QUERY)) { -double fMultiplier = 0; +double fMultiplier = 0.0; // We have at least two possible units of returned value: degrees (e.g., for data labels), // and 100ths of degree (e.g., for axes labels). The latter is returned as an Any wrapping // a sal_Int32 value (see WrappedTextRotationProperty::convertInnerToOuterValue), while @@ -2583,8 +2585,15 @@ void ChartExport::exportTextProps(const Reference& xPropSet) // use. But testing the service info should be more robust. if (xServiceInfo->supportsService("com.sun.star.chart.ChartAxis")) fMultiplier = -600.0; -else if (xServiceInfo->supportsService("com.sun.star.chart2.DataSeries")) +else if (xServiceInfo->supportsService("com.sun.star.chart2.DataSeries") || xServiceInfo->supportsService("com.sun.star.chart2.DataPointProperties")) +{ fMultiplier = -6.0; +bool bTextWordWrap = false; +if ((xPropSet->getPropertyValue("TextWordWrap") >>= bTextWordWrap) && bTextWordWrap) +textWordWrap = "square"; +else +textWordWrap = "none"; +} if (fMultiplier) { @@ -2592,25 +2601,26 @@ void ChartExport::exportTextProps(const Reference& xPropSet) uno::Any aAny = xPropSet->getPropertyValue("TextRotation"); if (aAny.hasValue() && (aAny >>= fTextRotation)) { +fTextRotation *= fMultiplier; // The MS Office UI allows values only in range of [
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 14 chart2/qa/extras/data/odp/ellipticalGradientFill.odp |binary oox/source/export/drawingml.cxx | 32 ++- 3 files changed, 25 insertions(+), 21 deletions(-) New commits: commit 9cbde4be33d82fc822b11394e713b8d2492bcac8 Author: Tünde Tóth AuthorDate: Tue May 19 10:46:01 2020 +0200 Commit: László Németh CommitDate: Mon May 25 11:18:59 2020 +0200 tdf#125812 Chart: fix OOXML export of gradient center See also: commit 898e4ae1364e76af8be22183ac64d73b6a6d8d90 (tdf#128794 Chart: Fix OOXML import/export of Radial gradient) Change-Id: I9486c5b1dfcfd25bbf00d5f11b90c3c02459f634 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94486 Reviewed-by: Balazs Varga Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 84a38b258733..08086d8ae2ab 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -167,6 +167,7 @@ public: void testTdf127792(); void testTdf131979(); void testTdf132076(); +void testTdf125812(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -297,6 +298,7 @@ public: CPPUNIT_TEST(testTdf127792); CPPUNIT_TEST(testTdf131979); CPPUNIT_TEST(testTdf132076); +CPPUNIT_TEST(testTdf125812); CPPUNIT_TEST_SUITE_END(); @@ -2752,6 +2754,18 @@ void Chart2ExportTest::testTdf132076() } } +void Chart2ExportTest::testTdf125812() +{ +load("/chart2/qa/extras/data/odp/", "ellipticalGradientFill.odp"); +xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path", "path", "circle"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", "l", "5"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", "t", "49000"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", "r", "5"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", "b", "51000"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/odp/ellipticalGradientFill.odp b/chart2/qa/extras/data/odp/ellipticalGradientFill.odp new file mode 100644 index ..754f439e5864 Binary files /dev/null and b/chart2/qa/extras/data/odp/ellipticalGradientFill.odp differ diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 0be37c8748f0..21825902f1a0 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -176,9 +176,9 @@ static css::uno::Any getLineDash( const css::uno::Reference& namespace { -void WriteRadialGradientPath(const awt::Gradient& rGradient, const FSHelperPtr& pFS) +void WriteGradientPath(const awt::Gradient& rGradient, const FSHelperPtr& pFS, const bool bCircle) { -pFS->startElementNS(XML_a, XML_path, XML_path, "circle"); +pFS->startElementNS(XML_a, XML_path, XML_path, bCircle ? "circle" : "rect"); // Write the focus rectangle. Work with the focus point, and assume // that it extends 50% in all directions. The below @@ -186,13 +186,13 @@ void WriteRadialGradientPath(const awt::Gradient& rGradient, const FSHelperPtr& // edge of the tile rectangle and 100% means the center of it. rtl::Reference pAttributeList( sax_fastparser::FastSerializerHelper::createAttrList()); -sal_Int32 nLeftPercent = rGradient.XOffset * 2 - 50; +sal_Int32 nLeftPercent = rGradient.XOffset; pAttributeList->add(XML_l, OString::number(nLeftPercent * PER_PERCENT)); -sal_Int32 nTopPercent = rGradient.YOffset * 2 - 50; +sal_Int32 nTopPercent = rGradient.YOffset; pAttributeList->add(XML_t, OString::number(nTopPercent * PER_PERCENT)); -sal_Int32 nRightPercent = (100 - rGradient.XOffset) * 2 - 50; +sal_Int32 nRightPercent = 100 - rGradient.XOffset; pAttributeList->add(XML_r, OString::number(nRightPercent * PER_PERCENT)); -sal_Int32 nBottomPercent = (100 - rGradient.YOffset) * 2 - 50; +sal_Int32 nBottomPercent = 100 - rGradient.YOffset; pAttributeList->add(XML_b, OString::number(nBottomPercent * PER_PERCENT)); sax_fastparser::XFastAttributeListRef xAttributeList(pAttributeList.get()); pFS->singleElementNS(XML_a, XML_fillToRect, xAttributeList); @@ -570,7 +570,7 @@ void DrawingML::WriteGrabBagGradientFill( const Sequence< PropertyValue >& aGrad OString::number3600 - rGradient.Angle + 900) * 6000) % 2160))); break; case awt::GradientStyle_RADIAL: -WriteRadialGradientPath(rGradien
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 13 ++ chart2/qa/extras/data/docx/tdf128794.docx |binary oox/source/drawingml/fillproperties.cxx | 36 -- 3 files changed, 37 insertions(+), 12 deletions(-) New commits: commit 898e4ae1364e76af8be22183ac64d73b6a6d8d90 Author: Balazs Varga AuthorDate: Tue May 5 16:58:23 2020 +0200 Commit: László Németh CommitDate: Tue May 12 16:50:45 2020 +0200 tdf#128794 Chart: Fix OOXML import/export of Radial gradient Style should be radial at least when the horizontal/vertical center is not in the corner of a shape. Otherwise import as a linear gradient, because it is the most similar to the MSO radial style. Change-Id: I9bab7b787897bde51a06a950487de9843eb717a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93497 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: Tünde Tóth Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 571a0da80132..5909bfd2c5db 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -96,6 +96,7 @@ public: void testColorGradientWithTransparancyDOCX(); void testColorGradientWithTransparancyODS(); void testColorGradientStopXLSX(); +void testRadialColorGradientDOCX(); void testBarChartDataPointPropDOCX(); void testFdo83058dlblPos(); void testAutoTitleDelXLSX(); @@ -225,6 +226,7 @@ public: CPPUNIT_TEST(testColorGradientWithTransparancyDOCX); CPPUNIT_TEST(testColorGradientWithTransparancyODS); CPPUNIT_TEST(testColorGradientStopXLSX); +CPPUNIT_TEST(testRadialColorGradientDOCX); CPPUNIT_TEST(testBarChartDataPointPropDOCX); CPPUNIT_TEST(testFdo83058dlblPos); CPPUNIT_TEST(testAutoTitleDelXLSX); @@ -1347,6 +1349,17 @@ void Chart2ExportTest::testColorGradientStopXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:spPr/a:gradFill/a:gsLst/a:gs[2]", "pos", "10"); } +void Chart2ExportTest::testRadialColorGradientDOCX() +{ +load("/chart2/qa/extras/data/docx/", "tdf128794.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +// Test the gradeint style (if there is no 'a:path' attribute, it is a linear gradient) +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path", 0); +// Test the linear gradeint angle +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:lin", "ang", "1350"); +} + void Chart2ExportTest::testBarChartDataPointPropDOCX() { load("/chart2/qa/extras/data/docx/", "testBarChartDataPointPropDOCX.docx"); diff --git a/chart2/qa/extras/data/docx/tdf128794.docx b/chart2/qa/extras/data/docx/tdf128794.docx new file mode 100644 index ..098c0a00e3cc Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf128794.docx differ diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index acc13271ebc1..023af3bc613f 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -374,23 +374,35 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, if( maGradientProps.moGradientPath.has() ) { -// position of gradient center (limited to [30%;100%], otherwise gradient is too hidden) IntegerRectangle2D aFillToRect = maGradientProps.moFillToRect.get( IntegerRectangle2D( 0, 0, MAX_PERCENT, MAX_PERCENT ) ); sal_Int32 nCenterX = (MAX_PERCENT + aFillToRect.X1 - aFillToRect.X2) / 2; aGradient.XOffset = getLimitedValue( -nCenterX / PER_PERCENT, 30, 100); - -// Style should be radial at least when the horizontal center is at 50%. -awt::GradientStyle eCircle = aGradient.XOffset == 50 - ? awt::GradientStyle_RADIAL - : awt::GradientStyle_ELLIPTICAL; -aGradient.Style = (maGradientProps.moGradientPath.get() == XML_circle) - ? eCircle - : awt::GradientStyle_RECT; - +nCenterX / PER_PERCENT, 0, 100); sal_Int32 nCenterY = (MAX_PERCENT + aFillToRect.Y1 - aFillToRect.Y2) / 2; aGradient.YOffset = getLimitedValue( -nCenterY / PER_PERCENT, 30, 100); +nCenterY / PER_PERCENT, 0, 100); + +if( maGradientProps.moGradientPath.get() == XML_circle ) +{ +// Style should be radial at least when the horizontal center is at 50%. +// Othe
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 24 chart2/qa/extras/data/docx/tdf132174.docx |binary oox/source/drawingml/chart/seriesconverter.cxx |4 3 files changed, 28 insertions(+) New commits: commit e0da00d655ecca5986eea3812a8a670c6adbc40f Author: Balazs Varga AuthorDate: Wed Apr 22 14:41:49 2020 +0200 Commit: László Németh CommitDate: Fri Apr 24 15:59:41 2020 +0200 tdf#132174 Chart DOCX import: fix label number format The inner data table of charts has no own cell number format, unlike the MSO embedded XLSX, so we always have to set the link number format to false, if we have an inner data table. Regression from commit: 9c1063ba13028244346528e307d5563d6faf949d (tdf#129173 tdf#129175 Fix number format of data labels) Change-Id: I5e7865cb8c19fc6fae5b68305c7dc302516c0ad4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92695 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: Tünde Tóth Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 4a7ccb373685..844d7208bac0 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -90,6 +90,7 @@ public: // void testTextCanOverlapXLSX(); // TODO : temporarily disabled. void testTextBreakXLSX(); void testNumberFormatsXLSX(); +void testNumberFormatsDOCX(); void testTransparentBackground(OUString const & filename); @@ -204,6 +205,7 @@ public: // CPPUNIT_TEST(testTextCanOverlapXLSX); // TODO : temporarily disabled. CPPUNIT_TEST(testTextBreakXLSX); CPPUNIT_TEST(testNumberFormatsXLSX); +CPPUNIT_TEST(testNumberFormatsDOCX); CPPUNIT_TEST(testAutoTitleDelDefaultValue2007XLSX); CPPUNIT_TEST(testAutoTitleDelDefaultValue2013XLSX); CPPUNIT_TEST(testDispBlanksAsDefaultValue2007XLSX); @@ -1284,6 +1286,28 @@ void Chart2ImportTest::testNumberFormatsXLSX() CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to true.", bSuccess && bLinkNumberFormatToSource); } +void Chart2ImportTest::testNumberFormatsDOCX() +{ +load("/chart2/qa/extras/data/docx/", "tdf132174.docx"); +uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +css::uno::Reference xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); +Reference xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +uno::Reference xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT(xPropertySet.is()); + +sal_Int32 nNumberFormat; +bool bLinkNumberFormatToSource = true; +const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, "0%"); +xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; +CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); +xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; +// LinkNumberFormatToSource should be set to false even if the OOXML contain a true value, +// because the inner data table of charts have no own number format! +CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); +} + void Chart2ImportTest::testAutoTitleDelDefaultValue2007XLSX() { load("/chart2/qa/extras/data/xlsx/", "autotitledel_2007.xlsx"); diff --git a/chart2/qa/extras/data/docx/tdf132174.docx b/chart2/qa/extras/data/docx/tdf132174.docx new file mode 100644 index ..4f43695784fb Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf132174.docx differ diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index 01e004f45c59..b12f4416100b 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -323,6 +324,9 @@ void DataLabelsConverter::convertFromModel( const Reference< XDataSeries >& rxDa if( !mrModel.mbDeleted ) { bool bMSO2007Doc = getFilter().isMSO2007Document(); +// tdf#132174: the inner data table has no own cell number format. +if( getChartDocument()->hasInternalDataProvider() ) +mrModel.maNumberFormat.mbSourceLinked = false; lclConvertLabelFormatting( aPropSet, getFormatter(), mrModel, rTypeGroup, true, bMSO2007Doc ); if (mrModel.mxShapeProp) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 20 chart2/qa/extras/data/ods/tdf132076.ods |binary chart2/qa/extras/data/xlsx/tdf132076.xlsx|binary oox/source/drawingml/chart/axisconverter.cxx | 10 ++-- oox/source/export/chartexport.cxx| 62 --- 5 files changed, 82 insertions(+), 10 deletions(-) New commits: commit 75156c6fd73dc202df541306e1636727d51d6fc3 Author: Balazs Varga AuthorDate: Thu Apr 16 22:08:15 2020 +0200 Commit: László Németh CommitDate: Fri Apr 24 15:28:17 2020 +0200 tdf#132076 Chart OOXML: fix lost date format of X axis labels. Set the number format of category or date axes too and use date axis type for date axes at import. Export the real axis type of the X axis. Change-Id: I45f5c69f0aadc4ec1db0b8873b5e374e2728d39c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92396 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 378e2361d034..b44d712dbd50 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -165,6 +165,7 @@ public: void testTdf75330(); void testTdf127792(); void testTdf131979(); +void testTdf132076(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -293,6 +294,7 @@ public: CPPUNIT_TEST(testTdf75330); CPPUNIT_TEST(testTdf127792); CPPUNIT_TEST(testTdf131979); +CPPUNIT_TEST(testTdf132076); CPPUNIT_TEST_SUITE_END(); @@ -2711,6 +2713,24 @@ void Chart2ExportTest::testTdf131979() } } +void Chart2ExportTest::testTdf132076() +{ +{ +load("/chart2/qa/extras/data/ods/", "tdf132076.ods"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "formatCode", "dd"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "sourceLinked", "0"); +} +{ +load("/chart2/qa/extras/data/xlsx/", "tdf132076.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "formatCode", "dd"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "sourceLinked", "0"); +} +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/ods/tdf132076.ods b/chart2/qa/extras/data/ods/tdf132076.ods new file mode 100644 index ..348dd0d71f25 Binary files /dev/null and b/chart2/qa/extras/data/ods/tdf132076.ods differ diff --git a/chart2/qa/extras/data/xlsx/tdf132076.xlsx b/chart2/qa/extras/data/xlsx/tdf132076.xlsx new file mode 100644 index ..799ef9c8555a Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf132076.xlsx differ diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index 9e62b61d73bc..d73632476550 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -205,10 +205,8 @@ void AxisConverter::convertFromModel( OSL_ENSURE( (mrModel.mnTypeId == C_TOKEN( catAx )) || (mrModel.mnTypeId == C_TOKEN( dateAx )), "AxisConverter::convertFromModel - unexpected axis model type (must: c:catAx or c:dateAx)" ); bool bDateAxis = mrModel.mnTypeId == C_TOKEN( dateAx ); -/* Chart2 requires axis type CATEGORY for automatic -category/date axis (even if it is a date axis -currently). */ -aScaleData.AxisType = (bDateAxis && !mrModel.mbAuto) ? cssc2::AxisType::DATE : cssc2::AxisType::CATEGORY; +// tdf#132076: set axis type to date, if it is a date axis! +aScaleData.AxisType = bDateAxis ? cssc2::AxisType::DATE : cssc2::AxisType::CATEGORY; aScaleData.AutoDateAxis = mrModel.mbAuto; aScaleData.Categories = rTypeGroups.front()->createCategorySequence(); /* set default ShiftedCategoryPosition values for some charttype, @@ -341,8 +339,10 @@ void AxisConverter::convertFromModel( xAxis->setScaleData( aScaleData ); // number format -- -if( !mrModel.mbDeleted && ((aScaleData.AxisType == cssc2::AxisType::REALNUMBER) || (aScaleData.AxisType == cssc2::AxisType::PERCENT)) ) +if( !mrModel.mbDeleted && aScaleData.AxisType != cssc2::AxisType::SERIES ) +{ getFormatter().convertNumberFormat(aAxisProp, mrModel.maNumberFormat, true); +} // position of
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 14 ++ chart2/qa/extras/data/xlsx/tdfPieNumFormat.xlsx |binary oox/source/drawingml/chart/seriesconverter.cxx |7 --- 3 files changed, 14 insertions(+), 7 deletions(-) New commits: commit 9f3623ce21a89e026128f85b4a09a40757754090 Author: Balazs Varga AuthorDate: Mon Mar 16 15:44:06 2020 +0100 Commit: László Németh CommitDate: Fri Mar 20 11:44:46 2020 +0100 tdf#131398 OOXML chart import: fix number format of pie chart labels Remove percentage format detection heuristics, which converted the plain number format with percentage style to percentage format based on the formatted string, resulting bad pie chart labels. Change-Id: I642394d04fd6e6a5439bd53207e08e75de5b3029 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90570 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 68a142090805..4a7ccb373685 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -61,6 +61,7 @@ public: */ void testPPTXHiddenDataSeries(); void testPPTXPercentageNumberFormats(); +void testPieChartLabelsNumFormat(); void testPPTXStackedNonStackedYAxis(); void testPPTChartSeries(); void testODPChartSeries(); @@ -175,6 +176,7 @@ public: CPPUNIT_TEST(testPPTXSparseChartSeries); CPPUNIT_TEST(testPPTXHiddenDataSeries); CPPUNIT_TEST(testPPTXPercentageNumberFormats); +CPPUNIT_TEST(testPieChartLabelsNumFormat); CPPUNIT_TEST(testPPTXStackedNonStackedYAxis); CPPUNIT_TEST(testODPChartSeries); CPPUNIT_TEST(testBnc864396); @@ -710,6 +712,18 @@ void Chart2ImportTest::testPPTXPercentageNumberFormats() CPPUNIT_ASSERT_MESSAGE("Y axis should be a percent format.", (nType & util::NumberFormat::PERCENT)); } +void Chart2ImportTest::testPieChartLabelsNumFormat() +{ +load("/chart2/qa/extras/data/xlsx/", "tdfPieNumFormat.xlsx"); +uno::Reference< chart::XChartDocument > xChartDoc(getChartCompFromSheet(0, mxComponent), UNO_QUERY_THROW); +CPPUNIT_ASSERT(xChartDoc.is()); +// test data point labels format +Reference xDataPointPropSet(xChartDoc->getDiagram()->getDataPointProperties(0, 0), uno::UNO_SET_THROW); +chart2::DataPointLabel aLabel; +xDataPointPropSet->getPropertyValue("Label") >>= aLabel; +CPPUNIT_ASSERT_EQUAL(sal_True, aLabel.ShowNumber); +} + void Chart2ImportTest::testPPTXStackedNonStackedYAxis() { load("/chart2/qa/extras/data/pptx/", "stacked-non-stacked-mix-y-axis.pptx"); diff --git a/chart2/qa/extras/data/xlsx/tdfPieNumFormat.xlsx b/chart2/qa/extras/data/xlsx/tdfPieNumFormat.xlsx new file mode 100644 index ..0835cb33325b Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdfPieNumFormat.xlsx differ diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index 6ade0b4cfd07..f063019b8327 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -124,13 +124,6 @@ void lclConvertLabelFormatting( PropertySet& rPropSet, ObjectFormatter& rFormatt bool bShowValue = !rDataLabel.mbDeleted && rDataLabel.mobShowVal.get( !bMSO2007Doc ); bool bShowPercent = !rDataLabel.mbDeleted && rDataLabel.mobShowPercent.get( !bMSO2007Doc ) && (rTypeInfo.meTypeCategory == TYPECATEGORY_PIE); -if( bShowValue && -!bShowPercent && rTypeInfo.meTypeCategory == TYPECATEGORY_PIE && -rDataLabel.maNumberFormat.maFormatCode.indexOf('%') >= 0 ) -{ -bShowValue = false; -bShowPercent = true; -} bool bShowCateg = !rDataLabel.mbDeleted && rDataLabel.mobShowCatName.get( !bMSO2007Doc ); bool bShowSymbol = !rDataLabel.mbDeleted && rDataLabel.mobShowLegendKey.get( !bMSO2007Doc ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 23 +-- chart2/qa/extras/data/xlsx/tdf130986.xlsx |binary oox/source/export/chartexport.cxx |3 +++ 3 files changed, 20 insertions(+), 6 deletions(-) New commits: commit 94973fa0fa5c1253d8c8bf6b104d9e7123eee923 Author: Balazs Varga AuthorDate: Thu Feb 27 15:43:48 2020 +0100 Commit: László Németh CommitDate: Mon Mar 2 18:36:17 2020 +0100 tdf#130986 Chart OOXML export: fix number format of custom label Export correct sourceLinked attribute in c:dLbls/c:dLbl/c:numFmt, as in c:dLbls/c:numFmt. Change-Id: I0e52720b3cb2c99550a779763f01ba12f762050d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89638 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 46c3e186d912..217e766e42fc 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -1619,13 +1619,24 @@ void Chart2ExportTest::testAxisNumberFormatXLSX() void Chart2ExportTest::testDataPointLabelNumberFormatXLSX() { load("/chart2/qa/extras/data/ods/", "tdf123774.ods"); -xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); -CPPUNIT_ASSERT(pXmlDoc); -assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "formatCode", "[$-40E]0.00%"); -assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "sourceLinked", "0"); +{ +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "formatCode", "[$-40E]0.00%"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "sourceLinked", "0"); -assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "formatCode", "[$-40E]0.00%"); -assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "sourceLinked", "0"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "formatCode", "[$-40E]0.00%"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "sourceLinked", "0"); +} + +load("/chart2/qa/extras/data/xlsx/", "tdf130986.xlsx"); +{ +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:idx", "val", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:numFmt", "formatCode", "0.00E+00"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:numFmt", "sourceLinked", "0"); +} } void Chart2ExportTest::testDataLabelDefaultValuesXLSX() diff --git a/chart2/qa/extras/data/xlsx/tdf130986.xlsx b/chart2/qa/extras/data/xlsx/tdf130986.xlsx new file mode 100644 index ..9674fd1ab1d0 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf130986.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index c4a3827ea4fc..cf586257ccf7 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3435,6 +3435,9 @@ void ChartExport::exportDataLabels( } } +if( GetProperty(xLabelPropSet, "LinkNumberFormatToSource") ) +mAny >>= bLinkedNumFmt; + if( xLabelPropSet->getPropertyValue("Label") >>= aLabel ) bLabelIsNumberFormat = aLabel.ShowNumber; else ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx| 17 + chart2/qa/extras/data/xlsx/tdf130657.xlsx|binary oox/source/drawingml/chart/axisconverter.cxx |4 +++- 3 files changed, 20 insertions(+), 1 deletion(-) New commits: commit 8163f4ad81487ae187d00d3ce86214e520cb8b69 Author: Balazs Varga AuthorDate: Fri Feb 14 14:06:04 2020 +0100 Commit: László Németh CommitDate: Fri Feb 21 09:21:39 2020 +0100 tdf#130657 OOXML chart import: fix charts without CrossBetween by using default values for ShiftedCategoryPosition. Regression from commit 111c260ab2883b7906f1a66e222dbf4dc3c58c4f (tdf#12 OOXML chart export: fix "CrossBetween" for not imported charts) Change-Id: Idd48a8343e7d6609b487daf7182e9716f2f5e01f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88709 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 93be02e70160..4850f33ee76c 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -141,6 +141,7 @@ public: void testTdf128432(); void testTdf128627(); void testTdf128634(); +void testTdf130657(); void testDeletedDataLabel(); void testDataPointInheritedColorDOCX(); void testExternalStrRefsXLSX(); @@ -244,6 +245,7 @@ public: CPPUNIT_TEST(testTdf128432); CPPUNIT_TEST(testTdf128627); CPPUNIT_TEST(testTdf128634); +CPPUNIT_TEST(testTdf130657); CPPUNIT_TEST(testDeletedDataLabel); CPPUNIT_TEST(testDataPointInheritedColorDOCX); CPPUNIT_TEST(testExternalStrRefsXLSX); @@ -2127,6 +2129,21 @@ void Chart2ImportTest::testTdf128634() CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); } +void Chart2ImportTest::testTdf130657() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf130657.xlsx"); +// Test ShiftedCategoryPosition for charts which is not contain a "crossbetween" OOXML tag. +uno::Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + +Reference xAxis = getAxisFromDoc(xChartDoc, 0, 0, 0); +CPPUNIT_ASSERT(xAxis.is()); + +chart2::ScaleData aScaleData = xAxis->getScaleData(); +CPPUNIT_ASSERT(aScaleData.Categories.is()); +CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); +} + namespace { void checkDataLabelProperties(const Reference& xDataSeries, sal_Int32 nDataPointIndex, bool bValueVisible) diff --git a/chart2/qa/extras/data/xlsx/tdf130657.xlsx b/chart2/qa/extras/data/xlsx/tdf130657.xlsx new file mode 100644 index ..036da200ab9b Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf130657.xlsx differ diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index b79620081a70..5d1c94b875ba 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -217,8 +217,10 @@ void AxisConverter::convertFromModel( aScaleData.ShiftedCategoryPosition = true; else if( rTypeInfo.meTypeId == TYPEID_RADARLINE || rTypeInfo.meTypeId == TYPEID_RADARAREA ) aScaleData.ShiftedCategoryPosition = false; -else +else if( pCrossingAxis->mnCrossBetween != -1 ) /*because of backwards compatibility*/ aScaleData.ShiftedCategoryPosition = pCrossingAxis->mnCrossBetween == XML_between; +else if( rTypeInfo.meTypeCategory == TYPECATEGORY_BAR || rTypeInfo.meTypeId == TYPEID_LINE || rTypeInfo.meTypeId == TYPEID_STOCK ) +aScaleData.ShiftedCategoryPosition = true; } else { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 14 ++ chart2/qa/extras/data/xlsx/auto_marker_excel10.xlsx |binary oox/source/export/chartexport.cxx |2 +- 3 files changed, 15 insertions(+), 1 deletion(-) New commits: commit bae73c0726e7fdf7f427a8254c9d6d4b4c510daf Author: Tünde Tóth AuthorDate: Tue Feb 11 15:16:34 2020 +0100 Commit: László Németh CommitDate: Thu Feb 20 15:02:54 2020 +0100 tdf#126076 XLSX export: fix automatic line chart markers The default automatic line chart markers in XLSX spreadsheets created with Microsoft Excel 2010 became squares after export. Change-Id: I58a3e10212608a356eef8fbd1e100eda4dbebaca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88461 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 88c7d154d170..469e25618b5f 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -156,6 +156,7 @@ public: void testTdf123206_customLabelText(); void testDeletedLegendEntries(); void testTdf130225(); +void testTdf126076(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -275,6 +276,7 @@ public: CPPUNIT_TEST(testTdf123206_customLabelText); CPPUNIT_TEST(testDeletedLegendEntries); CPPUNIT_TEST(testTdf130225); +CPPUNIT_TEST(testTdf126076); CPPUNIT_TEST_SUITE_END(); @@ -2516,6 +2518,18 @@ void Chart2ExportTest::testTdf130225() CPPUNIT_ASSERT_EQUAL(sal_Int32(1), deletedLegendEntriesSeq[0]); } +void Chart2ExportTest::testTdf126076() +{ +load("/chart2/qa/extras/data/xlsx/", "auto_marker_excel10.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +// This was 12: all series exported with square markers +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker/c:symbol[@val='square']", 0); +// instead of skipping markers +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker", 0); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/auto_marker_excel10.xlsx b/chart2/qa/extras/data/xlsx/auto_marker_excel10.xlsx new file mode 100644 index ..c15756257251 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/auto_marker_excel10.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index fbeb2a892672..c4a3827ea4fc 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3810,7 +3810,7 @@ void ChartExport::exportMarker(const Reference< XPropertySet >& xPropSet) if( GetProperty( xPropSet, "Symbol" ) ) mAny >>= aSymbol; -if(aSymbol.Style != chart2::SymbolStyle_STANDARD && aSymbol.Style != chart2::SymbolStyle_AUTO && aSymbol.Style != chart2::SymbolStyle_NONE) +if(aSymbol.Style != chart2::SymbolStyle_STANDARD && aSymbol.Style != chart2::SymbolStyle_NONE) return; FSHelperPtr pFS = GetFS(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 19 chart2/qa/extras/data/xlsx/testCustomPosDataLabels.xlsx |binary oox/source/export/chartexport.cxx | 19 3 files changed, 38 insertions(+) New commits: commit 5339d0800ccdcd325294e61f8ae9e67648beb035 Author: Balazs Varga AuthorDate: Mon Feb 10 14:22:11 2020 +0100 Commit: László Németh CommitDate: Mon Feb 17 17:58:40 2020 +0100 tdf#130590 Chart OOXML export: fix custom label position in case of all chart types except pie chart. Follow-up of commit 4223ff2be69f03e571464b0b09ad0d278918631b (tdf#48436 Chart: add CustomLabelPosition UNO API property) Change-Id: I3ff1ca13928315f27988ae27c462a2f05354bc49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88371 Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 1ff1064046e1..b9d5873052ba 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -134,6 +134,7 @@ public: void testAxisCrossBetweenXSLX(); void testPieChartDataPointExplosionXLSX(); void testCustomDataLabel(); +void testCustomPositionofDataLabel(); void testCustomDataLabelMultipleSeries(); void testNumberFormatExportPPTX(); void testLabelSeparatorExportDOCX(); @@ -251,6 +252,7 @@ public: CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); CPPUNIT_TEST(testCustomDataLabel); +CPPUNIT_TEST(testCustomPositionofDataLabel); CPPUNIT_TEST(testCustomDataLabelMultipleSeries); CPPUNIT_TEST(testNumberFormatExportPPTX); CPPUNIT_TEST(testLabelSeparatorExportDOCX); @@ -2170,6 +2172,23 @@ void Chart2ExportTest::testCustomDataLabel() CPPUNIT_ASSERT_EQUAL(OUString(" getString()); } +void Chart2ExportTest::testCustomPositionofDataLabel() +{ +load("/chart2/qa/extras/data/xlsx/", "testCustomPosDataLabels.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +// test custom position of data label +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:idx", "val", "2"); +OUString aXVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:layout/c:manualLayout/c:x", "val"); +double nX = aXVal.toDouble(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.11027682973075476, nX, 1e-7); + +OUString aYVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:layout/c:manualLayout/c:y", "val"); +double nY = aYVal.toDouble(); +CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0742140311063737, nY, 1e-7); +} + void Chart2ExportTest::testCustomDataLabelMultipleSeries() { load("/chart2/qa/extras/data/pptx/", "tdf115107-2.pptx"); diff --git a/chart2/qa/extras/data/xlsx/testCustomPosDataLabels.xlsx b/chart2/qa/extras/data/xlsx/testCustomPosDataLabels.xlsx new file mode 100644 index ..caa08956cd27 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testCustomPosDataLabels.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 8debc8d047c3..ae33fdcdd222 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3416,6 +3416,25 @@ void ChartExport::exportDataLabels( pFS->startElement(FSNS(XML_c, XML_dLbl)); pFS->singleElement(FSNS(XML_c, XML_idx), XML_val, OString::number(nIdx)); +// export custom position of data label +if( eChartType != chart::TYPEID_PIE ) +{ +chart2::RelativePosition aCustomLabelPosition; +if( xLabelPropSet->getPropertyValue("CustomLabelPosition") >>= aCustomLabelPosition ) +{ +pFS->startElement(FSNS(XML_c, XML_layout)); +pFS->startElement(FSNS(XML_c, XML_manualLayout)); + +pFS->singleElement(FSNS(XML_c, XML_x), XML_val, OString::number(aCustomLabelPosition.Primary)); +pFS->singleElement(FSNS(XML_c, XML_y), XML_val, OString::number(aCustomLabelPosition.Secondary)); + +SAL_WARN_IF(aCustomLabelPosition.Anchor != css::drawing::Alignment_TOP_LEFT, "oox", "unsupported anchor position"); + +pFS->endElement(FSNS(XML_c, XML_manualLayout)); +pFS->endElement(FSNS(XML_c, XML_layout)); +} +} + if( xLabelPropSet->getPropertyValue("Label") >>= aLabel ) bLabelIsNumberFormat = aLabel.ShowNumber; else ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 13 ++ chart2/qa/extras/data/xlsx/tdf119138-missing-autotitledeleted.xlsx |binary oox/source/drawingml/chart/chartspaceconverter.cxx |5 +++ 3 files changed, 17 insertions(+), 1 deletion(-) New commits: commit 176e06c116db09cae5781522461390da87632953 Author: Gabor Kelemen AuthorDate: Thu Feb 6 23:54:26 2020 +0100 Commit: László Németh CommitDate: Thu Feb 13 09:54:40 2020 +0100 tdf#119138 Show custom chart title if autoTitleDeleted is missing autoTitleDeleted might be omitted by generators other than Excel while providing custom title. mbAutoTitleDel is set only based on the attribute value and the default also varies on whether MSO 2007 or newer is the generator, see tdf#78080 ECMA-376 Part 1 at 21.2.2.7 says: A value of 1 or true specifies that the property is applied. This is the default value for this attribute, and is implied when the parent element is present, but this attribute is omitted. Change-Id: If3457fe850e13ae8af207bb9beceecc9e887b797 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88151 Tested-by: Jenkins Tested-by: László Németh Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 054b04209db2..93be02e70160 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -154,6 +154,7 @@ public: void testTdf125444PercentageCustomLabel(); void testDataPointLabelCustomPos(); void testTdf130032(); +void testTdf119138MissingAutoTitleDeleted(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -256,6 +257,7 @@ public: CPPUNIT_TEST(testTdf125444PercentageCustomLabel); CPPUNIT_TEST(testDataPointLabelCustomPos); CPPUNIT_TEST(testTdf130032); +CPPUNIT_TEST(testTdf119138MissingAutoTitleDeleted); CPPUNIT_TEST_SUITE_END(); @@ -2397,6 +2399,17 @@ void Chart2ImportTest::testTdf130032() CPPUNIT_ASSERT_EQUAL(chart::DataLabelPlacement::RIGHT, aPlacement); } +void Chart2ImportTest::testTdf119138MissingAutoTitleDeleted() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf119138-missing-autotitledeleted.xlsx"); +Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + +Reference xTitled(xChartDoc, uno::UNO_QUERY_THROW); +uno::Reference xTitle = xTitled->getTitleObject(); +CPPUNIT_ASSERT_MESSAGE("Missing autoTitleDeleted is implied to be True if title text is present", xTitle.is()); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/tdf119138-missing-autotitledeleted.xlsx b/chart2/qa/extras/data/xlsx/tdf119138-missing-autotitledeleted.xlsx new file mode 100644 index ..a20aa0bb1bf7 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf119138-missing-autotitledeleted.xlsx differ diff --git a/oox/source/drawingml/chart/chartspaceconverter.cxx b/oox/source/drawingml/chart/chartspaceconverter.cxx index ade046ef08e8..9ea5d8a6c97f 100644 --- a/oox/source/drawingml/chart/chartspaceconverter.cxx +++ b/oox/source/drawingml/chart/chartspaceconverter.cxx @@ -176,7 +176,10 @@ void ChartSpaceConverter::convertFromModel( const Reference< XShapes >& rxExtern } // chart title -if( !mrModel.mbAutoTitleDel ) try +/* tdf#119138 autoTitleDeleted might be omitted by generators other than Excel + while providing custom title. mbAutoTitleDel is set only based on the attribute value + and the default also varies on whether MSO 2007 or newer is the generator, see tdf#78080 */ +if( !mrModel.mbAutoTitleDel || mrModel.mxTitle.is() ) try { /* If the title model is missing, but the chart shows exactly one series, the series title is shown as chart title. */ ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 14 ++ chart2/qa/extras/data/xlsx/test3DAreaChartZAxis.xlsx |binary oox/source/export/chartexport.cxx|2 +- 3 files changed, 15 insertions(+), 1 deletion(-) New commits: commit 6df2d48b53946e518a9689c3ea020250652d56be Author: Balazs Varga AuthorDate: Mon Jan 27 11:19:16 2020 +0100 Commit: László Németh CommitDate: Wed Jan 29 12:01:40 2020 +0100 tdf#130237 OOXML chart export: fix incomplete 3D area chart by exporting its z-axis properties into element. Data series of 3D area charts were “transparent” or incomplete opening with MSO, because we exported z-axis as a category axis. Change-Id: If7d8c15aa738cc44c736cd37d2be30d0eb15538f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87506 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index ea19e9d2ad0a..5ee135f5920b 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -145,6 +145,7 @@ public: void testMultipleCategoryAxisLablesDOCX(); void testTdf116163(); void testTdf111824(); +void test3DAreaChartZAxis(); void testTdf119029(); void testTdf108022(); void testTdf121744(); @@ -260,6 +261,7 @@ public: CPPUNIT_TEST(testMultipleCategoryAxisLablesDOCX); CPPUNIT_TEST(testTdf116163); CPPUNIT_TEST(testTdf111824); +CPPUNIT_TEST(test3DAreaChartZAxis); CPPUNIT_TEST(testTdf119029); CPPUNIT_TEST(testTdf108022); CPPUNIT_TEST(testTdf121744); @@ -2344,6 +2346,18 @@ void Chart2ExportTest::testTdf111824() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:serAx/c:axId", "val", zAxisIdOf3DBarchart); } +void Chart2ExportTest::test3DAreaChartZAxis() +{ +load("/chart2/qa/extras/data/xlsx/", "test3DAreaChartZAxis.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +// Collect 3D area chart Z axID +OUString zAxisIdOf3DAreachart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:area3DChart/c:axId[3]", "val"); +// 3D area chart z-axis properties should be in a serAx OOXML element instead of catAx +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:serAx/c:axId", "val", zAxisIdOf3DAreachart); +} + void Chart2ExportTest::testTdf119029() { load("/chart2/qa/extras/data/odp/", "tdf119029.odp"); diff --git a/chart2/qa/extras/data/xlsx/test3DAreaChartZAxis.xlsx b/chart2/qa/extras/data/xlsx/test3DAreaChartZAxis.xlsx new file mode 100644 index ..01c6fe56f1c7 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/test3DAreaChartZAxis.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 46dc2285f839..8debc8d047c3 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2756,7 +2756,7 @@ void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair) nAxisType = XML_valAx; else if( eChartType == chart::TYPEID_STOCK ) nAxisType = XML_dateAx; -else if( eChartType == chart::TYPEID_BAR ) +else if( eChartType == chart::TYPEID_BAR || eChartType == chart::TYPEID_AREA ) nAxisType = XML_serAx; // FIXME: axPos, need to check axis direction sAxPos = "b"; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 12 chart2/qa/extras/data/xlsx/tdf108107.xlsx |binary oox/source/drawingml/chart/seriesconverter.cxx |3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) New commits: commit 296f3f8e4a5337b82fc72845662b5d5749acdf99 Author: Balazs Varga AuthorDate: Sun Jan 26 20:59:21 2020 +0100 Commit: László Németh CommitDate: Tue Jan 28 10:00:40 2020 +0100 tdf#108107 OOXML chart: fix format of custom data point labels Do not overwrite the property of moved data point labels with default values, but use the data series properties for these labels. Change-Id: Id27fa1c2d8286584b2b87b7eb7a64fd9b416dc34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87463 Tested-by: Jenkins Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 96278053d59f..ea19e9d2ad0a 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -86,6 +86,7 @@ public: void testDataLabelAreaChartDOCX(); void testDataLabelDefaultLineChartDOCX(); void testIndividualDataLabelProps(); +void testTdf108107(); void testChartTitlePropertiesColorFillDOCX(); void testChartTitlePropertiesGradientFillDOCX(); void testChartTitlePropertiesBitmapFillDOCX(); @@ -200,6 +201,7 @@ public: CPPUNIT_TEST(testDataLabelAreaChartDOCX); CPPUNIT_TEST(testDataLabelDefaultLineChartDOCX); CPPUNIT_TEST(testIndividualDataLabelProps); +CPPUNIT_TEST(testTdf108107); CPPUNIT_TEST(testChartTitlePropertiesColorFillDOCX); CPPUNIT_TEST(testChartTitlePropertiesGradientFillDOCX); CPPUNIT_TEST(testChartTitlePropertiesBitmapFillDOCX); @@ -1208,6 +1210,16 @@ void Chart2ExportTest::testIndividualDataLabelProps() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[3]/c:dLbls/c:dLbl/c:txPr/a:p/a:pPr/a:defRPr/a:latin", "typeface", "Times New Roman"); } +void Chart2ExportTest::testTdf108107() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf108107.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:idx", "val", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:txPr/a:p/a:pPr/a:defRPr", "b", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:txPr/a:p/a:pPr/a:defRPr", "sz", "2000"); +} + void Chart2ExportTest::testChartTitlePropertiesColorFillDOCX() { load("/chart2/qa/extras/data/docx/", "testChartTitlePropertiesColorFill.docx"); diff --git a/chart2/qa/extras/data/xlsx/tdf108107.xlsx b/chart2/qa/extras/data/xlsx/tdf108107.xlsx new file mode 100644 index ..3f86326fa28e Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf108107.xlsx differ diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index dccd19713833..62f78a28e383 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -177,7 +177,8 @@ void lclConvertLabelFormatting( PropertySet& rPropSet, ObjectFormatter& rFormatt rFormatter.convertNumberFormat( rPropSet, rDataLabel.maNumberFormat, false, bShowPercent ); // data label text formatting (frame formatting not supported by Chart2) -convertTextProperty(rPropSet, rFormatter, rDataLabel.mxTextProp); +if( bDataSeriesLabel || (rDataLabel.mxTextProp.is() && !rDataLabel.mxTextProp->getParagraphs().empty()) ) +convertTextProperty(rPropSet, rFormatter, rDataLabel.mxTextProp); // data label separator (do not overwrite series separator, if no explicit point separator is present) // Set the data label separator to "new line" if the value is shown as percentage with a category name, ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 40 ++ chart2/qa/extras/chart2import.cxx | 39 -- oox/source/export/chartexport.cxx | 82 +- 3 files changed, 120 insertions(+), 41 deletions(-) New commits: commit 86be3422cd55fa9e44104f1628648061bb6a3495 Author: Tünde Tóth AuthorDate: Wed Dec 18 16:46:36 2019 +0100 Commit: László Németh CommitDate: Fri Jan 10 14:22:57 2020 +0100 tdf#129857 Chart OOXML export: fix deleted legend entries The legend showed deleted legend entries too after export. Change-Id: I872654d6e4d3f385c468b7fde03d39e233692fa1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86161 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 62aa0764a69a..96278053d59f 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -150,6 +150,7 @@ public: void testTdf122031(); void testTdf115012(); void testTdf123206_customLabelText(); +void testDeletedLegendEntries(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -263,6 +264,7 @@ public: CPPUNIT_TEST(testTdf122031); CPPUNIT_TEST(testTdf115012); CPPUNIT_TEST(testTdf123206_customLabelText); +CPPUNIT_TEST(testDeletedLegendEntries); CPPUNIT_TEST_SUITE_END(); @@ -2403,6 +2405,44 @@ void Chart2ExportTest::testTdf123206_customLabelText() assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[2]/c:tx/c:rich/a:p/a:r/a:t", "kiscica"); } +void Chart2ExportTest::testDeletedLegendEntries() +{ +load("/chart2/qa/extras/data/xlsx/", "deleted_legend_entry.xlsx"); +{ +reload("Calc Office Open XML"); +Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT(xChartDoc.is()); +Reference xDataSeries(getDataSeriesFromDoc(xChartDoc, 1)); +CPPUNIT_ASSERT(xDataSeries.is()); +Reference xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); +bool bShowLegendEntry = true; +CPPUNIT_ASSERT(xPropertySet->getPropertyValue("ShowLegendEntry") >>= bShowLegendEntry); +CPPUNIT_ASSERT(!bShowLegendEntry); +} + +load("/chart2/qa/extras/data/xlsx/", "deleted_legend_entry2.xlsx"); +{ +reload("Calc Office Open XML"); +Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT(xChartDoc.is()); +Reference xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); +CPPUNIT_ASSERT(xDataSeries.is()); +Reference xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); +bool bShowLegendEntry = true; +CPPUNIT_ASSERT(xPropertySet->getPropertyValue("ShowLegendEntry") >>= bShowLegendEntry); +CPPUNIT_ASSERT(!bShowLegendEntry); + +Reference xChartDoc2 = getChartDocFromSheet(1, mxComponent); +CPPUNIT_ASSERT(xChartDoc.is()); +Reference xDataSeries2(getDataSeriesFromDoc(xChartDoc2, 0)); +CPPUNIT_ASSERT(xDataSeries2.is()); +Reference xPropertySet2(xDataSeries2, uno::UNO_QUERY_THROW); +Sequence deletedLegendEntriesSeq; +CPPUNIT_ASSERT(xPropertySet2->getPropertyValue("DeletedLegendEntries") >>= deletedLegendEntriesSeq); +CPPUNIT_ASSERT_EQUAL(sal_Int32(1), deletedLegendEntriesSeq[0]); +} +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 5fcf205df813..9317785520c6 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -148,10 +148,8 @@ public: void testXaxisValues(); void testTdf123504(); void testTdf122765(); -void testTdf121991(); void testTdf123206CustomLabelField(); void testTdf125444PercentageCustomLabel(); -void testDeletedLegendEntries(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -249,10 +247,8 @@ public: CPPUNIT_TEST(testXaxisValues); CPPUNIT_TEST(testTdf123504); CPPUNIT_TEST(testTdf122765); -CPPUNIT_TEST(testTdf121991); CPPUNIT_TEST(testTdf123206CustomLabelField); CPPUNIT_TEST(testTdf125444PercentageCustomLabel); -CPPUNIT_TEST(testDeletedLegendEntries); CPPUNIT_TEST_SUITE_END(); @@ -2289,19 +2285,6 @@ void Chart2ImportTest::testTdf122765() CPPUNIT_ASSERT_GREATER(sal_Int32(7000), aSlicePosition.X); } -void Chart2ImportTest::testTdf121991() -{ -load("/chart2/qa/extras/data/xlsx/", "deleted_legend_entry.xlsx"); -Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet(0, mxComponent); -CPPUNIT_ASSERT(xChartDoc.is()); -Reference xDataSeries(getDataSeriesFromDoc(xChartDoc, 1)); -CPPUNIT_ASSERT(xDataSeries.is()); -Reference xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); -bool b
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 27 +++ chart2/qa/extras/data/xlsx/tdf128732.xlsx |binary oox/source/drawingml/color.cxx|2 +- 3 files changed, 28 insertions(+), 1 deletion(-) New commits: commit 124db1f2e3008493254e5d710221dbdd40a526db Author: Balazs Varga AuthorDate: Tue Nov 12 12:21:20 2019 +0100 Commit: László Németh CommitDate: Wed Nov 13 08:34:23 2019 +0100 tdf#128732 Chart OOXML import: fix rounding error of color transparency Change-Id: I52efb541d62a9536c2eb5f99453dc2cb594e6fe4 Reviewed-on: https://gerrit.libreoffice.org/82500 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index f04b42d2db6f..665b9f96e62d 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -33,6 +33,8 @@ #include #include +#include +#include class Chart2ImportTest : public ChartTest { @@ -63,6 +65,7 @@ public: void testODPChartSeries(); void testBnc864396(); void testBnc882383(); +void testTransparancyGradientValue(); void testBnc889755(); void testSimpleStrictXLSX(); void testDelayedCellImport(); // chart range referencing content on later sheets @@ -167,6 +170,7 @@ public: CPPUNIT_TEST(testODPChartSeries); CPPUNIT_TEST(testBnc864396); CPPUNIT_TEST(testBnc882383); +CPPUNIT_TEST(testTransparancyGradientValue); CPPUNIT_TEST(testBnc889755); CPPUNIT_TEST(testSimpleStrictXLSX); CPPUNIT_TEST(testDelayedCellImport); @@ -814,6 +818,29 @@ void Chart2ImportTest::testBnc882383() CPPUNIT_ASSERT(!sGradientName.isEmpty()); } +void Chart2ImportTest::testTransparancyGradientValue() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf128732.xlsx"); +uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT(xChartDoc.is()); +uno::Reference xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); +CPPUNIT_ASSERT(xDataSeries.is()); + +uno::Reference xPropertySet(xDataSeries->getDataPointByIndex(0), uno::UNO_SET_THROW); +OUString sTranspGradientName; +xPropertySet->getPropertyValue("FillTransparenceGradientName") >>= sTranspGradientName; +CPPUNIT_ASSERT(!sTranspGradientName.isEmpty()); + +awt::Gradient aTransparenceGradient; +uno::Reference< lang::XMultiServiceFactory > xFact(xChartDoc, uno::UNO_QUERY); +CPPUNIT_ASSERT(xFact.is()); +uno::Reference< container::XNameAccess > xTransparenceGradient(xFact->createInstance("com.sun.star.drawing.TransparencyGradientTable"), uno::UNO_QUERY); +uno::Any rTransparenceValue = xTransparenceGradient->getByName(sTranspGradientName); +CPPUNIT_ASSERT(rTransparenceValue >>= aTransparenceGradient); +CPPUNIT_ASSERT_EQUAL(sal_Int32(3355443), aTransparenceGradient.EndColor); +CPPUNIT_ASSERT_EQUAL(sal_Int32(5000268), aTransparenceGradient.StartColor); +} + void Chart2ImportTest::testSimpleStrictXLSX() { load("/chart2/qa/extras/data/xlsx/", "strict_chart.xlsx"); diff --git a/chart2/qa/extras/data/xlsx/tdf128732.xlsx b/chart2/qa/extras/data/xlsx/tdf128732.xlsx new file mode 100644 index ..b92afb1ed6c5 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf128732.xlsx differ diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx index 325b68227fe9..09b033352877 100644 --- a/oox/source/drawingml/color.cxx +++ b/oox/source/drawingml/color.cxx @@ -623,7 +623,7 @@ bool Color::hasTransparency() const sal_Int16 Color::getTransparency() const { -return static_cast< sal_Int16 >( (MAX_PERCENT - mnAlpha) / PER_PERCENT ); +return sal_Int16(std::round( (1.0 * (MAX_PERCENT - mnAlpha)) / PER_PERCENT) ); } // private ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 14 ++ chart2/qa/extras/data/xlsx/tdf128619.xlsx |binary oox/source/export/drawingml.cxx |2 +- 3 files changed, 15 insertions(+), 1 deletion(-) New commits: commit d7149889a9e1cae7f255691c2a35090ac3245bfa Author: Balazs Varga AuthorDate: Mon Nov 11 15:03:05 2019 +0100 Commit: László Németh CommitDate: Wed Nov 13 08:28:11 2019 +0100 tdf#128619 Chart OOXML export: fix gradient position Export the gradient border value as gradient stop position of the first color at LINEAR GradientStyle. Change-Id: I1a2b986a004fecbf68050c6bf95be549684fea70 Reviewed-on: https://gerrit.libreoffice.org/82446 Tested-by: Jenkins Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 4d14a1e96638..694e814250bd 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -91,6 +91,7 @@ public: void testChartTitlePropertiesBitmapFillDOCX(); void testColorGradientWithTransparancyDOCX(); void testColorGradientWithTransparancyODS(); +void testColorGradientStopXLSX(); void testBarChartDataPointPropDOCX(); void testFdo83058dlblPos(); void testAutoTitleDelXLSX(); @@ -201,6 +202,7 @@ public: CPPUNIT_TEST(testChartTitlePropertiesBitmapFillDOCX); CPPUNIT_TEST(testColorGradientWithTransparancyDOCX); CPPUNIT_TEST(testColorGradientWithTransparancyODS); +CPPUNIT_TEST(testColorGradientStopXLSX); CPPUNIT_TEST(testBarChartDataPointPropDOCX); CPPUNIT_TEST(testFdo83058dlblPos); CPPUNIT_TEST(testAutoTitleDelXLSX); @@ -1251,6 +1253,18 @@ void Chart2ExportTest::testColorGradientWithTransparancyODS() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val", "6"); } +void Chart2ExportTest::testColorGradientStopXLSX() +{ +// Test color gradient (two color) stop of the first color +load("/chart2/qa/extras/data/xlsx/", "tdf128619.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +// Test the position of the first color +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:spPr/a:gradFill/a:gsLst/a:gs[1]", "pos", "45000"); +// Test the position of the second color +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:spPr/a:gradFill/a:gsLst/a:gs[2]", "pos", "10"); +} + void Chart2ExportTest::testBarChartDataPointPropDOCX() { load("/chart2/qa/extras/data/docx/", "testBarChartDataPointPropDOCX.docx"); diff --git a/chart2/qa/extras/data/xlsx/tdf128619.xlsx b/chart2/qa/extras/data/xlsx/tdf128619.xlsx new file mode 100644 index ..e6eb142593fe Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf128619.xlsx differ diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index a5c152dcf6d1..2cc160d05b57 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -605,7 +605,7 @@ void DrawingML::WriteGradientFill(awt::Gradient rGradient, awt::Gradient rTransp nStartAlpha = GetAlphaFromTransparenceGradient(rTransparenceGradient, true); nEndAlpha = GetAlphaFromTransparenceGradient(rTransparenceGradient, false); } -WriteGradientStop(0, ColorWithIntensity(rGradient.StartColor, rGradient.StartIntensity), +WriteGradientStop(rGradient.Border, ColorWithIntensity(rGradient.StartColor, rGradient.StartIntensity), nStartAlpha); WriteGradientStop(100, ColorWithIntensity(rGradient.EndColor, rGradient.EndIntensity), nEndAlpha); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx| 34 +++ chart2/qa/extras/data/xlsx/tdf128627.xlsx|binary chart2/qa/extras/data/xlsx/tdf128634.xlsx|binary oox/source/drawingml/chart/axisconverter.cxx |9 ++- 4 files changed, 42 insertions(+), 1 deletion(-) New commits: commit b5c14ba1987ba102ac98530e2e718100655e1042 Author: Balazs Varga AuthorDate: Thu Nov 7 13:49:09 2019 +0100 Commit: László Németh CommitDate: Tue Nov 12 21:46:29 2019 +0100 tdf#128627 tdf#128634 Fix OOXML import of CrossBetween Set default 'midCat' value during the import, for Radar charts, because MSO created them with default 'midCat', but exported a 'between' value. Set default 'between' value during the import, for 3D Bar and Stock charts, because sometimes the OOXML file can contain a wrong CrossBetween value, but MSO import them with default values. tdf#128627 regression from commit: 830e539547c463b932ce643517f880789185032d (tdf#127393 OOXML chart import: fix X axis position setting "CrossBetween") tdf#128634 regression from commit: 111c260ab2883b7906f1a66e222dbf4dc3c58c4f (tdf#12 OOXML chart export: fix "CrossBetween" for not imported charts) Change-Id: Ie9763197b79c3a661e66043da7b89b4f0f00ba33 Reviewed-on: https://gerrit.libreoffice.org/82211 Tested-by: Jenkins Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 134dec112caa..f04b42d2db6f 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -133,6 +133,8 @@ public: void testTdf124243(); void testTdf127393(); void testTdf128432(); +void testTdf128627(); +void testTdf128634(); void testDeletedDataLabel(); void testDataPointInheritedColorDOCX(); void testExternalStrRefsXLSX(); @@ -226,6 +228,8 @@ public: CPPUNIT_TEST(testTdf124243); CPPUNIT_TEST(testTdf127393); CPPUNIT_TEST(testTdf128432); +CPPUNIT_TEST(testTdf128627); +CPPUNIT_TEST(testTdf128634); CPPUNIT_TEST(testDeletedDataLabel); CPPUNIT_TEST(testDataPointInheritedColorDOCX); CPPUNIT_TEST(testExternalStrRefsXLSX); @@ -2012,6 +2016,36 @@ void Chart2ImportTest::testTdf128432() CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); } +void Chart2ImportTest::testTdf128627() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf128627.xlsx"); +// Test ShiftedCategoryPosition for Radar Chart +uno::Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + +Reference xAxis = getAxisFromDoc(xChartDoc, 0, 0, 0); +CPPUNIT_ASSERT(xAxis.is()); + +chart2::ScaleData aScaleData = xAxis->getScaleData(); +CPPUNIT_ASSERT(aScaleData.Categories.is()); +CPPUNIT_ASSERT(!aScaleData.ShiftedCategoryPosition); +} + +void Chart2ImportTest::testTdf128634() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf128634.xlsx"); +// Test ShiftedCategoryPosition for 3D Charts +uno::Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + +Reference xAxis = getAxisFromDoc(xChartDoc, 0, 0, 0); +CPPUNIT_ASSERT(xAxis.is()); + +chart2::ScaleData aScaleData = xAxis->getScaleData(); +CPPUNIT_ASSERT(aScaleData.Categories.is()); +CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); +} + namespace { void checkDataLabelProperties(const Reference& xDataSeries, sal_Int32 nDataPointIndex, bool bValueVisible) diff --git a/chart2/qa/extras/data/xlsx/tdf128627.xlsx b/chart2/qa/extras/data/xlsx/tdf128627.xlsx new file mode 100644 index ..419c1ad2f9be Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf128627.xlsx differ diff --git a/chart2/qa/extras/data/xlsx/tdf128634.xlsx b/chart2/qa/extras/data/xlsx/tdf128634.xlsx new file mode 100644 index ..91baa780cea2 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf128634.xlsx differ diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index 9f2cc0f715dc..5f64586ffbb0 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -213,7 +213,14 @@ void AxisConverter::convertFromModel( aScaleData.AxisType = (bDateAxis && !mrModel.mbAuto) ? cssc2::AxisType::DATE : cssc2::AxisType::CATEGORY; aScaleData.AutoDateAxis = mrModel.mbAuto; aScaleData.Categories = rTypeGroups.front()->createCategorySequence(); -aScaleData.ShiftedCategoryPosition = pCrossingAxis->mnCrossBetween == XML_between; +/* set default ShiftedCategoryPosition values for some charttype, + because the XML can contain wrong CrossBetween value, if came from MSO */ +
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 10 chart2/qa/extras/data/xlsx/testAutoTitleDeleted.xlsx |binary oox/source/export/chartexport.cxx| 47 ++- 3 files changed, 35 insertions(+), 22 deletions(-) New commits: commit f6437b3a98256cd2782164fedefbc109bf5ab114 Author: Balazs Varga AuthorDate: Wed Nov 6 15:50:32 2019 +0100 Commit: László Németh CommitDate: Fri Nov 8 13:19:47 2019 +0100 tdf#128618 OOXML chart export: deleted automatic title returns on save If there is no main title and/or subtitle, write out autoTitleDeleted with a true value. Regression from the commit 96a29c12a9d8734c9d2a812f38fc6654b5df9c48 (tdf#101322 Chart OOXML Export: fix missing subtitle) Change-Id: I0094014fc4da4cb66d31e4249f916452d00758c7 Reviewed-on: https://gerrit.libreoffice.org/82142 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index dd07808b1d05..4d14a1e96638 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -108,6 +108,7 @@ public: void testLegendManualLayoutXLSX(); void testChartSubTitle(); void testChartMainWithSubTitle(); +void testAutoTitleDeleted(); void testChartTitlePropertiesColorFillXLSX(); void testChartTitlePropertiesGradientFillXLSX(); void testChartTitlePropertiesBitmapFillXLSX(); @@ -217,6 +218,7 @@ public: CPPUNIT_TEST(testLegendManualLayoutXLSX); CPPUNIT_TEST(testChartSubTitle); CPPUNIT_TEST(testChartMainWithSubTitle); +CPPUNIT_TEST(testAutoTitleDeleted); CPPUNIT_TEST(testChartTitlePropertiesColorFillXLSX); CPPUNIT_TEST(testChartTitlePropertiesGradientFillXLSX); CPPUNIT_TEST(testChartTitlePropertiesBitmapFillXLSX); @@ -1732,6 +1734,14 @@ void Chart2ExportTest::testChartMainWithSubTitle() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:solidFill/a:srgbClr", "val", "81d41a"); } +void Chart2ExportTest::testAutoTitleDeleted() +{ +load("/chart2/qa/extras/data/xlsx/", "testAutoTitleDeleted.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:autoTitleDeleted", "val", "1"); +} + void Chart2ExportTest::testChartTitlePropertiesColorFillXLSX() { load("/chart2/qa/extras/data/xlsx/", "testChartTitlePropertiesColorFill.xlsx"); diff --git a/chart2/qa/extras/data/xlsx/testAutoTitleDeleted.xlsx b/chart2/qa/extras/data/xlsx/testAutoTitleDeleted.xlsx new file mode 100644 index ..409389e23beb Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testAutoTitleDeleted.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 040014912b32..aeb2c8012674 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -917,7 +917,7 @@ void ChartExport::exportChart( const Reference< css::chart::XChartDocument >& xC // get Properties of ChartDocument bool bHasMainTitle = false; -bool bHasSubTitle = false; +OUString aSubTitle; bool bHasLegend = false; Reference< beans::XPropertySet > xDocPropSet( xChartDoc, uno::UNO_QUERY ); if( xDocPropSet.is()) @@ -926,8 +926,6 @@ void ChartExport::exportChart( const Reference< css::chart::XChartDocument >& xC { Any aAny( xDocPropSet->getPropertyValue("HasMainTitle")); aAny >>= bHasMainTitle; -aAny = xDocPropSet->getPropertyValue("HasSubTitle"); -aAny >>= bHasSubTitle; aAny = xDocPropSet->getPropertyValue("HasLegend"); aAny >>= bHasLegend; } @@ -937,33 +935,38 @@ void ChartExport::exportChart( const Reference< css::chart::XChartDocument >& xC } } // if( xDocPropSet.is()) -// chart element +Reference< beans::XPropertySet > xPropSubTitle( xChartDoc->getSubTitle(), UNO_QUERY ); +if( xPropSubTitle.is()) +{ +try +{ +xPropSubTitle->getPropertyValue("String") >>= aSubTitle; +} +catch( beans::UnknownPropertyException & ) +{ +} +} +// chart element FSHelperPtr pFS = GetFS(); pFS->startElement(FSNS(XML_c, XML_chart)); // titles -if( bHasMainTitle || bHasSubTitle ) +if( bHasMainTitle ) { -OUString aSubText; -Reference< drawing::XShape > xShape; -if( bHasSubTitle ) -{ -xShape = xChartDoc->getSubTitle(); -if( bHasMainTitle ) -{ -// if we have a title and a subtitle too, we need only the subtitle text -Reference< beans::XPropertySet > xPropSet(xShape, uno::UNO_QUERY); -if( xPropSet.is() ) -xPropSet->getPropertyValue("String") >>= aSubText; -} -} -
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 11 +++ chart2/qa/extras/data/xlsx/tdf128633.xlsx |binary oox/source/export/chartexport.cxx |2 +- 3 files changed, 12 insertions(+), 1 deletion(-) New commits: commit 271bdc3469b694c113e4449750866dee032e2d34 Author: Balazs Varga AuthorDate: Thu Nov 7 10:31:49 2019 +0100 Commit: László Németh CommitDate: Fri Nov 8 12:33:31 2019 +0100 tdf#128633 Chart OOXML Export: Fix position of bar in charts Fix export of c:crossBetween tag if the category axis is deleted. Regression from commit: e0b0502516a10181bbd1737b93b38b2bba4c98e8 (tdf#128016 Chart OOXML Import: fix duplicated category labels) Change-Id: I46ab45f3ba4f3d0fdde3ddf017a7f512b6e2e403 Reviewed-on: https://gerrit.libreoffice.org/82194 Tested-by: Jenkins Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 5f2b9ee6825b..dd07808b1d05 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -123,6 +123,7 @@ public: void testCombinedChartSecondaryAxisXLSX(); void testCombinedChartSecondaryAxisODS(); void testCrossBetweenXLSX(); +void testCrossBetweenWithDeletedAxis(); void testCrossBetweenODS(); void testAxisTitleRotationXLSX(); void testAxisTitlePositionDOCX(); @@ -231,6 +232,7 @@ public: CPPUNIT_TEST(testCombinedChartSecondaryAxisXLSX); CPPUNIT_TEST(testCombinedChartSecondaryAxisODS); CPPUNIT_TEST(testCrossBetweenXLSX); +CPPUNIT_TEST(testCrossBetweenWithDeletedAxis); CPPUNIT_TEST(testCrossBetweenODS); CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisTitlePositionDOCX); @@ -1944,6 +1946,15 @@ void Chart2ExportTest::testCrossBetweenXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", "between"); } +void Chart2ExportTest::testCrossBetweenWithDeletedAxis() +{ +// Original file was created with MS Office (the category axis is deleted in the file) +load("/chart2/qa/extras/data/xlsx/", "tdf128633.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", "between"); +} + void Chart2ExportTest::testCrossBetweenODS() { // Original file was created with LibreOffice diff --git a/chart2/qa/extras/data/xlsx/tdf128633.xlsx b/chart2/qa/extras/data/xlsx/tdf128633.xlsx new file mode 100644 index ..fa186895d65e Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf128633.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index c4bf38eff9ef..040014912b32 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -251,7 +251,7 @@ static bool lcl_isCategoryAxisShifted(const Reference< chart2::XChartDocument >& if( xAxis.is()) { chart2::ScaleData aScaleData = xAxis->getScaleData(); -if( aScaleData.Categories.is() ) +if( aScaleData.AxisType == AXIS_PRIMARY_Y ) { isCategoryPositionShifted = aScaleData.ShiftedCategoryPosition; break; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 25 + chart2/qa/extras/chart2import.cxx|3 -- oox/source/drawingml/chart/converterbase.cxx | 32 --- oox/source/export/chartexport.cxx| 11 - 4 files changed, 60 insertions(+), 11 deletions(-) New commits: commit 9ff954d5f780cae5df6942e97b713cfc19449145 Author: Balazs Varga AuthorDate: Thu Oct 17 12:37:04 2019 +0200 Commit: László Németh CommitDate: Tue Oct 22 14:33:46 2019 +0200 tdf#127908 tdf#128193 Chart OOXML: Fix Custom Y axis title position Import part: set the anchor position to the TOP_LEFT corner of the rectangle during the import, if the textbox is rotated with 90 or 270 degree. Because the OOXML files always contains the TOP_LEFT coordinates of a textbox, even if they are rotated. Note: Unfortunatelly we do not know the shape size, so this fix cannot handle rotations different than 0, 90 or 270 degrees. Export part: export the top left corner coordinates of axis title shape as the OOXML Standerd requires. Change-Id: Id0875d65884f6bfef8726135a7c03418d2ce3f23 Reviewed-on: https://gerrit.libreoffice.org/80939 Tested-by: Jenkins Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 8a0705f7d140..694ba5501043 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -123,6 +123,7 @@ public: void testCrossBetweenXLSX(); void testCrossBetweenODS(); void testAxisTitleRotationXLSX(); +void testAxisTitlePositionDOCX(); void testAxisCrossBetweenXSLX(); void testPieChartDataPointExplosionXLSX(); void testCustomDataLabel(); @@ -228,6 +229,7 @@ public: CPPUNIT_TEST(testCrossBetweenXLSX); CPPUNIT_TEST(testCrossBetweenODS); CPPUNIT_TEST(testAxisTitleRotationXLSX); +CPPUNIT_TEST(testAxisTitlePositionDOCX); CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); CPPUNIT_TEST(testCustomDataLabel); @@ -1932,6 +1934,29 @@ void Chart2ExportTest::testAxisTitleRotationXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:bodyPr", "rot", "0"); } +void Chart2ExportTest::testAxisTitlePositionDOCX() +{ +load("/chart2/qa/extras/data/docx/", "testAxisTitlePosition.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); + +// test X Axis title position +OUString aXVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:title/c:layout/c:manualLayout/c:x", "val"); +double nX = aXVal.toDouble(); +CPPUNIT_ASSERT(nX > 0.698208 && nX < 0.698209); +OUString aYVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:title/c:layout/c:manualLayout/c:y", "val"); +double nY = aYVal.toDouble(); +CPPUNIT_ASSERT(nY > 0.805152 && nY < 0.805153); + +// test Y Axis title position +aXVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:layout/c:manualLayout/c:x", "val"); +nX = aXVal.toDouble(); +CPPUNIT_ASSERT(nX > 0.025395 && nX < 0.025396); +aYVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:layout/c:manualLayout/c:y", "val"); +nY = aYVal.toDouble(); +CPPUNIT_ASSERT(nY > 0.384407 && nY < 0.384408); +} + void Chart2ExportTest::testAxisCrossBetweenXSLX() { load("/chart2/qa/extras/data/odt/", "axis-position.odt"); diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index d0fcb34faafd..ab1233b13110 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -1539,8 +1539,7 @@ void Chart2ImportTest::testAxisTitlePositionDOCX() aPos = xAxisTitle->getPosition(); CPPUNIT_ASSERT_EQUAL(sal_Int32(387), static_cast(aPos.X)); -// y coordinate is still wrong because of another older bug! -/*CPPUNIT_ASSERT_EQUAL(sal_Int32(1535), static_cast(aPos.Y));*/ +CPPUNIT_ASSERT_EQUAL(sal_Int32(6378), static_cast(aPos.Y)); } void Chart2ImportTest::testCombinedChartAttachedAxisXLSX() diff --git a/oox/source/drawingml/chart/converterbase.cxx b/oox/source/drawingml/chart/converterbase.cxx index 8acf77c619df..0b6b876a11a0 100644 --- a/oox/source/drawingml/chart/converterbase.cxx +++ b/oox/source/drawingml/chart/converterbase.cxx @@ -405,18 +405,34 @@ void LayoutConverter::convertFromModel( const Reference< XShape >& rxShape, doub lclCalcPosition( aChartSize.Height, mrModel.mfY, mrModel.mnYMode ) ); if( (aShapePos.X >= 0) && (aShapePos.Y >= 0) ) { +bool bPropSet = false; // the call to XShape.getSize() may recalc the chart view awt::Size aShapeSize = rxShape->getSize(); // rotated shapes need special hand
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx |4 +++- oox/source/export/chartexport.cxx |6 -- 2 files changed, 7 insertions(+), 3 deletions(-) New commits: commit 5b97e75589523b3769ec87e27854e2c841d0d79f Author: Balazs Varga AuthorDate: Thu Aug 29 11:08:04 2019 +0200 Commit: László Németh CommitDate: Fri Aug 30 16:32:47 2019 +0200 tdf#103988 OOXML export: fix bubble chart MSO interoperability Write into each OOXML element to allow file opening in MSO without removing the (previously "corrupted") bubble chart. Change-Id: Idf31a0d3d8f98a3be4c9a3b29e65d4d4c582be53 Reviewed-on: https://gerrit.libreoffice.org/78259 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 40ce4cc9e808..e1c7a4403afe 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -1570,7 +1570,9 @@ void Chart2ExportTest::testBubble3DXLSX() load("/chart2/qa/extras/data/xlsx/", "bubble_chart_simple.xlsx"); xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); CPPUNIT_ASSERT(pXmlDoc); -assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:bubble3D", "val", "0"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:ser[1]/c:bubble3D", "val", "0"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:ser[2]/c:bubble3D", "val", "0"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:ser[3]/c:bubble3D", "val", "0"); } void Chart2ExportTest::testNoMarkerXLSX() diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index bbf647926b33..a813acfd83b8 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -1659,8 +1659,6 @@ void ChartExport::exportBubbleChart( const Reference< chart2::XChartType >& xCha bool bPrimaryAxes = true; exportAllSeries(xChartType, bPrimaryAxes); -pFS->singleElement(FSNS(XML_c, XML_bubble3D), XML_val, "0"); - exportAxesId(bPrimaryAxes); pFS->endElement( FSNS( XML_c, XML_bubbleChart ) ); @@ -2191,6 +2189,10 @@ void ChartExport::exportSeries( const Reference& xChartType, || eChartType == chart::TYPEID_LINE ) exportSmooth(); +// tdf103988: "corrupted" files with Bubble chart opening in MSO +if( eChartType == chart::TYPEID_BUBBLE ) +pFS->singleElement(FSNS(XML_c, XML_bubble3D), XML_val, "0"); + pFS->endElement( FSNS( XML_c, XML_ser ) ); } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 16 chart2/qa/extras/data/odt/tdf114657.odt |binary oox/source/export/chartexport.cxx | 24 ++-- 3 files changed, 22 insertions(+), 18 deletions(-) New commits: commit 2bd8e41a0fc10974f81695c1b2e32dc07c569d97 Author: Balazs Varga AuthorDate: Wed Aug 28 11:27:52 2019 +0200 Commit: László Németh CommitDate: Fri Aug 30 15:23:39 2019 +0200 tdf#114657 OOXML chart export: fix broken chart with NaN X value Export c:pt elements only for numbers instead of replace the correct X values with the sequence 1, 2, 3..., when the X values contain a NaN value. This reverts commit a211c754003f98bc8f7761224a0b265bd224f61f "fdo77216-Charts-Scattered chart: Chart gets distorted on RT" Change-Id: I6d0bec870b5317575d93eff407b3ec2ada56431e Reviewed-on: https://gerrit.libreoffice.org/78221 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 78a763ee7bb6..40ce4cc9e808 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -48,6 +48,7 @@ public: void testBarChart(); void testCrosses(); void testScatterChartTextXValues(); +void testScatterXAxisValues(); void testChartDataTable(); void testChartExternalData(); void testEmbeddingsGrabBag(); @@ -150,6 +151,7 @@ public: CPPUNIT_TEST(testBarChart); CPPUNIT_TEST(testCrosses); CPPUNIT_TEST(testScatterChartTextXValues); +CPPUNIT_TEST(testScatterXAxisValues); CPPUNIT_TEST(testChartDataTable); CPPUNIT_TEST(testChartExternalData); CPPUNIT_TEST(testEmbeddingsGrabBag); @@ -654,6 +656,20 @@ void Chart2ExportTest::testScatterChartTextXValues() assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser[1]/c:xVal[1]/c:numRef[1]/c:numCache[1]/c:pt[1]/c:v[1]", "1"); } +void Chart2ExportTest::testScatterXAxisValues() +{ +load("/chart2/qa/extras/data/odt/", "tdf114657.odt"); + +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:ptCount", "val", "5"); +assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[1]/c:v", "15"); +assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[2]/c:v", "11"); +assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[3]/c:v", "20"); +assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[4]/c:v", "16"); +} + void Chart2ExportTest::testChartDataTable() { load("/chart2/qa/extras/data/docx/", "testChartDataTable.docx"); diff --git a/chart2/qa/extras/data/odt/tdf114657.odt b/chart2/qa/extras/data/odt/tdf114657.odt new file mode 100644 index ..4c99963b0d4f Binary files /dev/null and b/chart2/qa/extras/data/odt/tdf114657.odt differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index b7fdec22de69..bbf647926b33 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2376,28 +2376,16 @@ void ChartExport::exportSeriesValues( const Reference< chart2::data::XDataSequen pFS->endElement( FSNS( XML_c, XML_formatCode ) ); pFS->singleElement(FSNS(XML_c, XML_ptCount), XML_val, OString::number(ptCount)); -bool bIsNumberValue = true; -bool bXSeriesValue = false; -double Value = 1.0; - -if(nValueType == XML_xVal) -bXSeriesValue = true; - for( sal_Int32 i = 0; i < ptCount; i++ ) { -pFS->startElement(FSNS(XML_c, XML_pt), XML_idx, OString::number(i)); -pFS->startElement(FSNS(XML_c, XML_v)); -if (bIsNumberValue && !rtl::math::isNan(aValues[i])) -pFS->write( aValues[i] ); -else if(bXSeriesValue) +if (!rtl::math::isNan(aValues[i])) { -//In Case aValues is not a number for X Values...We write X values as 1,2,3MS Word does the same thing. -pFS->write( Value ); -Value = Value + 1; -bIsNumberValue = false; +pFS->startElement(FSNS(XML_c, XML_pt), XML_idx, OString::number(i)); +pFS->startElement(FSNS(XML_c, XML_v)); +pFS->write(aValues[i]); +pFS->endElement(FSNS(XML_c, XML_v)); +pFS->endElement(FSNS(XML_c, XML_pt)); } -pFS->endElement( FSNS( XML_c, XML_v ) ); -pFS->endElement( FSNS( XML_c, XML_pt ) ); } pFS->endElement( FSNS( XML_c, XML_numCache ) ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 28 ++ chart2/qa/extras/data/docx/tdf125337.docx |binary oox/source/drawingml/chart/chartconverter.cxx |2 - 3 files changed, 29 insertions(+), 1 deletion(-) New commits: commit 80386c73e172975572f265018333c6231a6b3b22 Author: Balazs Varga AuthorDate: Tue Aug 6 15:22:30 2019 +0200 Commit: László Németh CommitDate: Wed Aug 7 14:23:50 2019 +0200 tdf#125337 Chart DOCX Import: fix missing empty data series columns Create an empty column for a data series with NAN values, ie. where only "ptCount" was defined without explicit data. Also data series appear in the right order. Change-Id: I4eac94c2b9f34c84c4c19e4717cafbd440b20087 Reviewed-on: https://gerrit.libreoffice.org/77026 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 710d15ebd60e..90a1bd8485cf 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -46,6 +46,7 @@ public: void testODTChartSeries(); void testDOCChartSeries(); void testDOCXChartSeries(); +void testDOCXChartEmptySeries(); void testDOCXChartValuesSize(); void testPPTXChartSeries(); void testPPTXSparseChartSeries(); @@ -146,6 +147,7 @@ public: CPPUNIT_TEST(testODTChartSeries); CPPUNIT_TEST(testDOCChartSeries); CPPUNIT_TEST(testDOCXChartSeries); +CPPUNIT_TEST(testDOCXChartEmptySeries); CPPUNIT_TEST(testDOCXChartValuesSize); CPPUNIT_TEST(testPPTChartSeries); CPPUNIT_TEST(testPPTXChartSeries); @@ -469,6 +471,32 @@ void Chart2ImportTest::testDOCXChartSeries() CPPUNIT_ASSERT_EQUAL(OUString("Series 3"), aLabels[2][0].get()); } +void Chart2ImportTest::testDOCXChartEmptySeries() +{ +load("/chart2/qa/extras/data/docx/", "tdf125337.docx"); +Reference xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +Reference xCT = getChartTypeFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xCT.is()); + +std::vector > aLabels = getDataSeriesLabelsFromChartType(xCT); +CPPUNIT_ASSERT_EQUAL(size_t(3), aLabels.size()); +CPPUNIT_ASSERT_EQUAL(OUString("1. dataseries"), aLabels[0][0].get()); +CPPUNIT_ASSERT_EQUAL(OUString("2. dataseries"), aLabels[1][0].get()); +CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), aLabels[2][0].get()); + +//test chart series sparse data for docx +std::vector > aValues = getDataSeriesYValuesFromChartType(xCT); +CPPUNIT_ASSERT_EQUAL(size_t(3), aValues.size()); +//test the second series values +CPPUNIT_ASSERT_EQUAL(2.4, aValues[1][0]); +CPPUNIT_ASSERT_EQUAL(4.4, aValues[1][1]); +//test the third series (empty) values +CPPUNIT_ASSERT(rtl::math::isNan(aValues[2][0])); +CPPUNIT_ASSERT(rtl::math::isNan(aValues[2][1])); +} + void Chart2ImportTest::testDOCXChartValuesSize() { load( "/chart2/qa/extras/data/docx/", "bubblechart.docx" ); diff --git a/chart2/qa/extras/data/docx/tdf125337.docx b/chart2/qa/extras/data/docx/tdf125337.docx new file mode 100644 index ..811f12d89841 Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf125337.docx differ diff --git a/oox/source/drawingml/chart/chartconverter.cxx b/oox/source/drawingml/chart/chartconverter.cxx index 538f9956abc7..739092d72b02 100644 --- a/oox/source/drawingml/chart/chartconverter.cxx +++ b/oox/source/drawingml/chart/chartconverter.cxx @@ -124,7 +124,7 @@ Reference< XDataSequence > ChartConverter::createDataSequence( if( rxDataProvider.is() ) { OUString aRangeRep; -if( !rDataSeq.maData.empty() ) try +if( !rDataSeq.maData.empty() || (rRole == "values-y" && rDataSeq.mnPointCount > 0) ) try { // create a single-row array from constant source data // (multiple levels in the case of complex categories) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 32 ++ chart2/qa/extras/data/xlsx/tdf124817.xlsx |binary oox/source/drawingml/chart/typegroupconverter.cxx | 10 ++ 3 files changed, 41 insertions(+), 1 deletion(-) New commits: commit e98f19e598951a54561a7f414a209260b5e79a39 Author: Balazs Varga AuthorDate: Tue Jun 18 15:53:11 2019 +0200 Commit: László Németh CommitDate: Fri Jun 21 15:06:40 2019 +0200 tdf#124817 OOXML chart import: fix missing symbols OOXML chart symbols with undefined fill color attribute were imported as invisible white symbols. Fixed by using line color of these symbols. Change-Id: Ie4314ed56b63daa82fe30b111aeae9e358ff2b4b Reviewed-on: https://gerrit.libreoffice.org/74286 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index a55107b36318..803e99e773da 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include #include #include @@ -71,6 +73,7 @@ public: void testTdf106217(); void testTdf108021(); void testTdf100084(); +void testTdf124817(); void testAutoBackgroundXLSX(); void testAutoChartAreaBorderPropXLSX(); void testChartAreaStyleBackgroundXLSX(); @@ -163,6 +166,7 @@ public: CPPUNIT_TEST(testTdf106217); CPPUNIT_TEST(testTdf108021); CPPUNIT_TEST(testTdf100084); +CPPUNIT_TEST(testTdf124817); CPPUNIT_TEST(testAutoBackgroundXLSX); CPPUNIT_TEST(testAutoChartAreaBorderPropXLSX); CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX); @@ -901,6 +905,34 @@ void Chart2ImportTest::testTdf100084() CPPUNIT_ASSERT_MESSAGE("There should be a Diagram.", xDiagram.is()); } +void Chart2ImportTest::testTdf124817() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf124817.xlsx"); +Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + +uno::Reference xDataSeries; +chart2::Symbol aSymblProp; + +// Check the symbol of data series 1 (marker style none) +xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xDataSeries.is()); +uno::Reference xPropSet_0(xDataSeries, uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT((xPropSet_0->getPropertyValue("Symbol") >>= aSymblProp) && (aSymblProp.Style == chart2::SymbolStyle_NONE)); + +// Check the symbol of data series 2 (marker style square) +xDataSeries = getDataSeriesFromDoc(xChartDoc, 1); +CPPUNIT_ASSERT(xDataSeries.is()); +uno::Reference xPropSet_1(xDataSeries, uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT((xPropSet_1->getPropertyValue("Symbol") >>= aSymblProp) && (aSymblProp.FillColor == static_cast(0xED7D31))); + +// Check the symbol of data series 3 (marker style diagonal cross) +xDataSeries = getDataSeriesFromDoc(xChartDoc, 2); +CPPUNIT_ASSERT(xDataSeries.is()); +uno::Reference xPropSet_2(xDataSeries, uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT((xPropSet_2->getPropertyValue("Symbol") >>= aSymblProp) && (aSymblProp.BorderColor == static_cast(0xFF))); +} + void Chart2ImportTest::testTransparentBackground(OUString const & filename) { load("/chart2/qa/extras/data/xlsx/", filename); diff --git a/chart2/qa/extras/data/xlsx/tdf124817.xlsx b/chart2/qa/extras/data/xlsx/tdf124817.xlsx new file mode 100644 index ..d9b09644e47e Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf124817.xlsx differ diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/typegroupconverter.cxx index bd592e6adbc5..35bb23a2ccf0 100644 --- a/oox/source/drawingml/chart/typegroupconverter.cxx +++ b/oox/source/drawingml/chart/typegroupconverter.cxx @@ -500,7 +500,15 @@ void TypeGroupConverter::convertMarker( PropertySet& rPropSet, sal_Int32 nOoxSym { Color aFillColor = xShapeProps->getFillProperties().maFillColor; aSymbol.FillColor = sal_Int32(aFillColor.getColor(getFilter().getGraphicHelper())); -rPropSet.setProperty(PROP_Color, aSymbol.FillColor); +// tdf#124817: if there is no fill color, use line color of the symbol +if( aSymbol.FillColor < 0 ) +{ +Color aLineColor = xShapeProps->getLineProperties().maLineFill.maFillColor; +aSymbol.BorderColor = sal_Int32(aLineColor.getColor(getFilter().getGraphicHelper())); +rPropSet.setProperty(PROP_Color, aSymbol.BorderColor); +} +else +rPropSet.setProperty(PROP_Color, aSymbol.FillColor); } // set the property ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 14 ++ chart2/qa/extras/data/xlsx/tdf111824.xlsx |binary oox/source/export/chartexport.cxx |2 ++ 3 files changed, 16 insertions(+) New commits: commit 1b26a6e7a4e3865d1555fa0612845c765b114b49 Author: Balazs Varga AuthorDate: Mon Jun 17 14:58:54 2019 +0200 Commit: László Németh CommitDate: Tue Jun 18 12:55:54 2019 +0200 tdf#111824 Chart OOXML Export: fix Z axis labels Export 3D barchart Z ("deep") axis properties into xml tag, as the OOXML Standard requires. Change-Id: I8ee2282a28e9b4bdea6e96c96256f832b1a1aada Reviewed-on: https://gerrit.libreoffice.org/74170 Tested-by: Jenkins Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index b238f35f715a..7a0abcf0bc02 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -128,6 +128,7 @@ public: void testChartTitlePropertiesBitmapFillPPTX(); void testxAxisLabelsRotation(); void testTdf116163(); +void testTdf111824(); void testTdf119029(); void testTdf108022(); void testTdf121744(); @@ -224,6 +225,7 @@ public: CPPUNIT_TEST(testChartTitlePropertiesBitmapFillPPTX); CPPUNIT_TEST(testxAxisLabelsRotation); CPPUNIT_TEST(testTdf116163); +CPPUNIT_TEST(testTdf111824); CPPUNIT_TEST(testTdf119029); CPPUNIT_TEST(testTdf108022); CPPUNIT_TEST(testTdf121744); @@ -2081,6 +2083,18 @@ void Chart2ExportTest::testTdf116163() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:bodyPr", "rot", "-540"); } +void Chart2ExportTest::testTdf111824() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf111824.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +// Collect 3D barchart Z axID +OUString zAxisIdOf3DBarchart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bar3DChart/c:axId[3]", "val"); +// 3D barchart Z axis properties should be in a serAx OOXML tag instead of catAx +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:serAx/c:axId", "val", zAxisIdOf3DBarchart); +} + void Chart2ExportTest::testTdf119029() { load("/chart2/qa/extras/data/odp/", "tdf119029.odp"); diff --git a/chart2/qa/extras/data/xlsx/tdf111824.xlsx b/chart2/qa/extras/data/xlsx/tdf111824.xlsx new file mode 100644 index ..ae86756c47ee Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf111824.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index ae16670ebe56..65b7bd3c3e23 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2423,6 +2423,8 @@ void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair) nAxisType = XML_valAx; else if( eChartType == chart::TYPEID_STOCK ) nAxisType = XML_dateAx; +else if( eChartType == chart::TYPEID_BAR ) +nAxisType = XML_serAx; // FIXME: axPos, need to check axis direction sAxPos = "b"; break; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 23 +++ chart2/qa/extras/data/pptx/tdf122765.pptx |binary oox/source/drawingml/chart/titleconverter.cxx |1 - 3 files changed, 23 insertions(+), 1 deletion(-) New commits: commit 10609749126ca76eaf12904d4cce9cc5a16d8405 Author: Tamás Zolnai AuthorDate: Tue May 21 12:50:31 2019 +0200 Commit: Tamás Zolnai CommitDate: Tue May 21 21:35:07 2019 +0200 tdf#122765: Legend interferes with pie chart after pptx import Revert the commit caused this regression: 0fc41c53dfbd21e526fb0ad68a6651693c4a2ecd The original issue does not come back with reverting this commit. Change-Id: I666c4f92e3b70b416ec6da7a704298d207451649 Reviewed-on: https://gerrit.libreoffice.org/72679 Tested-by: Jenkins Reviewed-by: Tamás Zolnai diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index cd5e61d03f21..b7eb3e31fc07 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -126,6 +126,7 @@ public: void testExternalStrRefsXLSX(); void testSourceNumberFormatComplexCategoriesXLS(); void testTdf123504(); +void testTdf122765(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -206,6 +207,7 @@ public: CPPUNIT_TEST(testExternalStrRefsXLSX); CPPUNIT_TEST(testSourceNumberFormatComplexCategoriesXLS); CPPUNIT_TEST(testTdf123504); +CPPUNIT_TEST(testTdf122765); CPPUNIT_TEST_SUITE_END(); @@ -1870,6 +1872,27 @@ void Chart2ImportTest::testTdf123504() CPPUNIT_ASSERT_GREATER(sal_Int32(8500), aSliceSize.Width); } +void Chart2ImportTest::testTdf122765() +{ +// The horizontal position of the slices was wrong. +load("/chart2/qa/extras/data/pptx/", "tdf122765.pptx"); +Reference xChartDoc(getChartDocFromDrawImpress(0, 0), UNO_QUERY); +Reference xDrawPageSupplier(xChartDoc, UNO_QUERY_THROW); +Reference xDrawPage(xDrawPageSupplier->getDrawPage(), UNO_SET_THROW); +Reference xShapes(xDrawPage->getByIndex(0), UNO_QUERY_THROW); +Reference xSeriesSlices(getShapeByName(xShapes, "CID/D=0:CS=0:CT=0:Series=0"), + UNO_SET_THROW); + +Reference xIndexAccess(xSeriesSlices, UNO_QUERY_THROW); +CPPUNIT_ASSERT_EQUAL(sal_Int32(9), xIndexAccess->getCount()); +Reference xSlice(xIndexAccess->getByIndex(0), UNO_QUERY_THROW); + +// Check position of the first slice, all slices move together, so enough to check only one. +// Wrong poisition was around 5856. +awt::Point aSlicePosition = xSlice->getPosition(); +CPPUNIT_ASSERT_GREATER(sal_Int32(7000), aSlicePosition.X); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/pptx/tdf122765.pptx b/chart2/qa/extras/data/pptx/tdf122765.pptx new file mode 100644 index ..948190c30b55 Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf122765.pptx differ diff --git a/oox/source/drawingml/chart/titleconverter.cxx b/oox/source/drawingml/chart/titleconverter.cxx index a4bb1ec70944..8109ca8a3235 100644 --- a/oox/source/drawingml/chart/titleconverter.cxx +++ b/oox/source/drawingml/chart/titleconverter.cxx @@ -238,7 +238,6 @@ void LegendConverter::convertFromModel( const Reference< XDiagram >& rxDiagram ) // manual size needs ChartLegendExpansion_CUSTOM and LegendPosition_CUSTOM (tdf#118150) if( aLayoutConv.convertFromModel( aPropSet ) ) { -eLegendPos = cssc2::LegendPosition_CUSTOM; eLegendExpand = cssc::ChartLegendExpansion_CUSTOM; } bManualLayout = !aLayoutConv.getAutoLayout(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx |2 +- oox/source/core/xmlfilterbase.cxx |9 + 2 files changed, 6 insertions(+), 5 deletions(-) New commits: commit 642389768e634b739a1d8354259b16bfcc695d17 Author: Balazs Varga AuthorDate: Mon May 13 16:23:38 2019 +0200 Commit: László Németh CommitDate: Tue May 14 08:19:45 2019 +0200 tdf#100084 XLSX import: fix missing charts clean-up Clean-up the b2fc2ad7beceaff660de684435a5c37d69cf8ae9 commit. Change-Id: I625373d9661cbe4528ca487af0aef356b40af2e7 Reviewed-on: https://gerrit.libreoffice.org/72237 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index affab028f46e..cd5e61d03f21 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -887,7 +887,7 @@ void Chart2ImportTest::testTdf108021() void Chart2ImportTest::testTdf100084() { -// The test file was created with IBM Cognos, so just check there is a diagram. +// The test file was created with IBM Cognos, make sure there is a diagram. load("/chart2/qa/extras/data/xlsx/", "tdf100084.xlsx"); Reference xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx index be9b2261c272..6e26fa86595a 100644 --- a/oox/source/core/xmlfilterbase.cxx +++ b/oox/source/core/xmlfilterbase.cxx @@ -385,15 +385,16 @@ bool XmlFilterBase::importFragment( const rtl::Reference& rxHan handler to create specialized input streams, e.g. VML streams that have to preprocess the raw input data. */ Reference< XInputStream > xInStrm = rxHandler->openFragmentStream(); -// Check again the aFragmentPath route if there is no any file with lowercase letter. (tdf#100084) +/* tdf#100084 Check again the aFragmentPath route with lowercase file name +TODO: complete handling of case-insensitive file paths */ if ( !xInStrm.is() ) { sal_Int32 nPathLen = aFragmentPath.lastIndexOf('/') + 1; OUString fileName = aFragmentPath.copy(nPathLen); -if ( fileName != fileName.toAsciiLowerCase() ) +OUString sLowerCaseFileName = fileName.toAsciiLowerCase(); +if ( fileName != sLowerCaseFileName ) { -fileName = fileName.toAsciiLowerCase(); -aFragmentPath = OUStringBuffer(aFragmentPath.copy(0, nPathLen)).append(fileName).makeStringAndClear(); +aFragmentPath = aFragmentPath.copy(0, nPathLen) + sLowerCaseFileName; xInStrm = openInputStream(aFragmentPath); } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 12 chart2/qa/extras/data/xlsx/tdf100084.xlsx |binary oox/source/core/xmlfilterbase.cxx | 14 +- 3 files changed, 25 insertions(+), 1 deletion(-) New commits: commit b2fc2ad7beceaff660de684435a5c37d69cf8ae9 Author: Balazs Varga AuthorDate: Fri May 10 09:34:30 2019 +0200 Commit: László Németh CommitDate: Mon May 13 13:16:10 2019 +0200 tdf#100084 XLSX import: fix missing charts caused by case-sensitive path handling of relationship files. OOXML documents contain case-insensitive file paths, for example, uppercase "Sheet.xml" can have a lowercase "sheet.xml.rels" in the ZIP archive, as in the case of the XLSX documents generated by IBM Cognos. Change-Id: I4210e3b96fb512d61e1687ec8d41a3c77292ec0c Reviewed-on: https://gerrit.libreoffice.org/72100 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 4510ac447487..affab028f46e 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -70,6 +70,7 @@ public: void testTdf105517(); void testTdf106217(); void testTdf108021(); +void testTdf100084(); void testAutoBackgroundXLSX(); void testAutoChartAreaBorderPropXLSX(); void testChartAreaStyleBackgroundXLSX(); @@ -158,6 +159,7 @@ public: CPPUNIT_TEST(testTdf105517); CPPUNIT_TEST(testTdf106217); CPPUNIT_TEST(testTdf108021); +CPPUNIT_TEST(testTdf100084); CPPUNIT_TEST(testAutoBackgroundXLSX); CPPUNIT_TEST(testAutoChartAreaBorderPropXLSX); CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX); @@ -883,6 +885,16 @@ void Chart2ImportTest::testTdf108021() CPPUNIT_ASSERT(bTextBreak); } +void Chart2ImportTest::testTdf100084() +{ +// The test file was created with IBM Cognos, so just check there is a diagram. +load("/chart2/qa/extras/data/xlsx/", "tdf100084.xlsx"); +Reference xChartDoc = getChartDocFromSheet(0, mxComponent); +CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); +Reference xDiagram(xChartDoc->getFirstDiagram(), UNO_QUERY); +CPPUNIT_ASSERT_MESSAGE("There should be a Diagram.", xDiagram.is()); +} + void Chart2ImportTest::testTransparentBackground(OUString const & filename) { load("/chart2/qa/extras/data/xlsx/", filename); diff --git a/chart2/qa/extras/data/xlsx/tdf100084.xlsx b/chart2/qa/extras/data/xlsx/tdf100084.xlsx new file mode 100755 index ..5f03f39244e5 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf100084.xlsx differ diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx index 738412fb182c..be9b2261c272 100644 --- a/oox/source/core/xmlfilterbase.cxx +++ b/oox/source/core/xmlfilterbase.cxx @@ -342,7 +342,7 @@ bool XmlFilterBase::importFragment( const rtl::Reference& rxHan return false; // fragment handler must contain path to fragment stream -const OUString aFragmentPath = rxHandler->getFragmentPath(); +OUString aFragmentPath = rxHandler->getFragmentPath(); OSL_ENSURE( !aFragmentPath.isEmpty(), "XmlFilterBase::importFragment - missing fragment path" ); if( aFragmentPath.isEmpty() ) return false; @@ -385,6 +385,18 @@ bool XmlFilterBase::importFragment( const rtl::Reference& rxHan handler to create specialized input streams, e.g. VML streams that have to preprocess the raw input data. */ Reference< XInputStream > xInStrm = rxHandler->openFragmentStream(); +// Check again the aFragmentPath route if there is no any file with lowercase letter. (tdf#100084) +if ( !xInStrm.is() ) +{ +sal_Int32 nPathLen = aFragmentPath.lastIndexOf('/') + 1; +OUString fileName = aFragmentPath.copy(nPathLen); +if ( fileName != fileName.toAsciiLowerCase() ) +{ +fileName = fileName.toAsciiLowerCase(); +aFragmentPath = OUStringBuffer(aFragmentPath.copy(0, nPathLen)).append(fileName).makeStringAndClear(); +xInStrm = openInputStream(aFragmentPath); +} +} // own try/catch block for showing parser failure assertion with fragment path if( xInStrm.is() ) try ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 44 ++ chart2/qa/extras/data/ods/combined_chart_secondary_axis.ods |binary chart2/qa/extras/data/xlsx/combined_chart_secondary_axis.xlsx |binary oox/source/export/chartexport.cxx | 31 +-- 4 files changed, 68 insertions(+), 7 deletions(-) New commits: commit 9be1b6cf5b97727135c7f5e48c971edd8dc45e70 Author: Balazs Varga AuthorDate: Tue Apr 16 11:19:55 2019 +0200 Commit: László Németh CommitDate: Wed Apr 17 14:30:17 2019 +0200 tdf#123828 XLSX combined chart export: fix order of axis types Also fix tdf#123833 and tdf#123837. In combined charts, now axis types are exported in the right order (catAx[1], valAx[1], catAx[2], valAx[2]). The Y axes are exported correctly with the correct axIDs of the chart types: the first one with the primary axId, the second one with the secondary axId. X category axis crosses the Y axis at the right place, all data series are attached to the right Y axis, and the Y major grid doesn't disappear. Note: don't export the CrossoverPosition/CrossoverValue, if the axis is deleted and invisible, because MSO will show the secondary X axis, even if the axis doesn't exist. The problem was the unnecessary export of the axis with the default css::chart::ChartAxisPosition_END CrossoverPosition value. Change-Id: Id429e654ff0ba45b5f9db877b7c4dd6e65433408 Reviewed-on: https://gerrit.libreoffice.org/70814 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 6dd8d7d9e9c1..a5c42530a0b6 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -114,6 +114,8 @@ public: void testMultipleAxisXLSX(); void testSecondaryAxisXLSX(); void testSetSeriesToSecondaryAxisXLSX(); +void testCombinedChartSecondaryAxisXLSX(); +void testCombinedChartSecondaryAxisODS(); void testAxisTitleRotationXLSX(); void testAxisCrossBetweenXSLX(); void testPieChartDataPointExplosionXLSX(); @@ -208,6 +210,8 @@ public: CPPUNIT_TEST(testMultipleAxisXLSX); CPPUNIT_TEST(testSecondaryAxisXLSX); CPPUNIT_TEST(testSetSeriesToSecondaryAxisXLSX); +CPPUNIT_TEST(testCombinedChartSecondaryAxisXLSX); +CPPUNIT_TEST(testCombinedChartSecondaryAxisODS); CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); @@ -1782,6 +1786,46 @@ void Chart2ExportTest::testSetSeriesToSecondaryAxisXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart", 2); } +void Chart2ExportTest::testCombinedChartSecondaryAxisXLSX() +{ +// Original file was created with MS Office +load("/chart2/qa/extras/data/xlsx/", "combined_chart_secondary_axis.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +// Collect barchart axID on secondary Axis +OUString XValueIdOfBarchart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]", "val"); +OUString YValueIdOfBarchart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]", "val"); +// Collect linechart axID on primary Axis +OUString XValueIdOfLinechart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]", "val"); +OUString YValueIdOfLinechart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]", "val"); +// Check which c:catAx and c:valAx contain the AxisId of charttypes +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[1]/c:axId", "val", XValueIdOfLinechart); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[1]/c:axId", "val", YValueIdOfLinechart); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[2]/c:axId", "val", XValueIdOfBarchart); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[2]/c:axId", "val", YValueIdOfBarchart); +} + +void Chart2ExportTest::testCombinedChartSecondaryAxisODS() +{ +// Original file was created with LibreOffice +load("/chart2/qa/extras/data/ods/", "combined_chart_secondary_axis.ods"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +// Collect barchart axID on secondary Axis +OUString XValueIdOfBarchart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]", "val"); +OUString YValueIdOfBarchart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]", "val"); +// Collect linechart axID on primary Axis +OUString XValueIdOfLinechart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]", "val"); +OUString YValueIdOfLinechart = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 28 ++ chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsx |binary oox/source/drawingml/chart/plotareaconverter.cxx | 34 +++--- 3 files changed, 58 insertions(+), 4 deletions(-) New commits: commit 11473832b5717cb3222ce72baee885bc9e8e2386 Author: Balazs Varga AuthorDate: Tue Apr 9 16:12:35 2019 +0200 Commit: László Németh CommitDate: Mon Apr 15 09:12:59 2019 +0200 tdf#114181 XLSX combined chart: fix swapped primary and secondary axes etc. In combined charts, now X category axis crosses the Y axis at the right place, all data series are attached to the right Y axis, and the Y major grid isn't lost. Note: Let's check which axis is attached to the first charttype (in case of combined chart, the first one is a column chart) and create that axis first. In OOXML standard, the first CT_valAx tag contains the axID of the primary axis and the second CT_valAx tag contains the axID of the secondary axis. Change-Id: Ib123f95ec41ef5dbbf0599efd7a646f4640a9b70 Reviewed-on: https://gerrit.libreoffice.org/70464 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 47d1ce481a77..475b5bbe2209 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -102,6 +102,7 @@ public: void testAxisTitleDefaultRotationXLSX(); void testSecondaryAxisTitleDefaultRotationXLSX(); void testAxisTitleRotationXLSX(); +void testCombinedChartAttachedAxisXLSX(); void testTdf90510(); // Pie chart label placement settings(XLS) void testTdf109858(); // Pie chart label placement settings(XLSX) @@ -182,6 +183,7 @@ public: CPPUNIT_TEST(testAxisTitleDefaultRotationXLSX); CPPUNIT_TEST(testSecondaryAxisTitleDefaultRotationXLSX); CPPUNIT_TEST(testAxisTitleRotationXLSX); +CPPUNIT_TEST(testCombinedChartAttachedAxisXLSX); CPPUNIT_TEST(testTdf90510); CPPUNIT_TEST(testTdf109858); CPPUNIT_TEST(testTdf73); @@ -1399,6 +1401,32 @@ void Chart2ImportTest::testAxisTitleRotationXLSX() } +void Chart2ImportTest::testCombinedChartAttachedAxisXLSX() +{ +load("/chart2/qa/extras/data/xlsx/", "testCombinedChartAxis.xlsx"); +Reference< chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); +// First series +Reference xSeries = getDataSeriesFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xSeries.is()); + +Reference xPropSet(xSeries, uno::UNO_QUERY_THROW); +sal_Int32 nAxisIndex = -1; +// First series (column chart) should be attached to secondary axis! +uno::Any aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); +CPPUNIT_ASSERT(aAny >>= nAxisIndex); +CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nAxisIndex); + +// Second series +xSeries = getDataSeriesFromDoc(xChartDoc, 0, 1); +CPPUNIT_ASSERT(xSeries.is()); + +xPropSet.set(xSeries, uno::UNO_QUERY_THROW); +// Second series (line chart) should be attached to primary axis! +aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); +CPPUNIT_ASSERT(aAny >>= nAxisIndex); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex); +} + void Chart2ImportTest::testInternalDataProvider() { uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromImpress("/chart2/qa/extras/data/odp/", "chart.odp"), uno::UNO_QUERY_THROW); const uno::Reference< chart2::data::XDataProvider >& rxDataProvider = xChartDoc->getDataProvider(); diff --git a/chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsx b/chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsx new file mode 100644 index ..47f8246e23cd Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsx differ diff --git a/oox/source/drawingml/chart/plotareaconverter.cxx b/oox/source/drawingml/chart/plotareaconverter.cxx index f3a4b8ebe493..8afdfda365ea 100644 --- a/oox/source/drawingml/chart/plotareaconverter.cxx +++ b/oox/source/drawingml/chart/plotareaconverter.cxx @@ -335,12 +335,36 @@ void PlotAreaConverter::convertFromModel( View3DModel& rView3DModel ) // store all axis models in a map, keyed by axis identifier typedef ModelMap< sal_Int32, AxisModel > AxisMap; AxisMap aAxisMap; +std::vectorrValAxisIds; +std::vectorrRealValAxisIds; + +for (auto const& atypeGroup : mrModel.maTypeGroups) +{ +if (atypeGroup->maAxisIds.size() > 1) +{ +// let's collect which axId belongs to the Y Axis according to maTypeGroups +rRealValAxisIds.push_back(atypeGroup->maAxisIds[1]); +} +} + for (auto const& axis : mrModel.maAxes) { OSL_ENSURE( axis->mnAxisId >= 0, "PlotAreaConverter::convertFromModel - invalid axis identifier" ); OSL_ENSURE( !aAxisMap.has( axis->mnAxisId ), "PlotAreaConverter::convertFromModel - axis
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 21 ++ chart2/qa/extras/data/xlsx/add_series_secondary_axis.xlsx |binary oox/source/drawingml/chart/typegroupconverter.cxx | 19 +++- 3 files changed, 38 insertions(+), 2 deletions(-) New commits: commit a3881a66b8ffda4a8a89ecfc4347555e34193665 Author: Balazs Varga AuthorDate: Tue Apr 2 16:10:00 2019 +0200 Commit: László Németh CommitDate: Mon Apr 8 15:30:03 2019 +0200 tdf#124466 XLSX: fix broken export by removing chart type data redundancy XLSX import created a redundant series container for data series with the same chart type, when they were attached to a different axis. Modifying the loaded chart by the user, ie. attaching one of its data series to a different axis resulted broken OOXML export later, because based on the new axis, splitDataSeriesByAxis splitted the first or the redundant series container further. Now the import creates only a single series container for the series with the same chart type, preventing potential export problems. Change-Id: If951feaca3cb3b5df7718e9d7bfd59620ef3c4d3 Reviewed-on: https://gerrit.libreoffice.org/70141 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 3d537cf2ab90..6c769f0bbe63 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -113,6 +113,7 @@ public: void testBarChartVaryColorsXLSX(); void testMultipleAxisXLSX(); void testSecondaryAxisXLSX(); +void testSetSeriesToSecondaryAxisXLSX(); void testAxisTitleRotationXLSX(); void testAxisCrossBetweenXSLX(); void testPieChartDataPointExplosionXLSX(); @@ -206,6 +207,7 @@ public: CPPUNIT_TEST(testBarChartVaryColorsXLSX); CPPUNIT_TEST(testMultipleAxisXLSX); CPPUNIT_TEST(testSecondaryAxisXLSX); +CPPUNIT_TEST(testSetSeriesToSecondaryAxisXLSX); CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); @@ -1760,6 +1762,25 @@ void Chart2ExportTest::testSecondaryAxisXLSX() assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart[2]/c:ser[1]/c:tx/c:strRef/c:strCache/c:pt/c:v", "a"); } +void Chart2ExportTest::testSetSeriesToSecondaryAxisXLSX() +{ +load("/chart2/qa/extras/data/xlsx/", "add_series_secondary_axis.xlsx"); +Reference< chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); +// Second series +Reference xSeries = getDataSeriesFromDoc(xChartDoc, 1); +CPPUNIT_ASSERT(xSeries.is()); + +Reference xPropSet(xSeries, uno::UNO_QUERY_THROW); +sal_Int32 AxisIndex = 1; +// Attach the second series to the secondary axis. (The third series is already attached.) +xPropSet->setPropertyValue("AttachedAxisIndex", uno::Any(AxisIndex)); + +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +// Check there are only two tag in the XML, one for the primary and one for the secondary axis. +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart", 2); +} + void Chart2ExportTest::testAxisTitleRotationXLSX() { load("/chart2/qa/extras/data/xlsx/", "axis_title_rotation.xlsx"); diff --git a/chart2/qa/extras/data/xlsx/add_series_secondary_axis.xlsx b/chart2/qa/extras/data/xlsx/add_series_secondary_axis.xlsx new file mode 100755 index ..03d7a47f6c3d Binary files /dev/null and b/chart2/qa/extras/data/xlsx/add_series_secondary_axis.xlsx differ diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/typegroupconverter.cxx index 1f6c73e11d0b..bd592e6adbc5 100644 --- a/oox/source/drawingml/chart/typegroupconverter.cxx +++ b/oox/source/drawingml/chart/typegroupconverter.cxx @@ -312,6 +312,10 @@ void TypeGroupConverter::convertFromModel( const Reference< XDiagram >& rxDiagra OUString aService = OUString::createFromAscii( maTypeInfo.mpcServiceName ); Reference< XChartType > xChartType( createInstance( aService ), UNO_QUERY_THROW ); +Reference< XChartTypeContainer > xChartTypeContOld( rxCoordSystem, UNO_QUERY_THROW ); +Sequence< Reference< XChartType > > xOldChartTypes( xChartTypeContOld->getChartTypes() ); +sal_Int32 nOldChartTypeIdx = -1; + // additional properties PropertySet aDiaProp( rxDiagram ); PropertySet aTypeProp( xChartType ); @@ -419,11 +423,19 @@ void TypeGroupConverter::convertFromModel( const Reference< XDiagram >& rxDiagra } else { +for( sal_Int32 nCTIdx=0; nCTIdxgetChartType() == xOldChartTypes[nCTIdx]->getChartType() ) +{ +nOldChartTypeIdx = nCTIdx; +} +} + for (auto const& elem : aSeries)
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 18 ++ chart2/qa/extras/data/ods/secondary_axis.ods |binary oox/source/export/chartexport.cxx| 15 +++ 3 files changed, 33 insertions(+) New commits: commit ad363fd42e439b43c57b6541988234fbaf1ddb30 Author: Balazs Varga AuthorDate: Mon Apr 1 13:57:33 2019 +0200 Commit: László Németh CommitDate: Tue Apr 2 08:34:08 2019 +0200 tdf#124463 XLSX export: fix splitDataSeriesByAxis splitDataSeriesByAxis couldn't split series correctly into two sequences, because it put all series into the first created sequence, except the first series of the newer sequence. Other improvement: first sequence of the return vector always contains the series attached to the primary axis. Change-Id: I6e107aa990f9a1a1db49cae2a4f3c9d8a35fb54c Reviewed-on: https://gerrit.libreoffice.org/70059 Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index f4d8f5e981a9..3d537cf2ab90 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -112,6 +112,7 @@ public: void testPlotVisOnlyXLSX(); void testBarChartVaryColorsXLSX(); void testMultipleAxisXLSX(); +void testSecondaryAxisXLSX(); void testAxisTitleRotationXLSX(); void testAxisCrossBetweenXSLX(); void testPieChartDataPointExplosionXLSX(); @@ -204,6 +205,7 @@ public: CPPUNIT_TEST(testPlotVisOnlyXLSX); CPPUNIT_TEST(testBarChartVaryColorsXLSX); CPPUNIT_TEST(testMultipleAxisXLSX); +CPPUNIT_TEST(testSecondaryAxisXLSX); CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); @@ -1742,6 +1744,22 @@ void Chart2ExportTest::testMultipleAxisXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:axPos[@val='r']", 1); } +void Chart2ExportTest::testSecondaryAxisXLSX() +{ +load("/chart2/qa/extras/data/ods/", "secondary_axis.ods"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart", 2); +// test there is just those series in the first tag which are attached to the primary axis +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart[1]/c:ser", 2); +assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart[1]/c:ser[1]/c:tx/c:strRef/c:strCache/c:pt/c:v", "b"); +assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart[1]/c:ser[2]/c:tx/c:strRef/c:strCache/c:pt/c:v", "c"); +// test there is just those series in the second tag which are attached to the secondary axis +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart[2]/c:ser", 1); +assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart[2]/c:ser[1]/c:tx/c:strRef/c:strCache/c:pt/c:v", "a"); +} + void Chart2ExportTest::testAxisTitleRotationXLSX() { load("/chart2/qa/extras/data/xlsx/", "axis_title_rotation.xlsx"); diff --git a/chart2/qa/extras/data/ods/secondary_axis.ods b/chart2/qa/extras/data/ods/secondary_axis.ods new file mode 100755 index ..3f8f269c0f00 Binary files /dev/null and b/chart2/qa/extras/data/ods/secondary_axis.ods differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 47c30b1ba569..062636c91d62 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -1592,6 +1592,7 @@ std::vector > > splitDataSeriesByAxis(co Reference< chart2::XDataSeriesContainer > xDSCnt( xChartType, uno::UNO_QUERY ); if(xDSCnt.is()) { +sal_Int32 nAxisIndexOfFirstSeries = -1; Sequence< Reference< chart2::XDataSeries > > aSeriesSeq( xDSCnt->getDataSeries()); for (sal_Int32 nIndex = 0, nEnd = aSeriesSeq.getLength(); nIndex < nEnd; ++nIndex) { @@ -1604,6 +1605,10 @@ std::vector > > splitDataSeriesByAxis(co uno::Any aAny = xPropSet->getPropertyValue("AttachedAxisIndex"); aAny >>= nAxisIndex; size_t nVectorPos = 0; +if (nAxisIndexOfFirstSeries == -1) +{ +nAxisIndexOfFirstSeries = nAxisIndex; +} auto it = aMapAxisToIndex.find(nAxisIndex); if (it == aMapAxisToIndex.end()) @@ -1612,12 +1617,22 @@ std::vector > > splitDataSeriesByAxis(co nVectorPos = aSplitSeries.size() - 1; aMapAxisToIndex.insert(std::pair(nAxisIndex, nVectorPos)); } +else +{ +nVectorPos = it->second; +} uno::Sequence >& rAxisSeriesSeq = aSplitSeries[nVectorPos]; sal_Int32 nLength = rAxisSeriesSeq.getLength(); rAxisSeriesSeq.
[Libreoffice-commits] core.git: chart2/qa oox/source sc/source
chart2/qa/extras/chart2export.cxx | 11 ++ chart2/qa/extras/data/xlsx/tdf115012.xlsx |binary oox/source/drawingml/chart/chartspaceconverter.cxx | 85 + sc/source/ui/unoobj/chart2uno.cxx |8 + 4 files changed, 104 insertions(+) New commits: commit f684c074d5f66c8b1546a626766bc045c04cebc3 Author: László Németh AuthorDate: Mon Mar 11 16:30:36 2019 +0100 Commit: László Németh CommitDate: Tue Mar 12 13:16:00 2019 +0100 tdf#115012 XLSX chart import: workaround for no gap DispBlanksAs=gap mode of OOXML is different from treat-empty-cells=leave-gap mode of OpenDocument, because formulas with no numerical values and strings are no gaps in OOXML line charts, but zeroes. When the data source of the line charts contains formulas with no numerical values or strings, but it doesn't contain empty cells, as a workaround, the charts will be imported with the treat-empty-cells=use-zero setting to get the same line chart as in MSO. Note: now result of ScChart2DataSequence::getData(), a sequence of Any values contains UNO void values for empty cells instead empty strings, allowing the distinction of the empty cells and cells with empty string values. Change-Id: If9a101d66b5b750051928fa7b10b05cea6040071 Reviewed-on: https://gerrit.libreoffice.org/69054 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 8671a4771e21..f4d8f5e981a9 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -128,6 +128,7 @@ public: void testTdf108022(); void testTdf121744(); void testTdf122031(); +void testTdf115012(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -219,6 +220,7 @@ public: CPPUNIT_TEST(testTdf108022); CPPUNIT_TEST(testTdf121744); CPPUNIT_TEST(testTdf122031); +CPPUNIT_TEST(testTdf115012); CPPUNIT_TEST_SUITE_END(); protected: @@ -2046,6 +2048,15 @@ void Chart2ExportTest::testTdf122031() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:numFmt", "formatCode", "0.000%"); } +void Chart2ExportTest::testTdf115012() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf115012.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +// workaround: use-zero instead of leave-gap to show the original line chart +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:dispBlanksAs", "val", "zero"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/xlsx/tdf115012.xlsx b/chart2/qa/extras/data/xlsx/tdf115012.xlsx new file mode 100644 index ..cf8ac7d81eac Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf115012.xlsx differ diff --git a/oox/source/drawingml/chart/chartspaceconverter.cxx b/oox/source/drawingml/chart/chartspaceconverter.cxx index 6ddbb2ab76bb..2e2c8bc3885b 100644 --- a/oox/source/drawingml/chart/chartspaceconverter.cxx +++ b/oox/source/drawingml/chart/chartspaceconverter.cxx @@ -22,6 +22,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -67,6 +71,82 @@ ChartSpaceConverter::~ChartSpaceConverter() { } +// Formulas with no numeric values and strings are zeroes in OOXML line charts also in the mode DispBlanksAs=gap, +// unlike in OpenDocument LEAVE_GAP mode. As a workaround, we will use the OpenDocument mode USE_ZERO, if the OOXML +// line chart has got formulas with no numeric values and strings, but it doesn't have empty cells, showing the +// same chart as in MSO. (Empty cells need gaps, so in that case, we cannot use this workaround). +static bool lcl_useWorkaroundForNoGapInOOXML( Reference< chart2::XChartDocument > const & xChartDoc) +{ +Reference xDiagram = xChartDoc->getFirstDiagram(); +if ( !xDiagram.is() ) +return false; + +Reference< chart2::XCoordinateSystemContainer > xCooSysContainer( xDiagram, UNO_QUERY_THROW ); + +Sequence< Reference< chart2::XCoordinateSystem > > xCooSysSequence( xCooSysContainer->getCoordinateSystems()); +if ( xCooSysSequence.getLength() == 0 ) +return false; + +Reference< chart2::XChartTypeContainer > xChartTypeContainer( xCooSysSequence[0], UNO_QUERY_THROW ); + +Sequence< Reference< chart2::XChartType > > xChartTypeSequence( xChartTypeContainer->getChartTypes() ); +if ( xChartTypeSequence.getLength() == 0 ) +return false; + +const Reference& xCT = xChartTypeSequence[0]; + +if ( xCT->getChartType() != "com.sun.star.chart2.LineChartType" ) +return false; + +Reference xDSCont(xCT, uno::UNO_QUERY); + +if (!xDSCont.is()) +return false; + +Sequence > aData
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 19 +++ chart2/qa/extras/data/xlsx/testErrorBarProp.xlsx |binary oox/source/export/chartexport.cxx|2 ++ 3 files changed, 21 insertions(+) New commits: commit b89f239aa9d3d4660380bbd0c893aecde0986032 Author: Balazs Varga AuthorDate: Thu Feb 14 16:30:43 2019 +0100 Commit: László Németh CommitDate: Fri Feb 15 07:30:09 2019 +0100 tdf#97575 Chart OOXML: Export ShapeProps of Error Bars Export the shapeProps (fillstyle, linestyle, linewidth, linecolor etc.) of the Error Bars to OOXML. Change-Id: Iff74fa463fdd0fb6ed95e4d1bf0d3e906349860c Reviewed-on: https://gerrit.libreoffice.org/67825 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index b16e773ab776..8671a4771e21 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -40,6 +40,7 @@ protected: public: Chart2ExportTest() : ChartTest() {} void testErrorBarXLSX(); +void testErrorBarPropXLSX(); void testTrendline(); void testTrendlineOOXML(); void testTrendlineXLS(); @@ -130,6 +131,7 @@ public: CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); +CPPUNIT_TEST(testErrorBarPropXLSX); CPPUNIT_TEST(testTrendline); CPPUNIT_TEST(testTrendlineOOXML); CPPUNIT_TEST(testTrendlineXLS); @@ -495,6 +497,23 @@ void Chart2ExportTest::testErrorBarXLSX() } } +void Chart2ExportTest::testErrorBarPropXLSX() +{ +load("/chart2/qa/extras/data/xlsx/", "testErrorBarProp.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +// test y error bars property +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:errBars[1]/c:errDir", "val", "y"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:errBars[1]/c:spPr/a:ln", "w", "12600"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:errBars[1]/c:spPr/a:ln/a:solidFill/a:srgbClr", "val", "ff"); + +// test x error bars property +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:errBars[2]/c:errDir", "val", "x"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:errBars[2]/c:spPr/a:ln", "w", "9360"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:errBars[2]/c:spPr/a:ln/a:solidFill/a:srgbClr", "val", "595959"); +} + // This method tests the preservation of properties for trendlines / regression curves // in an export -> import cycle using different file formats - ODS, XLS and XLSX. void Chart2ExportTest::testTrendline() diff --git a/chart2/qa/extras/data/xlsx/testErrorBarProp.xlsx b/chart2/qa/extras/data/xlsx/testErrorBarProp.xlsx new file mode 100755 index ..ac9dde9b79b6 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testErrorBarProp.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index b1c437b53dfe..47c30b1ba569 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3885,6 +3885,8 @@ void ChartExport::exportErrorBar(const Reference< XPropertySet>& xErrorBarProps, FSEND ); } +exportShapeProps( xErrorBarProps ); + pFS->endElement( FSNS( XML_c, XML_errBars) ); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 20 chart2/qa/extras/data/docx/testTdf16.docx |binary oox/source/drawingml/chart/seriesconverter.cxx |2 +- 3 files changed, 21 insertions(+), 1 deletion(-) New commits: commit de73efb96fbb1d268caea0f41acbe20a234ec59f Author: Balazs Varga AuthorDate: Fri Feb 8 11:24:07 2019 +0100 Commit: László Németh CommitDate: Tue Feb 12 10:15:27 2019 +0100 tdf#16 OOXML Chart Import: data label new line separator Set the data label separator to "new line" if there is not present explicit point separator, just like in MS Office. Change-Id: I9ee0fb9f98fc1bb322892616af50954f4f8db0f9 Reviewed-on: https://gerrit.libreoffice.org/67533 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index f4f87734f27c..0d8eda002a3b 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -105,6 +105,7 @@ public: void testTdf109858(); // Pie chart label placement settings(XLSX) void testTdf73(); +void testTdf16(); void testInternalDataProvider(); @@ -180,6 +181,7 @@ public: CPPUNIT_TEST(testTdf90510); CPPUNIT_TEST(testTdf109858); CPPUNIT_TEST(testTdf73); +CPPUNIT_TEST(testTdf16); CPPUNIT_TEST(testInternalDataProvider); @@ -1447,6 +1449,24 @@ void Chart2ImportTest::testTdf73() uno::Reference< chart::XChartDocument > xChart1Doc( getChartCompFromSheet( 0, mxComponent ), UNO_QUERY_THROW ); } +void Chart2ImportTest::testTdf16() +{ +load( "/chart2/qa/extras/data/docx/", "testTdf16.docx" ); +uno::Reference< chart2::XChartDocument > xChartDoc ( getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT( xChartDoc.is() ); + +css::uno::Reference xDiagram(xChartDoc->getFirstDiagram(), UNO_QUERY_THROW); +Reference xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); +uno::Reference xPropertySet(xDataSeries->getDataPointByIndex(0), uno::UNO_QUERY_THROW); +CPPUNIT_ASSERT(xPropertySet.is()); + +uno::Any aAny = xPropertySet->getPropertyValue( "LabelSeparator" ); +CPPUNIT_ASSERT( aAny.hasValue() ); +OUString nLabelSeparator; +CPPUNIT_ASSERT( aAny >>= nLabelSeparator ); +CPPUNIT_ASSERT_EQUAL_MESSAGE( "Data labels should be separated into new lines", OUString("\n"), nLabelSeparator ); +} + void Chart2ImportTest::testTdf115107() { load("/chart2/qa/extras/data/pptx/", "tdf115107.pptx"); diff --git a/chart2/qa/extras/data/docx/testTdf16.docx b/chart2/qa/extras/data/docx/testTdf16.docx new file mode 100755 index ..7205525a7615 Binary files /dev/null and b/chart2/qa/extras/data/docx/testTdf16.docx differ diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index 716a0b234bdd..8fd572d98faf 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -183,7 +183,7 @@ void lclConvertLabelFormatting( PropertySet& rPropSet, ObjectFormatter& rFormatt // data label separator (do not overwrite series separator, if no explicit point separator is present) if( bDataSeriesLabel || rDataLabel.moaSeparator.has() ) -rPropSet.setProperty( PROP_LabelSeparator, rDataLabel.moaSeparator.get( "; " ) ); +rPropSet.setProperty( PROP_LabelSeparator, rDataLabel.moaSeparator.get( "\n" ) ); // data label placement (do not overwrite series placement, if no explicit point placement is present) if( bDataSeriesLabel || rDataLabel.monLabelPos.has() ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 16 +++- chart2/qa/extras/data/xlsx/tdf122915.xlsx |binary oox/source/export/chartexport.cxx |2 +- 3 files changed, 16 insertions(+), 2 deletions(-) New commits: commit 2eac095e2a672db180dc816350c1585a65245c7c Author: Balazs Varga AuthorDate: Mon Jan 28 10:09:51 2019 +0100 Commit: László Németh CommitDate: Wed Jan 30 09:10:17 2019 +0100 tdf#122915 Chart OOXML: Export individual data label prop Export the xLabelPropSet instead of the xPropset and the individual data label formatting will not be disappeared. Change-Id: Ic8c64543ad1e8b40d6d6a5cb7a9a244923e028f1 Reviewed-on: https://gerrit.libreoffice.org/66995 Tested-by: Jenkins Reviewed-by: László Németh Tested-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index e01ce9381ef9..dc36c3ad3c29 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -82,6 +82,7 @@ public: void testDataLabelDoughnutChartDOCX(); void testDataLabelAreaChartDOCX(); void testDataLabelDefaultLineChartDOCX(); +void testIndividualDataLabelProps(); void testChartTitlePropertiesColorFillDOCX(); void testChartTitlePropertiesGradientFillDOCX(); void testChartTitlePropertiesBitmapFillDOCX(); @@ -170,6 +171,7 @@ public: CPPUNIT_TEST(testDataLabelDoughnutChartDOCX); CPPUNIT_TEST(testDataLabelAreaChartDOCX); CPPUNIT_TEST(testDataLabelDefaultLineChartDOCX); +CPPUNIT_TEST(testIndividualDataLabelProps); CPPUNIT_TEST(testChartTitlePropertiesColorFillDOCX); CPPUNIT_TEST(testChartTitlePropertiesGradientFillDOCX); CPPUNIT_TEST(testChartTitlePropertiesBitmapFillDOCX); @@ -1094,6 +1096,17 @@ void Chart2ExportTest::testDataLabelDefaultLineChartDOCX() CPPUNIT_ASSERT_EQUAL_MESSAGE("Line chart's default label placement should be 'right'.", chart::DataLabelPlacement::RIGHT, nLabelPlacement ); } +void Chart2ExportTest::testIndividualDataLabelProps() +{ +load("/chart2/qa/extras/data/xlsx/", "tdf122915.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[3]/c:dLbls/c:dLbl/c:txPr/a:p/a:pPr/a:defRPr", "b", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[3]/c:dLbls/c:dLbl/c:txPr/a:p/a:pPr/a:defRPr", "sz", "1600"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[3]/c:dLbls/c:dLbl/c:txPr/a:p/a:pPr/a:defRPr/a:solidFill/a:srgbClr", "val", "ff"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[3]/c:dLbls/c:dLbl/c:txPr/a:p/a:pPr/a:defRPr/a:latin", "typeface", "Times New Roman"); +} + void Chart2ExportTest::testChartTitlePropertiesColorFillDOCX() { load("/chart2/qa/extras/data/docx/", "testChartTitlePropertiesColorFill.docx"); @@ -1736,7 +1749,8 @@ void Chart2ExportTest::testCustomDataLabel() load("/chart2/qa/extras/data/pptx/", "tdf115107.pptx"); xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart1", "Impress MS PowerPoint 2007 XML"); CPPUNIT_ASSERT(pXmlDoc); -assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[1]/c:txPr/a:p/a:pPr/a:defRPr/a:solidFill/a:srgbClr", "val", "404040"); +// Check the data labels font color for the complete data series +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr/a:solidFill/a:srgbClr", "val", "404040"); Reference xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); diff --git a/chart2/qa/extras/data/xlsx/tdf122915.xlsx b/chart2/qa/extras/data/xlsx/tdf122915.xlsx new file mode 100755 index ..ff20e04baf22 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf122915.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 5e09117183f0..cd344de5ab21 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3247,7 +3247,7 @@ void ChartExport::exportDataLabels( } // Individual label property that overwrites the baseline. -exportTextProps( xPropSet ); +exportTextProps( xLabelPropSet ); writeLabelProperties(pFS, this, xLabelPropSet, aParam); pFS->endElement(FSNS(XML_c, XML_dLbl)); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 12 chart2/qa/extras/data/xlsx/xAxisLabelsRotation.xlsx |binary oox/source/export/chartexport.cxx | 14 +- 3 files changed, 25 insertions(+), 1 deletion(-) New commits: commit 527772d8dfcedad56b11b5b13540ec1defa464e5 Author: Balazs Varga AuthorDate: Sat Dec 15 10:06:03 2018 +0100 Commit: Bartosz Kosiorek CommitDate: Tue Dec 18 16:53:24 2018 +0100 tdf#122090 Chart: Fix OOXML export of X axis labels rotation The MS Office UI allows values only in range of [-90,90]. Because of this, we should reflect the angle if the Textrotation is between 90 and 270 degree. Also we have to recalculated the the Textrotation between 270 and 360 degree, because the OOXML counts clockwise. Change-Id: I2fbd53d93ab2e8ea4e26840fd056de20b337daa3 Reviewed-on: https://gerrit.libreoffice.org/65194 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 7ed7e6afaee9..5bf1e730f93c 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -120,6 +120,7 @@ public: void testChartTitlePropertiesColorFillPPTX(); void testChartTitlePropertiesGradientFillPPTX(); void testChartTitlePropertiesBitmapFillPPTX(); +void testxAxisLabelsRotation(); void testTdf116163(); void testTdf119029(); void testTdf108022(); @@ -206,6 +207,7 @@ public: CPPUNIT_TEST(testChartTitlePropertiesColorFillPPTX); CPPUNIT_TEST(testChartTitlePropertiesGradientFillPPTX); CPPUNIT_TEST(testChartTitlePropertiesBitmapFillPPTX); +CPPUNIT_TEST(testxAxisLabelsRotation); CPPUNIT_TEST(testTdf116163); CPPUNIT_TEST(testTdf119029); CPPUNIT_TEST(testTdf108022); @@ -1920,6 +1922,16 @@ void Chart2ExportTest::testChartTitlePropertiesBitmapFillPPTX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); } +void Chart2ExportTest::testxAxisLabelsRotation() +{ +load ("/chart2/qa/extras/data/xlsx/", "xAxisLabelsRotation.xlsx"); +xmlDocPtr pXmlDoc1 = parseExport("xl/charts/chart","Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc1); + +// Chart1 xAxis labels should be 45 degree +assertXPath(pXmlDoc1, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:bodyPr", "rot", "270"); +} + void Chart2ExportTest::testTdf116163() { load("/chart2/qa/extras/data/pptx/", "tdf116163.pptx"); diff --git a/chart2/qa/extras/data/xlsx/xAxisLabelsRotation.xlsx b/chart2/qa/extras/data/xlsx/xAxisLabelsRotation.xlsx new file mode 100755 index ..cf511dfaf2d7 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/xAxisLabelsRotation.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index ce3c6984ad40..00b631688b14 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2366,10 +2366,22 @@ void ChartExport::exportTextProps(const Reference& xPropSet) if (fMultiplier) { -double fTextRotation = 0; +double fTextRotation = 0.0; uno::Any aAny = xPropSet->getPropertyValue("TextRotation"); if (aAny.hasValue() && (aAny >>= fTextRotation)) +{ +// The MS Office UI allows values only in range of [-90,90]. +if (fTextRotation > 9000.0 && fTextRotation < 27000.0) +{ +// Reflect the angle if the value is between 90° and 270° +fTextRotation -= 18000.0; +} +else if (fTextRotation >=27000.0) +{ +fTextRotation -= 36000.0; +} nRotation = std::round(fTextRotation * fMultiplier); +} } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 19 ++ chart2/qa/extras/charttest.hxx| 27 ++ chart2/qa/extras/data/docx/testTdf114179.docx |binary oox/source/drawingml/chart/converterbase.cxx |8 ++- 4 files changed, 53 insertions(+), 1 deletion(-) New commits: commit 26caf1bc59c81704f11225e3e431e412deb8c475 Author: Jozsef Szakacs AuthorDate: Wed Nov 7 09:52:17 2018 +0100 Commit: Bartosz Kosiorek CommitDate: Fri Nov 16 18:31:03 2018 +0100 tdf#114179: Custom size and position of the chart wall By Xlsx files, rChartSize is using the Values that it gets from getChartSize(), this is the same Size as rPageSize. By Docx files rChartSize was a negative number everytime, so the calcAbsRectangle Method gave back a 'false' Value because of this. The rPageSize shows at every Debugging, Width = 16000, and Height = 9000 for Docx files, and beacause rChartSize was equal to rPageSize by Xlsx, I tried rChartSize with this Fixed Size. Change-Id: Ia29fa3401475c33c1b5e3dde9c3cb030a02cceb4 Reviewed-on: https://gerrit.libreoffice.org/62991 Reviewed-by: Bartosz Kosiorek Tested-by: Bartosz Kosiorek diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index e478dbb66803..f9d5343c0317 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -111,8 +111,11 @@ public: void testTdf115107_2(); // import complex data point labels in cobo charts with multiple data series void testTdf116163(); + void testTdf121205(); +void testTdf114179(); + CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); CPPUNIT_TEST(testSteppedLines); @@ -177,8 +180,11 @@ public: CPPUNIT_TEST(testTdf115107_2); CPPUNIT_TEST(testTdf116163); + CPPUNIT_TEST(testTdf121205); +CPPUNIT_TEST(testTdf114179); + CPPUNIT_TEST_SUITE_END(); private: @@ -1598,6 +1604,19 @@ void Chart2ImportTest::testTdf121205() CPPUNIT_ASSERT_EQUAL(OUString("Firstline\nSecondline\nThirdline"), aTitle); } +void Chart2ImportTest::testTdf114179() +{ +load( "/chart2/qa/extras/data/docx/", "testTdf114179.docx" ); +uno::Reference< chart2::XChartDocument > xChartDoc ( getChartDocFromWriter(0), uno::UNO_QUERY); +CPPUNIT_ASSERT( xChartDoc.is() ); +css::uno::Reference xDiagram; +xDiagram.set( xChartDoc->getFirstDiagram() ); +CPPUNIT_ASSERT_MESSAGE( "There is a Diagram." , xDiagram.is() ); +awt::Size aPage = getPageSize( xChartDoc ); +awt::Size aSize = getSize( xDiagram,aPage ); +CPPUNIT_ASSERT( aSize.Width > 0); +CPPUNIT_ASSERT( aSize.Height > 0); +} CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx index 202475e7e4ca..84cea90845c3 100644 --- a/chart2/qa/extras/charttest.hxx +++ b/chart2/qa/extras/charttest.hxx @@ -65,6 +65,9 @@ #include #include +#include +#include +#include using namespace css; using namespace css::uno; @@ -84,6 +87,8 @@ public: uno::Reference getChartDocFromDrawImpress( sal_Int32 nPage, sal_Int32 nShape ); uno::Reference getChartDocFromWriter( sal_Int32 nShape ); +awt::Size getPageSize( const Reference< chart2::XChartDocument > & xChartDoc ); +awt::Size getSize(css::uno::Reference xDiagram, const awt::Size& rPageSize); virtual void setUp() override; virtual void tearDown() override; @@ -590,6 +595,28 @@ sal_Int16 getNumberFormatType( const Reference& xChartDo return nType; } +awt::Size ChartTest::getPageSize( const Reference< chart2::XChartDocument > & xChartDoc ) +{ +awt::Size aSize( 0, 0 ); +uno::Reference< com::sun::star::embed::XVisualObject > xVisualObject( xChartDoc, uno::UNO_QUERY ); +CPPUNIT_ASSERT( xVisualObject.is() ); +aSize = xVisualObject->getVisualAreaSize( com::sun::star::embed::Aspects::MSOLE_CONTENT ); +return aSize; +} + +awt::Size ChartTest::getSize(css::uno::Reference xDiagram, const awt::Size& rPageSize) +{ +Reference< beans::XPropertySet > xProp(xDiagram, uno::UNO_QUERY); +chart2::RelativeSize aRelativeSize; +xProp->getPropertyValue( "RelativeSize" ) >>= aRelativeSize; +double fX = aRelativeSize.Primary * rPageSize.Width; +double fY = aRelativeSize.Secondary * rPageSize.Height; +awt::Size aSize; +aSize.Width = static_cast< sal_Int32 >( ::rtl::math::round( fX ) ); +aSize.Height = static_cast< sal_Int32 >( ::rtl::math::round( fY ) ); +return aSize; +} + #endif // INCLUDED_CHART2_QA_EXTRAS_CHARTTEST_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/qa/extras/data/docx/testTdf114179.docx b/chart2/qa/extras/data/docx/testTdf114179.docx new file mode 100644 index ..36fb11e170f7 Binary files /dev/null and b/chart2/qa/extras/data/docx/testTdf114179.docx differ diff --git a/oox/source/drawingml/chart/converterb
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 10 ++ chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt |binary oox/source/export/chartexport.cxx | 11 +++ 3 files changed, 21 insertions(+) New commits: commit a1d4c2419097169cb2d51f7c11d90073766f6d9d Author: Balazs Varga AuthorDate: Mon Oct 8 19:31:38 2018 +0200 Commit: László Németh CommitDate: Tue Oct 9 09:27:56 2018 +0200 tdf#120341 OOXML export: fix export of Pie Chart Wall Borderline Export LineStyle_NONE instead of default linestyle of PlotArea border, because LibreOffice make invisible the Wall shape properties in case of PIE/NET/FILLED_NET charts. Or other solution in the future is set the default LineStyle of these charts to LineStyle_NONE. Change-Id: I59e6f18058713f4a0d4c77da8760a319f9c25152 Reviewed-on: https://gerrit.libreoffice.org/61547 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index d170510e2294..c6efff2eaaa0 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -57,6 +57,7 @@ public: void testDisplayUnits(); // void testFdo74115WallGradientFill(); void testFdo74115WallBitmapFill(); +void testPieChartWallLineStyle(); void testBarChartRotation(); void testShapeFollowedByChart(); void testPieChartDataLabels(); @@ -140,6 +141,7 @@ public: CPPUNIT_TEST(testDisplayUnits); // CPPUNIT_TEST(testFdo74115WallGradientFill); CPPUNIT_TEST(testFdo74115WallBitmapFill); +CPPUNIT_TEST(testPieChartWallLineStyle); CPPUNIT_TEST(testBarChartRotation); CPPUNIT_TEST(testShapeFollowedByChart); CPPUNIT_TEST(testPieChartDataLabels); @@ -712,6 +714,14 @@ void Chart2ExportTest::testFdo74115WallBitmapFill() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:blipFill"); } +void Chart2ExportTest::testPieChartWallLineStyle() +{ +load("/chart2/qa/extras/data/odt/", "testPieChartWallLineStyle.odt"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:ln/a:noFill"); +} + //The below test case tests the built in marker 'x' for Office 2010 in Line charts void Chart2ExportTest::testFdo78290LineChartMarkerX() diff --git a/chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt b/chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt new file mode 100644 index ..0e1ab533b15a Binary files /dev/null and b/chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 63958cdb3f7a..ded91c2b47d1 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -75,6 +75,7 @@ #include #include #include +#include #include #include #include @@ -1178,6 +1179,16 @@ void ChartExport::exportPlotArea( const Reference< css::chart::XChartDocument >& Reference< beans::XPropertySet > xWallPropSet( xWallFloorSupplier->getWall(), uno::UNO_QUERY ); if( xWallPropSet.is() ) { +uno::Any aAny = xWallPropSet->getPropertyValue("LineStyle"); +sal_Int32 eChartType = getChartType( ); +// Export LineStyle_NONE instead of default linestyle of PlotArea border, because LibreOffice +// make invisible the Wall shape properties, in case of these charts. Or in the future set +// the default LineStyle of these charts to LineStyle_NONE. +bool noSupportWallProp = ( (eChartType == chart::TYPEID_PIE) || (eChartType == chart::TYPEID_RADARLINE) || (eChartType == chart::TYPEID_RADARAREA) ); +if ( noSupportWallProp && (aAny != drawing::LineStyle_NONE) ) +{ +xWallPropSet->setPropertyValue( "LineStyle", uno::Any(drawing::LineStyle_NONE) ); +} exportShapeProps( xWallPropSet ); } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 23 ++ chart2/qa/extras/data/xlsx/testDataseriesOverlapStackedChart.xlsx |binary oox/source/export/chartexport.cxx | 17 ++- 3 files changed, 39 insertions(+), 1 deletion(-) New commits: commit 17c2b0af97f73b9103be982b15d7111b3980e027 Author: Balazs Varga AuthorDate: Wed Aug 22 11:15:45 2018 +0200 Commit: Markus Mohrhard CommitDate: Thu Aug 23 13:45:58 2018 +0200 tdf#94502 Fix overlap export of Stacked Bar Chart to *.xlsx Export the Overlap value with 100% for stacked charts, because the default overlap value of the Bar/Column chart is 0% and LibreOffice do nothing with the overlap value in Stacked Chart case, unlike the MS Office. Change-Id: If4e20b88c2b1180f68a8d2b610c407d674a8498b Reviewed-on: https://gerrit.libreoffice.org/59448 Reviewed-by: Markus Mohrhard Tested-by: Jenkins diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index cb9b40482aa6..d170510e2294 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -104,6 +104,7 @@ public: void testChartTitlePropertiesGradientFillXLSX(); void testChartTitlePropertiesBitmapFillXLSX(); void testBarChartDataPointPropXLSX(); +void testDataseriesOverlapStackedChartXLSX(); void testAxisCharacterPropertiesXLSX(); void testTitleCharacterPropertiesXLSX(); void testPlotVisOnlyXLSX(); @@ -186,6 +187,7 @@ public: CPPUNIT_TEST(testChartTitlePropertiesGradientFillXLSX); CPPUNIT_TEST(testChartTitlePropertiesBitmapFillXLSX); CPPUNIT_TEST(testBarChartDataPointPropXLSX); +CPPUNIT_TEST(testDataseriesOverlapStackedChartXLSX); CPPUNIT_TEST(testAxisCharacterPropertiesXLSX); CPPUNIT_TEST(testTitleCharacterPropertiesXLSX); CPPUNIT_TEST(testPlotVisOnlyXLSX); @@ -1603,6 +1605,27 @@ void Chart2ExportTest::testBarChartDataPointPropXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[2]/c:spPr/a:ln/a:solidFill/a:srgbClr", "val", "70ad47"); } +void Chart2ExportTest::testDataseriesOverlapStackedChartXLSX() +{ +load("/chart2/qa/extras/data/xlsx/", "testDataseriesOverlapStackedChart.xlsx"); + +// test the overlap value of a simple Stacked Column Chart +uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0, mxComponent ); +checkSheetForGapWidthAndOverlap(xChartDoc, 100, 0); + +// test the overlap value of a Percent Stacked Bar Chart +xChartDoc = getChartDocFromSheet( 1, mxComponent ); +checkSheetForGapWidthAndOverlap(xChartDoc, 100, 35); + +reload("Calc Office Open XML"); + +xChartDoc = getChartDocFromSheet( 0, mxComponent ); +checkSheetForGapWidthAndOverlap(xChartDoc, 100, 100); + +xChartDoc = getChartDocFromSheet( 1, mxComponent ); +checkSheetForGapWidthAndOverlap(xChartDoc, 100, 100); +} + void Chart2ExportTest::testAxisCharacterPropertiesXLSX() { load("/chart2/qa/extras/data/xlsx/", "axis_character_properties.xlsx"); diff --git a/chart2/qa/extras/data/xlsx/testDataseriesOverlapStackedChart.xlsx b/chart2/qa/extras/data/xlsx/testDataseriesOverlapStackedChart.xlsx new file mode 100755 index ..ba1c526b41ca Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testDataseriesOverlapStackedChart.xlsx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 654ffdbfb008..97adab7f5b00 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -1498,9 +1498,24 @@ void ChartExport::exportBarChart( const Reference< chart2::XChartType >& xChartT if( aBarPositionSequence.getLength() ) { sal_Int32 nOverlap = aBarPositionSequence[0]; -pFS->singleElement( FSNS( XML_c, XML_overlap ), +// Stacked/Percent Bar/Column chart Overlap-workaround +// Export the Overlap value with 100% for stacked charts, +// because the default overlap value of the Bar/Column chart is 0% and +// LibreOffice do nothing with the overlap value in Stacked charts case, +// unlike the MS Office, which is interpreted differently. +if( ( mbStacked || mbPercent ) && nOverlap != 100 ) +{ +nOverlap = 100; +pFS->singleElement( FSNS( XML_c, XML_overlap ), +XML_val, I32S( nOverlap ), +FSEND ); +} +else // Normal bar chart +{ +pFS->singleElement( FSNS( XML_c, XML_overlap ), XML_val, I32S( nOverlap ), FSEND ); +} } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 40 +++ chart2/qa/extras/data/docx/testBarChartDataPointPropDOCX.docx |binary chart2/qa/extras/data/xlsx/testBarChartDataPointPropXLSX.xlsx |binary oox/source/export/chartexport.cxx | 51 ++ 4 files changed, 91 insertions(+) New commits: commit c958f52b813d34baa9b5236bb34a08a04e6b0aba Author: Balazs Varga AuthorDate: Thu Aug 9 00:06:47 2018 +0200 Commit: Bartosz Kosiorek CommitDate: Fri Aug 10 07:05:30 2018 +0200 tdf#96469 Export Data Point properties in Charts on DOCX/XLSX If the color or other property of a datapoint in the chart deviates from the dataseries property, this patch will write it into a separate dPt tag and fixing the lost properies during OOXML export. Change-Id: I3d975675ac3691fcafe76de16e46851561eb2807 Reviewed-on: https://gerrit.libreoffice.org/58752 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 5da6eac373bb..cb9b40482aa6 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -85,6 +85,7 @@ public: void testChartTitlePropertiesColorFillDOCX(); void testChartTitlePropertiesGradientFillDOCX(); void testChartTitlePropertiesBitmapFillDOCX(); +void testBarChartDataPointPropDOCX(); void testFdo83058dlblPos(); void testAutoTitleDelXLSX(); void testDispBlanksAsXLSX(); @@ -102,6 +103,7 @@ public: void testChartTitlePropertiesColorFillXLSX(); void testChartTitlePropertiesGradientFillXLSX(); void testChartTitlePropertiesBitmapFillXLSX(); +void testBarChartDataPointPropXLSX(); void testAxisCharacterPropertiesXLSX(); void testTitleCharacterPropertiesXLSX(); void testPlotVisOnlyXLSX(); @@ -165,6 +167,7 @@ public: CPPUNIT_TEST(testChartTitlePropertiesColorFillDOCX); CPPUNIT_TEST(testChartTitlePropertiesGradientFillDOCX); CPPUNIT_TEST(testChartTitlePropertiesBitmapFillDOCX); +CPPUNIT_TEST(testBarChartDataPointPropDOCX); CPPUNIT_TEST(testFdo83058dlblPos); CPPUNIT_TEST(testAutoTitleDelXLSX); CPPUNIT_TEST(testDispBlanksAsXLSX); @@ -182,6 +185,7 @@ public: CPPUNIT_TEST(testChartTitlePropertiesColorFillXLSX); CPPUNIT_TEST(testChartTitlePropertiesGradientFillXLSX); CPPUNIT_TEST(testChartTitlePropertiesBitmapFillXLSX); +CPPUNIT_TEST(testBarChartDataPointPropXLSX); CPPUNIT_TEST(testAxisCharacterPropertiesXLSX); CPPUNIT_TEST(testTitleCharacterPropertiesXLSX); CPPUNIT_TEST(testPlotVisOnlyXLSX); @@ -1099,6 +1103,24 @@ void Chart2ExportTest::testChartTitlePropertiesBitmapFillDOCX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); } +void Chart2ExportTest::testBarChartDataPointPropDOCX() +{ +load("/chart2/qa/extras/data/docx/", "testBarChartDataPointPropDOCX.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:varyColors", "val", "0"); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[1]/c:idx", "val", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[1]/c:spPr/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val", "f6f8fc"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[1]/c:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr", "val", "c7d5ed"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[1]/c:spPr/a:ln/a:solidFill/a:srgbClr", "val", "70ad47"); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[2]/c:idx", "val", "2"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[2]/c:spPr/a:solidFill/a:srgbClr", "val", "ff"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[2]/c:spPr/a:ln/a:solidFill/a:srgbClr", "val", "00"); +} + void Chart2ExportTest::testBarChartRotation() { load ("/chart2/qa/extras/data/docx/", "barChartRotation.docx"); @@ -1563,6 +1585,24 @@ void Chart2ExportTest::testChartTitlePropertiesBitmapFillXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); } +void Chart2ExportTest::testBarChartDataPointPropXLSX() +{ +load("/chart2/qa/extras/data/xlsx/", "testBarChartDataPointPropXLSX.xlsx"); +xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:varyColors", "val", "0"); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[1]/c:idx", "val", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt[1]/c:spPr
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx |1 + oox/source/export/chartexport.cxx |2 ++ 2 files changed, 3 insertions(+) New commits: commit ae2fd281e046b2199ef44777b84518cd3abb2952 Author: Justin Luth Date: Thu Jun 28 21:21:29 2018 +0300 tdf#115945 oox export: data label writeRunProperties DataLabel font was always returning to the default - black. Change-Id: I6c72a8daa699394b36f69fc54e0ba042f0255c18 Reviewed-on: https://gerrit.libreoffice.org/56616 Tested-by: Jenkins Reviewed-by: Justin Luth Reviewed-by: Szymon Kłos diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 8ed59e43cf84..2a0d7e5df1c4 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -1580,6 +1580,7 @@ void Chart2ExportTest::testCustomDataLabel() load("/chart2/qa/extras/data/pptx/", "tdf115107.pptx"); xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart1", "Impress MS PowerPoint 2007 XML"); CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[1]/c:txPr/a:p/a:pPr/a:defRPr/a:solidFill/a:srgbClr", "val", "404040"); Reference xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index c6f30fb5600a..5af781a8ae26 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3178,10 +3178,12 @@ void ChartExport::exportDataLabels( // Individual label property that overwrites the baseline. pFS->startElement(FSNS(XML_c, XML_dLbl), FSEND); pFS->singleElement(FSNS(XML_c, XML_idx), XML_val, I32S(nIdx), FSEND); +exportTextProps( xPropSet ); writeLabelProperties(pFS, this, xLabelPropSet, aParam); pFS->endElement(FSNS(XML_c, XML_dLbl)); } +exportTextProps( xPropSet ); // Baseline label properties for all labels. writeLabelProperties(pFS, this, xPropSet, aParam); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 12 chart2/qa/extras/data/pptx/tdf115859.pptx |binary oox/source/export/chartexport.cxx | 18 ++ 3 files changed, 30 insertions(+) New commits: commit 235fcab47a8dc1e9b0e06a95a77a8c1d440aa619 Author: Szymon Kłos Date: Mon Feb 19 18:18:20 2018 +0100 tdf#115859 Export number format for chart series Change-Id: I65d30c6b92a530eadbd6fabe87fa8bd3416fee20 Reviewed-on: https://gerrit.libreoffice.org/50385 Tested-by: Jenkins Reviewed-by: Andras Timar diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 618a5b877af7..9f5efb140036 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -106,6 +106,7 @@ public: void testPieChartDataPointExplosionXLSX(); void testCustomDataLabel(); void testCustomDataLabelMultipleSeries(); +void testNumberFormatExportPPTX(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -174,6 +175,7 @@ public: CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); CPPUNIT_TEST(testCustomDataLabel); CPPUNIT_TEST(testCustomDataLabelMultipleSeries); +CPPUNIT_TEST(testNumberFormatExportPPTX); CPPUNIT_TEST_SUITE_END(); protected: @@ -1731,6 +1733,16 @@ void Chart2ExportTest::testCustomDataLabelMultipleSeries() } +void Chart2ExportTest::testNumberFormatExportPPTX() +{ +load("/chart2/qa/extras/data/pptx/", "tdf115859.pptx"); +xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt", "formatCode", "#,##0.00,\\K"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt", "sourceLinked", "0"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/pptx/tdf115859.pptx b/chart2/qa/extras/data/pptx/tdf115859.pptx new file mode 100644 index ..07943041bed8 Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf115859.pptx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 19d2908edebe..81ed22c57996 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3093,6 +3093,24 @@ void ChartExport::exportDataLabels( FSHelperPtr pFS = GetFS(); pFS->startElement(FSNS(XML_c, XML_dLbls), FSEND); +bool bLinkedNumFmt = true; +if (GetProperty(xPropSet, "LinkNumberFormatToSource")) +mAny >>= bLinkedNumFmt; + +if (GetProperty(xPropSet, "NumberFormat")) +{ +sal_Int32 nKey = 0; +mAny >>= nKey; + +OUString aNumberFormatString = getNumberFormatCode(nKey); +OString sNumberFormatString = OUStringToOString(aNumberFormatString, RTL_TEXTENCODING_UTF8); + +pFS->singleElement(FSNS(XML_c, XML_numFmt), +XML_formatCode, sNumberFormatString.getStr(), +XML_sourceLinked, bLinkedNumFmt ? "1" : "0", +FSEND); +} + uno::Sequence aAttrLabelIndices; xPropSet->getPropertyValue("AttributedDataPoints") >>= aAttrLabelIndices; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 159 ++ oox/source/export/chartexport.cxx | 107 - 2 files changed, 262 insertions(+), 4 deletions(-) New commits: commit bad41c8fe40e88e416631d61437e6abe5d00131d Author: Szymon Kłos Date: Sat Jan 27 20:29:38 2018 +0100 tdf#114821 export complex data labels in charts Change-Id: I9b0893dfde4efc10bb05e6e17b7128b016efeb71 Reviewed-on: https://gerrit.libreoffice.org/48788 Tested-by: Jenkins Reviewed-by: Szymon Kłos diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index deedbc0bee7f..618a5b877af7 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -13,6 +13,8 @@ #include #include +#include +#include #include #include #include @@ -102,6 +104,8 @@ public: void testAxisTitleRotationXLSX(); void testAxisCrossBetweenXSLX(); void testPieChartDataPointExplosionXLSX(); +void testCustomDataLabel(); +void testCustomDataLabelMultipleSeries(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -168,6 +172,8 @@ public: CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); +CPPUNIT_TEST(testCustomDataLabel); +CPPUNIT_TEST(testCustomDataLabelMultipleSeries); CPPUNIT_TEST_SUITE_END(); protected: @@ -1572,6 +1578,159 @@ void Chart2ExportTest::testPieChartDataPointExplosionXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dPt/c:explosion", "val", "28"); } +void Chart2ExportTest::testCustomDataLabel() +{ +load("/chart2/qa/extras/data/pptx/", "tdf115107.pptx"); +xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart1", "Impress MS PowerPoint 2007 XML"); +CPPUNIT_ASSERT(pXmlDoc); + +Reference xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +uno::Reference xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); +CPPUNIT_ASSERT(xDataSeries.is()); +float nFontSize; +sal_Int64 nFontColor; +sal_Int32 nCharUnderline; +uno::Reference xPropertySet; +uno::Sequence> aFields; + +// 1 +xPropertySet.set(xDataSeries->getDataPointByIndex(0), uno::UNO_QUERY_THROW); +xPropertySet->getPropertyValue("CustomLabelFields") >>= aFields; +CPPUNIT_ASSERT_EQUAL(static_cast(2), aFields.getLength()); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT, aFields[0]->getFieldType()); +CPPUNIT_ASSERT_EQUAL(OUString("90.0 = "), aFields[0]->getString()); +aFields[0]->getPropertyValue("CharHeight") >>= nFontSize; +aFields[0]->getPropertyValue("CharColor") >>= nFontColor; +CPPUNIT_ASSERT_EQUAL(static_cast(18), nFontSize); +CPPUNIT_ASSERT_EQUAL(static_cast(0xed7d31), nFontColor); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_VALUE, aFields[1]->getFieldType()); +CPPUNIT_ASSERT_EQUAL(OUString("90"), aFields[1]->getString()); +CPPUNIT_ASSERT_EQUAL(OUString("{0C576297-5A9F-4B4E-A675-B6BA406B7D87}"), aFields[1]->getGuid()); + +// 2 +xPropertySet.set(xDataSeries->getDataPointByIndex(1), uno::UNO_QUERY_THROW); +xPropertySet->getPropertyValue("CustomLabelFields") >>= aFields; +CPPUNIT_ASSERT_EQUAL(static_cast(8), aFields.getLength()); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT, aFields[0]->getFieldType()); +CPPUNIT_ASSERT_EQUAL(OUString("Text"), aFields[0]->getString()); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT, aFields[1]->getFieldType()); +CPPUNIT_ASSERT_EQUAL(OUString(" : "), aFields[1]->getString()); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_CATEGORYNAME, aFields[2]->getFieldType()); +CPPUNIT_ASSERT_EQUAL(OUString("B"), aFields[2]->getString()); +CPPUNIT_ASSERT_EQUAL(OUString("{0CCAAACD-B393-42CE-8DBD-82F9F9ADC852}"), aFields[2]->getGuid()); +aFields[2]->getPropertyValue("CharHeight") >>= nFontSize; +aFields[2]->getPropertyValue("CharColor") >>= nFontColor; +CPPUNIT_ASSERT_EQUAL(static_cast(16), nFontSize); +CPPUNIT_ASSERT_EQUAL(static_cast(0xed7d31), nFontColor); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_NEWLINE, aFields[3]->getFieldType()); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT, aFields[4]->getFieldType()); +CPPUNIT_ASSERT_EQUAL(OUString("Multi"), aFields[4]->getString()); + + CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT, aFields[5]->getFieldType()); +CPPUNIT_ASSERT_EQUAL(OUString("line"), aFields[5]->getStrin
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 30 ++ chart2/qa/extras/data/pptx/tdf105517.pptx |binary oox/source/drawingml/clrscheme.cxx|6 +- 3 files changed, 35 insertions(+), 1 deletion(-) New commits: commit 021081823aeebcfa395662d0c04535a243977c2e Author: Aron Budea Date: Fri Nov 3 02:08:00 2017 +0100 tdf#105517: overwrite existing scheme colors in vector Theme overrides stopped working once ClrScheme::maClrScheme was changed to vector, and colors were always appended to it. Regression from f3121049828596b369e3ea844355d61666e49795. Change-Id: Iae850dcabf57b12d8a564e84acf38d9988cfe963 Reviewed-on: https://gerrit.libreoffice.org/44242 Tested-by: Jenkins Reviewed-by: Markus Mohrhard diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 9b95105640f8..a49e80e1b867 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -62,6 +62,7 @@ public: void testFdo54361(); void testFdo54361_1(); void testTdf86624(); // manually placed legends +void testTdf105517(); void testTdf106217(); void testAutoBackgroundXLSX(); void testChartAreaStyleBackgroundXLSX(); @@ -129,6 +130,7 @@ public: CPPUNIT_TEST(testFdo54361); CPPUNIT_TEST(testFdo54361_1); CPPUNIT_TEST(testTdf86624); +CPPUNIT_TEST(testTdf105517); CPPUNIT_TEST(testTdf106217); CPPUNIT_TEST(testAutoBackgroundXLSX); CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX); @@ -747,6 +749,34 @@ void Chart2ImportTest::testTdf86624() CPPUNIT_ASSERT(aPos.Y > 4000); // real value for ms is above 7000 } +void Chart2ImportTest::testTdf105517() +{ +load("/chart2/qa/extras/data/pptx/", "tdf105517.pptx"); +Reference xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +Reference xCoordContainer(xChartDoc->getFirstDiagram(), uno::UNO_QUERY); +CPPUNIT_ASSERT(xCoordContainer.is()); +Reference xChartTypeContainer(xCoordContainer->getCoordinateSystems()[0], uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartTypeContainer.is()); +Reference xDSContainer(xChartTypeContainer->getChartTypes()[0], uno::UNO_QUERY); +CPPUNIT_ASSERT(xDSContainer.is()); +Reference xPropSet1(xDSContainer->getDataSeries()[0], uno::UNO_QUERY); +CPPUNIT_ASSERT(xPropSet1.is()); + +long lineColor; +xPropSet1->getPropertyValue("Color") >>= lineColor; +// incorrect line color was 0x4a7ebb due to not handling themeOverride +CPPUNIT_ASSERT_EQUAL(lineColor, long(0xeaa700)); + +Reference xPropSet2(xDSContainer->getDataSeries()[1], uno::UNO_QUERY); +CPPUNIT_ASSERT(xPropSet2.is()); + +xPropSet2->getPropertyValue("Color") >>= lineColor; +// incorrect line color was 0x98b855 +CPPUNIT_ASSERT_EQUAL(lineColor, long(0x1e69a8)); +} + void Chart2ImportTest::testTdf106217() { load("/chart2/qa/extras/data/pptx/", "tdf106217.pptx"); diff --git a/chart2/qa/extras/data/pptx/tdf105517.pptx b/chart2/qa/extras/data/pptx/tdf105517.pptx new file mode 100644 index ..ff9d747f0349 Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf105517.pptx differ diff --git a/oox/source/drawingml/clrscheme.cxx b/oox/source/drawingml/clrscheme.cxx index 7a99f3685a07..0c6517abfbc3 100644 --- a/oox/source/drawingml/clrscheme.cxx +++ b/oox/source/drawingml/clrscheme.cxx @@ -82,7 +82,11 @@ bool ClrScheme::getColor( sal_Int32 nSchemeClrToken, sal_Int32& rColor ) const void ClrScheme::setColor( sal_Int32 nSchemeClrToken, sal_Int32 nColor ) { -maClrScheme.emplace_back(nSchemeClrToken, nColor); +const auto aIter = std::find_if(maClrScheme.begin(), maClrScheme.end(), find_by_token(nSchemeClrToken) ); +if ( aIter != maClrScheme.end() ) +aIter->second = nColor; +else +maClrScheme.emplace_back(nSchemeClrToken, nColor); } bool ClrScheme::getColorByIndex(size_t nIndex, sal_Int32& rColor) const ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 25 chart2/qa/extras/data/pptx/tdf106217.pptx |binary oox/source/drawingml/chart/chartdrawingfragment.cxx |5 3 files changed, 30 insertions(+) New commits: commit aa204f1c09a760d6753c408376ab7307fb13ad91 Author: Tamás Zolnai Date: Sat Mar 11 05:14:47 2017 +0100 tdf#106217: Wrong size and position of a shape inside chart Same code which was added to the method DrawingFragment::onEndElement() in d178d7bef193565a7d6aacbc37a58dfc4bd7b316 A shape's size and position inside a chart object are primarily defined by and tags in drawing.xml, but in the same file we also have an tag which is used for the same thing (defining size and postion) in general. Testing with MSO it seems it ignores what values are set to and uses only the and values. The test document showing this problem must be created an earlier version of MSO, becuase is set to some random values. Editing the chart and saving it with MSO 2013 the values are set consistently with and pair. Change-Id: Icbaff78e5a6fcea36678c3b3755c97f57976b626 Reviewed-on: https://gerrit.libreoffice.org/35069 Tested-by: Jenkins Reviewed-by: Tamás Zolnai diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index be36047..871b41b 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -60,6 +61,7 @@ public: void testFdo54361(); void testFdo54361_1(); void testTdf86624(); // manually placed legends +void testTdf106217(); void testAutoBackgroundXLSX(); void testChartAreaStyleBackgroundXLSX(); void testAxisTextRotationXLSX(); @@ -120,6 +122,7 @@ public: CPPUNIT_TEST(testFdo54361); CPPUNIT_TEST(testFdo54361_1); CPPUNIT_TEST(testTdf86624); +CPPUNIT_TEST(testTdf106217); CPPUNIT_TEST(testAutoBackgroundXLSX); CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX); CPPUNIT_TEST(testAxisTextRotationXLSX); @@ -713,6 +716,28 @@ void Chart2ImportTest::testTdf86624() CPPUNIT_ASSERT(aPos.Y > 4000); // real value for ms is above 7000 } +void Chart2ImportTest::testTdf106217() +{ +load("/chart2/qa/extras/data/pptx/", "tdf106217.pptx"); +uno::Reference< chart::XChartDocument > xChartDoc = getChartDocFromDrawImpress(0, 0); +CPPUNIT_ASSERT(xChartDoc.is()); + +uno::Reference xDrawPageSupplier(xChartDoc, uno::UNO_QUERY); +uno::Reference xDrawPage = xDrawPageSupplier->getDrawPage(); +uno::Reference xCircle(xDrawPage->getByIndex(1), uno::UNO_QUERY); +CPPUNIT_ASSERT(xCircle.is()); + +uno::Reference xNamedShape(xCircle, uno::UNO_QUERY); +CPPUNIT_ASSERT_EQUAL(xNamedShape->getName(), OUString("Oval 1")); + +awt::Point aPosition = xCircle->getPosition(); +CPPUNIT_ASSERT_EQUAL(aPosition.X, sal_Int32(6870)); +CPPUNIT_ASSERT_EQUAL(aPosition.Y, sal_Int32(7261)); +awt::Size aSize = xCircle->getSize(); +CPPUNIT_ASSERT_EQUAL(aSize.Width, sal_Int32(2701)); +CPPUNIT_ASSERT_EQUAL(aSize.Height, sal_Int32(2700)); +} + void Chart2ImportTest::testTransparentBackground(OUString const & filename) { load("/chart2/qa/extras/data/xlsx/", filename); diff --git a/chart2/qa/extras/data/pptx/tdf106217.pptx b/chart2/qa/extras/data/pptx/tdf106217.pptx new file mode 100755 index 000..64fb968 Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf106217.pptx differ diff --git a/oox/source/drawingml/chart/chartdrawingfragment.cxx b/oox/source/drawingml/chart/chartdrawingfragment.cxx index de8d3f2..37261bf 100644 --- a/oox/source/drawingml/chart/chartdrawingfragment.cxx +++ b/oox/source/drawingml/chart/chartdrawingfragment.cxx @@ -216,6 +216,11 @@ void ChartDrawingFragment::onEndElement() getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Y, 0, SAL_MAX_INT32 ), getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Width, 0, SAL_MAX_INT32 ), getLimitedValue< sal_Int32, sal_Int64 >( aShapeRectEmu.Height, 0, SAL_MAX_INT32 ) ); + +// Set the position and size before calling addShape(). +mxShape->setPosition(awt::Point(aShapeRectEmu.X, aShapeRectEmu.Y)); +mxShape->setSize(awt::Size(aShapeRectEmu.Width, aShapeRectEmu.Height)); + basegfx::B2DHomMatrix aMatrix; mxShape->addShape( getFilter(), getFilter().getCurrentTheme(), mxDrawPage, aMatrix, mxShape->getFillProperties(), &aShapeRectEmu32 ); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 24 + chart2/qa/extras/data/pptx/sparse-chart.pptx |binary oox/source/drawingml/chart/chartconverter.cxx |9 +++ oox/source/drawingml/chart/datasourceconverter.cxx |2 - oox/source/drawingml/chart/typegroupconverter.cxx |1 5 files changed, 30 insertions(+), 6 deletions(-) New commits: commit 4bcf1872bbe9db1388769485a7e4c0cbcce3d53c Author: Jean-Tiare Le Bigot Date: Thu Oct 13 23:43:41 2016 +0200 chartx: fix sparse chart import Change-Id: I1bcd2257da900c6a88bc78040fabe5696e2bab7d Reviewed-on: https://gerrit.libreoffice.org/29801 Reviewed-by: Markus Mohrhard Tested-by: Markus Mohrhard diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index c8137b9..b508f3e 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -40,6 +40,7 @@ public: void testDOCChartSeries(); void testDOCXChartSeries(); void testPPTXChartSeries(); +void testPPTXSparseChartSeries(); /** * Original data contains 3 series but 2 of them are hidden. For now, we * detect and skip those hidden series on import (since we don't support @@ -105,6 +106,7 @@ public: CPPUNIT_TEST(testDOCXChartSeries); CPPUNIT_TEST(testPPTChartSeries); CPPUNIT_TEST(testPPTXChartSeries); +CPPUNIT_TEST(testPPTXSparseChartSeries); CPPUNIT_TEST(testPPTXHiddenDataSeries); CPPUNIT_TEST(testPPTXPercentageNumberFormats); CPPUNIT_TEST(testPPTXStackedNonStackedYAxis); @@ -399,6 +401,28 @@ void Chart2ImportTest::testPPTXChartSeries() CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), aLabels[2][0].get()); } +void Chart2ImportTest::testPPTXSparseChartSeries() +{ +//test chart series sparse data for pptx +load("/chart2/qa/extras/data/pptx/", "sparse-chart.pptx"); +Reference xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDoc.is()); + +Reference xCT = getChartTypeFromDoc(xChartDoc, 0); +CPPUNIT_ASSERT(xCT.is()); + +std::vector > aValues = getDataSeriesYValuesFromChartType(xCT); +CPPUNIT_ASSERT_EQUAL(size_t(2), aValues.size()); +CPPUNIT_ASSERT_EQUAL(0.0, aValues[0][0]); +CPPUNIT_ASSERT_EQUAL(2.5, aValues[0][1]); +CPPUNIT_ASSERT_EQUAL(3.5, aValues[0][2]); +CPPUNIT_ASSERT_EQUAL(0.0, aValues[0][3]); +CPPUNIT_ASSERT_EQUAL(-2.4, aValues[1][0]); +CPPUNIT_ASSERT_EQUAL(0.0, aValues[1][1]); +CPPUNIT_ASSERT_EQUAL(0.0, aValues[1][2]); +CPPUNIT_ASSERT_EQUAL(-2.8, aValues[1][3]); +} + void Chart2ImportTest::testPPTXHiddenDataSeries() { load("/chart2/qa/extras/data/pptx/", "stacked-bar-chart-hidden-series.pptx"); diff --git a/chart2/qa/extras/data/pptx/sparse-chart.pptx b/chart2/qa/extras/data/pptx/sparse-chart.pptx new file mode 100755 index 000..d91e8f5 Binary files /dev/null and b/chart2/qa/extras/data/pptx/sparse-chart.pptx differ diff --git a/oox/source/drawingml/chart/chartconverter.cxx b/oox/source/drawingml/chart/chartconverter.cxx index d494302..ff43fa7 100644 --- a/oox/source/drawingml/chart/chartconverter.cxx +++ b/oox/source/drawingml/chart/chartconverter.cxx @@ -133,11 +133,10 @@ Reference< XDataSequence > ChartConverter::createDataSequence( if( !rDataSeq.maData.empty() ) { // create a single-row array from constant source data -Matrix< Any > aMatrix( rDataSeq.maData.size(), 1 ); -Matrix< Any >::iterator aMIt = aMatrix.begin(); -// TODO: how to handle missing values in the map? -for( DataSequenceModel::AnyMap::const_iterator aDIt = rDataSeq.maData.begin(), aDEnd = rDataSeq.maData.end(); aDIt != aDEnd; ++aDIt, ++aMIt ) -*aMIt = aDIt->second; +Matrix< Any > aMatrix( rDataSeq.mnPointCount, 1 ); +for( DataSequenceModel::AnyMap::const_iterator aDIt = rDataSeq.maData.begin(), aDEnd = rDataSeq.maData.end(); aDIt != aDEnd; ++aDIt ) +*aMatrix.at(aDIt->first, 0) = aDIt->second; + aRangeRep = lclGenerateApiArray( aMatrix ); } diff --git a/oox/source/drawingml/chart/datasourceconverter.cxx b/oox/source/drawingml/chart/datasourceconverter.cxx index 2c3dbcf..738e705 100644 --- a/oox/source/drawingml/chart/datasourceconverter.cxx +++ b/oox/source/drawingml/chart/datasourceconverter.cxx @@ -69,7 +69,7 @@ Reference< XDataSequence > DataSequenceConverter::createDataSequence( const OUSt if(!bFirst) { mrModel.maData.clear(); -mrModel.maData.insert(std::make_pair(1, Any(aTitle.makeStringAndClear(; +mrModel.maData.insert(std::make_pair(0, Any(aTitle.makeStringAndClear(; } } xDataSeq = getChartConverter().createDataSequence(getChartDocument()->getDataProvider(), mrModel, rRole); diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/t
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx |9 - dev/null |binary oox/source/export/chartexport.cxx |7 --- 3 files changed, 16 deletions(-) New commits: commit 0ff4ec7f0a44af22794c2919a13978b3af1bb0b3 Author: Markus Mohrhard Date: Tue Sep 8 02:46:41 2015 +0200 Revert "Related: tdf#93676 in msword chart appears with axis positioned between ticks" This reverts commit 10654c038c0bc20fb348be7164e08f3de98718f4. diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 7004e97..1e73718 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -99,7 +99,6 @@ public: void testBarChartVaryColorsXLSX(); void testMultipleAxisXLSX(); void testAxisTitleRotationXLSX(); -void testAxisCrossBetweenXSLX(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -163,7 +162,6 @@ public: CPPUNIT_TEST(testBarChartVaryColorsXLSX); CPPUNIT_TEST(testMultipleAxisXLSX); CPPUNIT_TEST(testAxisTitleRotationXLSX); -CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST_SUITE_END(); protected: @@ -1475,13 +1473,6 @@ void Chart2ExportTest::testAxisTitleRotationXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:bodyPr", "rot", "0"); } -void Chart2ExportTest::testAxisCrossBetweenXSLX() -{ -load("/chart2/qa/extras/data/odt/", "axis-position.odt"); -xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); -assertXPath(pXmlDoc, "(//c:crossBetween)[1]", "val", "midCat"); -} - CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/odt/axis-position.odt b/chart2/qa/extras/data/odt/axis-position.odt deleted file mode 100644 index 35ea152..000 Binary files a/chart2/qa/extras/data/odt/axis-position.odt and /dev/null differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index b60c2b7..5438db3 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2828,13 +2828,6 @@ void ChartExport::_exportAxis( exportTextProps(xAxisProp); -if (nAxisType == XML_valAx) -{ -pFS->singleElement( FSNS( XML_c, XML_crossBetween ), -XML_val, "midCat", -FSEND ); -} - pFS->singleElement( FSNS( XML_c, XML_crossAx ), XML_val, I32S( rAxisIdPair.nCrossAx ), FSEND ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx | 23 + chart2/qa/extras/data/xlsx/chart-text-can-overlap.xlsx |binary oox/source/drawingml/chart/axismodel.cxx |2 - 3 files changed, 24 insertions(+), 1 deletion(-) New commits: commit 4027bc476a1df9df1924447795ddc2d8b7744e20 Author: sushil_shinde Date: Fri Oct 10 11:25:42 2014 +0530 fdo#84647 : Fixed default value for TickLableSkip value. 1. 'TextCanOverlap' property was stored as false if TickLableSkip is not equal to one. 2. For OOXML charts TickLableSkip can be between 1 to 9. 3. We can not apply zero or less than zero value to TickLableSkip. ( As per specification) 4. In axis model default value for TickLableSkip was zero which is incorrect. 5. Added unit test to check 'TextCanOverlap' property for chart. Change-Id: Ib3104b1d932f6e9376c149eabb201c8e9ad23da9 Reviewed-on: https://gerrit.libreoffice.org/11901 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index b853466..3b1f1e7 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -18,9 +18,11 @@ #include #include #include +#include #include + class Chart2ImportTest : public ChartTest { public: @@ -53,6 +55,7 @@ public: void testFdo78080(); void testFdo54361(); void testAutoBackgroundXLSX(); +void testTextCanOverlapXLSX(); void testNumberFormatsXLSX(); void testTransparentBackground(OUString const & filename); @@ -88,6 +91,7 @@ public: CPPUNIT_TEST(testFdo78080); CPPUNIT_TEST(testFdo54361); CPPUNIT_TEST(testAutoBackgroundXLSX); +CPPUNIT_TEST(testTextCanOverlapXLSX); CPPUNIT_TEST(testNumberFormatsXLSX); CPPUNIT_TEST_SUITE_END(); @@ -635,6 +639,25 @@ void Chart2ImportTest::testAutoBackgroundXLSX() (nColor & 0x00FF) == 0x00FF); // highest 2 bytes are transparency which we ignore here. } +void Chart2ImportTest::testTextCanOverlapXLSX() +{ +// fdo#84647 : To check textoverlap value is imported correclty. +load("/chart2/qa/extras/data/xlsx/", "chart-text-can-overlap.xlsx"); +uno::Reference< chart::XDiagram > mxDiagram; +uno::Reference< beans::XPropertySet > xAxisProp; +bool textCanOverlap = false; +uno::Reference< chart::XChartDocument > xChartDoc ( getChartCompFromSheet( 0, mxComponent ), UNO_QUERY_THROW); +CPPUNIT_ASSERT(xChartDoc.is()); +mxDiagram.set(xChartDoc->getDiagram()); +CPPUNIT_ASSERT(mxDiagram.is()); +uno::Reference< chart::XAxisXSupplier > xAxisXSupp( mxDiagram, uno::UNO_QUERY ); +CPPUNIT_ASSERT(xAxisXSupp.is()); +xAxisProp = xAxisXSupp->getXAxis(); +xAxisProp->getPropertyValue("TextCanOverlap") >>= textCanOverlap; +// Expected value of 'TextCanOverlap' is true +CPPUNIT_ASSERT(textCanOverlap); +} + void Chart2ImportTest::testNumberFormatsXLSX() { load("/chart2/qa/extras/data/xlsx/", "number-formats.xlsx"); diff --git a/chart2/qa/extras/data/xlsx/chart-text-can-overlap.xlsx b/chart2/qa/extras/data/xlsx/chart-text-can-overlap.xlsx new file mode 100644 index 000..59f907d Binary files /dev/null and b/chart2/qa/extras/data/xlsx/chart-text-can-overlap.xlsx differ diff --git a/oox/source/drawingml/chart/axismodel.cxx b/oox/source/drawingml/chart/axismodel.cxx index d4163bc..cbd66b7 100644 --- a/oox/source/drawingml/chart/axismodel.cxx +++ b/oox/source/drawingml/chart/axismodel.cxx @@ -46,7 +46,7 @@ AxisModel::AxisModel( sal_Int32 nTypeId ) : mnMinorTimeUnit( XML_days ), mnOrientation( XML_minMax ), mnTickLabelPos( XML_nextTo ), -mnTickLabelSkip( 0 ), +mnTickLabelSkip( 1 ), mnTickMarkSkip( 0 ), mnTypeId( nTypeId ), mbAuto( false ), ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 40 ++ chart2/qa/extras/data/docx/fdo78290_Combination_Chart_Marker_x.docx |binary chart2/qa/extras/data/docx/fdo78290_Line_Chart_Marker_x.docx|binary chart2/qa/extras/data/docx/fdo78290_Scatter_Chart_Marker_x.docx |binary oox/source/export/chartexport.cxx |5 - 5 files changed, 43 insertions(+), 2 deletions(-) New commits: commit ee0bb265c90a135afa53c0fa6a586996e67640fa Author: Bisal Singh Nayal Date: Wed May 7 20:03:11 2014 +0530 fdo#78290 : The File gets corrupted when saved in LO Problem Description: Docx file containing a chart (line chart / scatter chart)which has used a builtin marker'x' gets corrupted when we save it in LO.The reason was that while exporting LO was writing the marker information 'x' as 'X' which MS Word doesn't recognize.â. Also the size of the marker was coming 1 less than the actual value. Ex: if size is 7 then it was being written as 6. Solution: During export I have made changes so that now LO writes 'x' in the tag information â . Now the size of the marker is also being correctly exported. Change-Id: I26b747f9576625bf3acb941322ae418a0bbc6b64 Reviewed-on: https://gerrit.libreoffice.org/9273 Tested-by: Miklos Vajna Reviewed-by: Miklos Vajna Tested-by: Markus Mohrhard Reviewed-by: Markus Mohrhard diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 30a252a..c75b5c2 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -57,6 +57,9 @@ public: void testGapWidthXLSX(); void testSmoothedLines(); void testLabelStringODS(); +void testfdo78290_Line_Chart_Marker_x(); +void testfdo78290_Scatter_Chart_Marker_x(); +void testfdo78290_Combination_Chart_Marker_x(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -86,6 +89,9 @@ public: CPPUNIT_TEST(testGapWidthXLSX); CPPUNIT_TEST(testSmoothedLines); CPPUNIT_TEST(testLabelStringODS); +CPPUNIT_TEST(testfdo78290_Line_Chart_Marker_x); +CPPUNIT_TEST(testfdo78290_Scatter_Chart_Marker_x); +CPPUNIT_TEST(testfdo78290_Combination_Chart_Marker_x); CPPUNIT_TEST_SUITE_END(); protected: @@ -629,6 +635,40 @@ void Chart2ExportTest::testFdo74115WallBitmapFill() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:blipFill"); } +//The below test case tests the built in marker 'x' for Office 2010 in Line charts + +void Chart2ExportTest::testfdo78290_Line_Chart_Marker_x() +{ +load("/chart2/qa/extras/data/docx/", "fdo78290_Line_Chart_Marker_x.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace[1]/c:chart[1]/c:plotArea[1]/c:lineChart[1]/c:ser[1]/c:marker[1]/c:symbol[1]","val","x"); +assertXPath(pXmlDoc, "/c:chartSpace[1]/c:chart[1]/c:plotArea[1]/c:lineChart[1]/c:ser[1]/c:marker[1]/c:size[1]","val","7"); +} + +// We can also use the built in marker 'x' in scatter chart, hence writing the test case for the same. + +void Chart2ExportTest::testfdo78290_Scatter_Chart_Marker_x() +{ +load("/chart2/qa/extras/data/docx/", "fdo78290_Scatter_Chart_Marker_x.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace[1]/c:chart[1]/c:plotArea[1]/c:scatterChart[1]/c:ser[1]/c:marker[1]/c:symbol[1]","val","x"); +assertXPath(pXmlDoc, "/c:chartSpace[1]/c:chart[1]/c:plotArea[1]/c:scatterChart[1]/c:ser[1]/c:marker[1]/c:size[1]","val","7"); +} + +// Also in a combination of charts like a column chart and line chart, we can use the built in marker 'x' +// for the line chart too. hence put a test case for the combination chart also. + +void Chart2ExportTest::testfdo78290_Combination_Chart_Marker_x() +{ +load("/chart2/qa/extras/data/docx/", "fdo78290_Combination_Chart_Marker_x.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace[1]/c:chart[1]/c:plotArea[1]/c:lineChart[1]/c:ser[1]/c:marker[1]/c:symbol[1]","val","x"); +assertXPath(pXmlDoc, "/c:chartSpace[1]/c:chart[1]/c:plotArea[1]/c:lineChart[1]/c:ser[1]/c:marker[1]/c:size[1]","val","7"); +} + void Chart2ExportTest::testBarChartRotation() { load ("/chart2/qa/extras/data/docx/", "barChartRotation.docx"); diff --git a/chart2/qa/extras/data/docx/fdo78290_Combination_Chart_Marker_x.docx b/chart2/qa/extras/data/docx/fdo78290_Combination_Chart_Marker_x.docx new file mode 100644 index 000..ee2489d Binary files /dev/null and b/chart2/qa/extras/data/docx/fdo78290_Combination_Chart_Marker_x.docx differ diff --git a/chart2/qa/extras/data/docx/fdo78290_Line_Chart_Marker_x.docx b/chart2/qa
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 38 +++ chart2/qa/extras/data/docx/fdo77216.docx |binary oox/source/export/chartexport.cxx| 17 + 3 files changed, 54 insertions(+), 1 deletion(-) New commits: commit a211c754003f98bc8f7761224a0b265bd224f61f Author: Sourav Date: Tue Apr 15 16:39:52 2014 +0530 fdo77216-Charts-Scattered chart: Chart gets distorted on RT In case there is some text entered in place of X coordinates for scatter chart then x coordinates should be taken as 1,2,3 MS Word does the same thing Change-Id: I1db0fd64c6ac0f4d5e77a9676812f5e26577ecf6 Reviewed-on: https://gerrit.libreoffice.org/9011 Tested-by: Markus Mohrhard Reviewed-by: Markus Mohrhard diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index bc1dcd3..eded887 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -36,6 +36,7 @@ public: void testStockChart(); void testBarChart(); void testCrosses(); +void testScatterChart(); void testChartDataTable(); void testChartExternalData(); void testEmbeddingsGrabBag(); @@ -64,6 +65,7 @@ public: CPPUNIT_TEST(testStockChart); CPPUNIT_TEST(testBarChart); CPPUNIT_TEST(testCrosses); +CPPUNIT_TEST(testScatterChart); CPPUNIT_TEST(testChartDataTable); CPPUNIT_TEST(testChartExternalData); CPPUNIT_TEST(testEmbeddingsGrabBag); @@ -117,6 +119,14 @@ protected: * Same as the assertXPath(), but don't assert: return the string instead. */ OUString getXPath(xmlDocPtr pXmlDoc, const OString& rXPath, const OString& rAttribute); +/** +Assert that rXPath exists, and its content equals rContent. +*/ +void assertXPathContent(xmlDocPtr pXmlDoc, const OString& rXPath, const OUString& rContent); +/** +Same as the assertXPathContent(), but don't assert: return the string instead. +*/ +OUString getXPathContent(xmlDocPtr pXmlDoc, const OString& rXPath); private: }; @@ -211,6 +221,24 @@ void Chart2ExportTest::assertXPath(xmlDocPtr pXmlDoc, const OString& rXPath, int nNumberOfNodes, xmlXPathNodeSetGetLength(pXmlNodes)); } +void Chart2ExportTest::assertXPathContent(xmlDocPtr pXmlDoc, const OString& rXPath, const OUString& rContent) +{ +CPPUNIT_ASSERT_EQUAL_MESSAGE("XPath contents of child does not match", rContent, getXPathContent(pXmlDoc, rXPath)); +} + +OUString Chart2ExportTest::getXPathContent(xmlDocPtr pXmlDoc, const OString& rXPath) +{ + xmlNodeSetPtr pXmlNodes = getXPathNode(pXmlDoc, rXPath); + + CPPUNIT_ASSERT_MESSAGE(OString("XPath '" + rXPath + "' not found").getStr(), + xmlXPathNodeSetGetLength(pXmlNodes) > 0); + + xmlNodePtr pXmlNode = pXmlNodes->nodeTab[0]; + +_xmlNode *pNode = &(pXmlNode->children[0]); + return pNode ? OUString::createFromAscii((const char*)((pXmlNode->children[0]).content)) : OUString(); +} + OUString Chart2ExportTest::getXPath(xmlDocPtr pXmlDoc, const OString& rXPath, const OString& rAttribute) { xmlNodeSetPtr pXmlNodes = getXPathNode(pXmlDoc, rXPath); @@ -479,6 +507,16 @@ void Chart2ExportTest::testCrosses() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crosses", "val", "autoZero"); } +void Chart2ExportTest::testScatterChart() +{ +load("/chart2/qa/extras/data/docx/", "fdo77216.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +if (!pXmlDoc) + return; + +assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser[1]/c:xVal[1]/c:numRef[1]/c:numCache[1]/c:pt[1]/c:v[1]", "1"); +} + void Chart2ExportTest::testChartDataTable() { load("/chart2/qa/extras/data/docx/", "testChartDataTable.docx"); diff --git a/chart2/qa/extras/data/docx/fdo77216.docx b/chart2/qa/extras/data/docx/fdo77216.docx new file mode 100644 index 000..b741bbc Binary files /dev/null and b/chart2/qa/extras/data/docx/fdo77216.docx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index f6e02db..9b12eb7 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2008,6 +2008,14 @@ void ChartExport::exportSeriesValues( const Reference< chart2::data::XDataSequen pFS->singleElement( FSNS( XML_c, XML_ptCount ), XML_val, I32S( ptCount ), FSEND ); + +sal_Bool bIsNumberValue = sal_True; +sal_Bool bXSeriesValue = sal_False; +double Value = 1.0; + +if(nValueType == XML_xVal) +bXSeriesValue = sal_True; + for( sal_Int32 i = 0; i < ptCount; i++ ) { pFS->startElement( FSNS( XML_c, XML_pt ), @@ -2015,8 +2023,15 @@ void ChartExport::exportSeriesValues( const Reference< chart2::data::XDataSequen FSEND ); pFS->startElement( FSNS( XML_c, XML_v ), FSEND ); -if (!rtl
[Libreoffice-commits] core.git: chart2/qa oox/source sw/source writerfilter/inc writerfilter/source
chart2/qa/extras/chart2export.cxx| 39 ++ chart2/qa/extras/data/docx/testchartoleobjectembeddings.docx |binary oox/source/export/chartexport.cxx|6 sw/source/filter/ww8/docxexport.cxx |2 writerfilter/inc/ooxml/OOXMLDocument.hxx |2 writerfilter/source/ooxml/OOXMLDocumentImpl.cxx | 68 --- writerfilter/source/ooxml/OOXMLDocumentImpl.hxx |3 writerfilter/source/ooxml/OOXMLStreamImpl.cxx| 23 +++ 8 files changed, 125 insertions(+), 18 deletions(-) New commits: commit 23b65a84fd827555dfb84c7e2f78879c479c2f78 Author: sushil_shinde Date: Wed Mar 19 18:34:45 2014 +0530 fdo#76356 : Docx file contianing chart in footer/header gets corrupted. - Docx file with chart in footer/header or .bin file referred in chart was getting corrupted. - Embedded file for footer.xml was not grabbaged. - .bin embedded files were not grab baged. - Added grab bag support for both case. - Added UT to check .bin files are grab baged properly. Reviewed on: https://gerrit.libreoffice.org/8674 Change-Id: I221e3867798fc2a3a42f6385d687e80b80a3678f diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 5a57ea4..c0d20f1 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -52,6 +52,7 @@ public: void testErrorBarDataRangeODS(); void testChartCrash(); void testPieChartRotation(); +void testEmbeddingsOleObjectGrabBag(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -76,6 +77,7 @@ public: CPPUNIT_TEST(testErrorBarDataRangeODS); CPPUNIT_TEST(testChartCrash); CPPUNIT_TEST(testPieChartRotation); +CPPUNIT_TEST(testEmbeddingsOleObjectGrabBag); CPPUNIT_TEST_SUITE_END(); protected: @@ -673,6 +675,43 @@ void Chart2ExportTest::testPieChartRotation() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:view3D/c:rotY", "val", "30"); } +void Chart2ExportTest::testEmbeddingsOleObjectGrabBag() +{ + // The problem was that .bin files were missing from docx file from embeddings folder + // after saving file. + // This test case tests whether embeddings files grabbagged properly in correct object. + + load("/chart2/qa/extras/data/docx/", "testchartoleobjectembeddings.docx" ); + uno::Reference xTextDocument(mxComponent, uno::UNO_QUERY); + uno::Reference xTextDocumentPropertySet(xTextDocument, uno::UNO_QUERY); + uno::Sequence aGrabBag(0); + xTextDocumentPropertySet->getPropertyValue(OUString("InteropGrabBag")) >>= aGrabBag; + CPPUNIT_ASSERT(aGrabBag.hasElements()); // Grab Bag not empty + bool bEmbeddings = false; + const char* testEmbeddedFileNames[1] = {"word/embeddings/oleObject1.bin"}; + for(int i = 0; i < aGrabBag.getLength(); ++i) + { + if (aGrabBag[i].Name == "OOXEmbeddings") + { + bEmbeddings = true; + uno::Sequence aEmbeddingsList(0); + uno::Reference aEmbeddingXlsxStream; + OUString aEmbeddedfileName; + CPPUNIT_ASSERT(aGrabBag[i].Value >>= aEmbeddingsList); // PropertyValue of proper type + sal_Int32 length = aEmbeddingsList.getLength(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), length); + for(int j = 0; j < length; ++j) + { + aEmbeddingsList[j].Value >>= aEmbeddingXlsxStream; + aEmbeddedfileName = aEmbeddingsList[j].Name; + CPPUNIT_ASSERT(aEmbeddingXlsxStream.get()); // Reference not empty + CPPUNIT_ASSERT_EQUAL(OUString::createFromAscii(testEmbeddedFileNames[j]),aEmbeddedfileName); + } + } + } + CPPUNIT_ASSERT(bEmbeddings); // Grab Bag has all the expected elements +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/testchartoleobjectembeddings.docx b/chart2/qa/extras/data/docx/testchartoleobjectembeddings.docx new file mode 100644 index 000..8167de7 Binary files /dev/null and b/chart2/qa/extras/data/docx/testchartoleobjectembeddings.docx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 91d761f..0d30e29 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -801,8 +801,12 @@ void ChartExport::exportExternalData( Reference< ::com::sun::star::chart::XChart } } FSHelperPtr pFS = GetFS(); +OUString type = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";; +if (relationPath.endsWith(OUString(".bin"))) +type = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";; + OUString sRelId = GetFB()->addRelation(pFS->getOutputStream(), -
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 11 + chart2/qa/extras/data/docx/pieChartRotation.docx |binary oox/source/export/chartexport.cxx| 43 ++- 3 files changed, 45 insertions(+), 9 deletions(-) New commits: commit 2b6e395152b48e412d3addde7d8b3808b28d32c6 Author: PriyankaGaikwad Date: Tue Jan 28 18:28:39 2014 +0530 fdo#74111 3D Rotation is wrong after Round trip for pie chart 3D Rotation is lost after Round trip for pie chart. XML Difference: Original: Round Trip: Conflicts: chart2/qa/extras/chart2export.cxx Change-Id: I60132fef071e0573b17c35f509f3a74bd4ffcc66 diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index e328f90..3189a22 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -51,6 +51,7 @@ public: void testSeriesIdxOrder(); void testErrorBarDataRangeODS(); void testChartCrash(); +void testPieChartRotation(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -74,6 +75,7 @@ public: CPPUNIT_TEST(testSeriesIdxOrder); CPPUNIT_TEST(testErrorBarDataRangeODS); CPPUNIT_TEST(testChartCrash); +CPPUNIT_TEST(testPieChartRotation); CPPUNIT_TEST_SUITE_END(); protected: @@ -662,6 +664,15 @@ void Chart2ExportTest::testChartCrash() CPPUNIT_ASSERT(pXmlDoc); } +void Chart2ExportTest::testPieChartRotation() +{ +load ("/chart2/qa/extras/data/docx/", "pieChartRotation.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:view3D/c:rotX", "val", "40"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:view3D/c:rotY", "val", "30"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/pieChartRotation.docx b/chart2/qa/extras/data/docx/pieChartRotation.docx new file mode 100644 index 000..f76f602 Binary files /dev/null and b/chart2/qa/extras/data/docx/pieChartRotation.docx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 201d988..91d761f 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -3191,14 +3191,24 @@ void ChartExport::exportView3D() FSHelperPtr pFS = GetFS(); pFS->startElement( FSNS( XML_c, XML_view3D ), FSEND ); +sal_Int32 eChartType = getChartType( ); // rotX if( GetProperty( xPropSet, "RotationHorizontal" ) ) { sal_Int32 nRotationX = 0; mAny >>= nRotationX; -// X rotation (map Chart2 [-179,180] to OOXML [0..359]) if( nRotationX < 0 ) -nRotationX += 360; +{ +if(eChartType == chart::TYPEID_PIE) +{ +/* In OOXML we get value in 0..90 range for pie chart X rotation , whereas we expect it to be in -90..90 range, + so we conver that during import. It is modified in View3DConverter::convertFromModel() + here we convert it back to 0..90 as we received in import */ + nRotationX += 90; // X rotation (map Chart2 [-179,180] to OOXML [0..90]) +} +else +nRotationX += 360; // X rotation (map Chart2 [-179,180] to OOXML [-90..90]) +} pFS->singleElement( FSNS( XML_c, XML_rotX ), XML_val, I32S( nRotationX ), FSEND ); @@ -3206,14 +3216,29 @@ void ChartExport::exportView3D() // rotY if( GetProperty( xPropSet, "RotationVertical" ) ) { -sal_Int32 nRotationY = 0; -mAny >>= nRotationY; // Y rotation (map Chart2 [-179,180] to OOXML [0..359]) -if( nRotationY < 0 ) -nRotationY += 360; -pFS->singleElement( FSNS( XML_c, XML_rotY ), -XML_val, I32S( nRotationY ), -FSEND ); +if( eChartType == chart::TYPEID_PIE && GetProperty( xPropSet, "StartingAngle" ) ) +{ + // Y rotation used as 'first pie slice angle' in 3D pie charts +sal_Int32 nStartingAngle=0; +mAny >>= nStartingAngle; +// convert to ooxml angle +nStartingAngle = (450 - nStartingAngle ) % 360; +pFS->singleElement( FSNS( XML_c, XML_rotY ), + XML_val, I32S( nStartingAngle ), + FSEND ); +} +else +{ +sal_Int32 nRotationY = 0; +mAny >>= nRotationY; +// Y rotation (map Chart2 [-179,180] to OOXML [0..359]) +if( nRotationY < 0 ) +nRotationY += 360; +pFS->singleElement( FSNS( XML_c, XML_rotY ), +XML_val, I32S( nRotationY ), +FSEND ); +} } // rAngAx if( GetProperty( xP
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx|9 + chart2/qa/extras/data/docx/FDO75975.docx |binary oox/source/export/chartexport.cxx|2 +- 3 files changed, 10 insertions(+), 1 deletion(-) New commits: commit ede99e0daa0701e2d8568d7ed00e2221a4f6a9f6 Author: Ravindra Vidhate Date: Mon Mar 10 17:36:05 2014 +0530 fdo#75975 crash while saving the DOCX file containing charts 1. Open DOCX file containing Charts 2. Save this file into DOCX format. 3. LO crashed while saving/exporting to DOCX format. Conflicts: chart2/qa/extras/chart2export.cxx Change-Id: I14d4f2c214ce3513b4bd14831771d72498e4486d diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 0dd8d63..e328f90 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -50,6 +50,7 @@ public: void testPieChartDataLabels(); void testSeriesIdxOrder(); void testErrorBarDataRangeODS(); +void testChartCrash(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -72,6 +73,7 @@ public: CPPUNIT_TEST(testPieChartDataLabels); CPPUNIT_TEST(testSeriesIdxOrder); CPPUNIT_TEST(testErrorBarDataRangeODS); +CPPUNIT_TEST(testChartCrash); CPPUNIT_TEST_SUITE_END(); protected: @@ -653,6 +655,13 @@ void Chart2ExportTest::testErrorBarDataRangeODS() CPPUNIT_ASSERT_EQUAL(OUString("$Sheet1.$C$1:$C$3"), aNegRange); } +void Chart2ExportTest::testChartCrash() +{ +load("/chart2/qa/extras/data/docx/", "FDO75975.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/FDO75975.docx b/chart2/qa/extras/data/docx/FDO75975.docx new file mode 100644 index 000..30f2510 Binary files /dev/null and b/chart2/qa/extras/data/docx/FDO75975.docx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index b912bcf..201d988 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2307,7 +2307,7 @@ void ChartExport::_exportAxis( { pFS->startElement( FSNS( XML_c, XML_minorGridlines ), FSEND ); -exportShapeProps( xMajorGrid ); +exportShapeProps( xMinorGrid ); pFS->endElement( FSNS( XML_c, XML_minorGridlines ) ); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2import.cxx| 10 +++--- chart2/qa/extras/data/docx/barChart.docx |binary oox/source/helper/propertymap.cxx|7 +-- 3 files changed, 12 insertions(+), 5 deletions(-) New commits: commit 0b6a1f2afa7954afcf1f27b066169455ed6cff7a Author: PriyankaGaikwad Date: Wed Feb 19 17:08:02 2014 +0530 fdo#75200:Libreoffice crash while opening the file Conflicts: chart2/qa/extras/chart2import.cxx Change-Id: Icb2a5bc43ef5fd0f307b43bbe8aaf892a043dc5b Reviewed-on: https://gerrit.libreoffice.org/8127 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 2d4259b..17940fe 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -34,6 +34,7 @@ public: void testPPTChartSeries(); void testODPChartSeries(); void testBnc864396(); +void testChartFileOpen(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -45,6 +46,7 @@ public: CPPUNIT_TEST(testODTChartSeries); CPPUNIT_TEST(testDOCChartSeries); CPPUNIT_TEST(testDOCXChartSeries); +CPPUNIT_TEST(testChartFileOpen); /* * Disabling Impress Uts. * ChartTest::tearDown() calls dispose of mxComponent @@ -260,7 +262,6 @@ void Chart2ImportTest::testPPTChartSeries() CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[0]); CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[1]); CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[2]); - } void Chart2ImportTest::testPPTXChartSeries() @@ -270,7 +271,6 @@ void Chart2ImportTest::testPPTXChartSeries() CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[1]); CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[2]); CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[3]); - } void Chart2ImportTest::testODPChartSeries() @@ -280,7 +280,6 @@ void Chart2ImportTest::testODPChartSeries() CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[0]); CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[1]); CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[2]); - } void Chart2ImportTest::testBnc864396() @@ -298,6 +297,11 @@ void Chart2ImportTest::testBnc864396() } } +void Chart2ImportTest::testChartFileOpen() +{ +load("/chart2/qa/extras/data/docx/", "barChart.docx"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/barChart.docx b/chart2/qa/extras/data/docx/barChart.docx new file mode 100644 index 000..9b9152b Binary files /dev/null and b/chart2/qa/extras/data/docx/barChart.docx differ diff --git a/oox/source/helper/propertymap.cxx b/oox/source/helper/propertymap.cxx index ab37dd3..cd84da0 100644 --- a/oox/source/helper/propertymap.cxx +++ b/oox/source/helper/propertymap.cxx @@ -243,8 +243,11 @@ void PropertyMap::fillSequences( Sequence< OUString >& rNames, Sequence< Any >& for( const_iterator aIt = begin(), aEnd = end(); aIt != aEnd; ++aIt, ++pNames, ++pValues ) { OSL_ENSURE( (0 <= aIt->first) && (aIt->first < PROP_COUNT), "PropertyMap::fillSequences - invalid property identifier" ); -*pNames = (*mpPropNames)[ aIt->first ]; -*pValues = aIt->second; +if((sal_uInt32)aIt->first <= mpPropNames->size()) +{ + *pNames = (*mpPropNames)[ aIt->first ]; + *pValues = aIt->second; +} } } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx |9 + chart2/qa/extras/data/docx/PieChartDataLabels.docx |binary oox/source/drawingml/chart/seriesconverter.cxx |5 +++-- 3 files changed, 12 insertions(+), 2 deletions(-) New commits: commit a05ad6dd36f73647cdf0839d2c18dbc1d399c792 Author: Rohit Deshmukh Date: Thu Feb 6 17:34:20 2014 +0530 fdo#74137: Fix for courruption of Pie chart after roundtrip. Problem: - Pie chart with data labels files gets corrupt because of label position is bestFit in original file. - But after round trip, data labels position gets changes to top, left and right. For some data labels postion value is missing. Implementaion: - In LO, while converting data label from model, the position gets changed. So we are ignoring this hack for Pie chart. Conflicts: chart2/qa/extras/chart2export.cxx Change-Id: Ic51845cd6f39bc905439eea8971e878607d25dac diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index c15f5af..b7b3668 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -47,6 +47,7 @@ public: void testFdo74115WallBitmapFill(); void testBarChartRotation(); void testShapeFollowedByChart(); +void testPieChartDataLabels(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -66,6 +67,7 @@ public: CPPUNIT_TEST(testFdo74115WallBitmapFill); CPPUNIT_TEST(testBarChartRotation); CPPUNIT_TEST(testShapeFollowedByChart); +CPPUNIT_TEST(testPieChartDataLabels); CPPUNIT_TEST_SUITE_END(); protected: @@ -598,7 +600,14 @@ void Chart2ExportTest::testShapeFollowedByChart() OUString aValueOfFirstDocPR = getXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:drawing[1]/wp:inline[1]/wp:docPr[1]", "id"); OUString aValueOfSecondDocPR = getXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[2]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/wp:docPr[1]", "id"); CPPUNIT_ASSERT( aValueOfFirstDocPR != aValueOfSecondDocPR ); +} +void Chart2ExportTest::testPieChartDataLabels() +{ +load("/chart2/qa/extras/data/docx/", "PieChartDataLabels.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pie3DChart/c:ser[1]/c:dLbls/c:dLbl[1]/c:dLblPos", "val", "bestFit"); } CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); diff --git a/chart2/qa/extras/data/docx/PieChartDataLabels.docx b/chart2/qa/extras/data/docx/PieChartDataLabels.docx new file mode 100644 index 000..99a72c0 Binary files /dev/null and b/chart2/qa/extras/data/docx/PieChartDataLabels.docx differ diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx index 5c85d99..668847c 100644 --- a/oox/source/drawingml/chart/seriesconverter.cxx +++ b/oox/source/drawingml/chart/seriesconverter.cxx @@ -185,8 +185,9 @@ void DataLabelConverter::convertFromModel( const Reference< XDataSeries >& rxDat { PropertySet aPropSet( rxDataSeries->getDataPointByIndex( mrModel.mnIndex ) ); lclConvertLabelFormatting( aPropSet, getFormatter(), mrModel, rTypeGroup, false ); - -if( mrModel.mxLayout && !mrModel.mxLayout->mbAutoLayout ) +const TypeGroupInfo& rTypeInfo = rTypeGroup.getTypeInfo(); +bool bIsPie = rTypeInfo.meTypeCategory == TYPECATEGORY_PIE; +if( mrModel.mxLayout && !mrModel.mxLayout->mbAutoLayout && !bIsPie ) { // bnc#694340 - nasty hack - chart2 cannot individually // place data labels, let's try to find a useful ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 12 chart2/qa/extras/data/docx/barChartRotation.docx |binary oox/source/drawingml/chart/plotareaconverter.cxx |2 +- 3 files changed, 13 insertions(+), 1 deletion(-) New commits: commit c753c0b937ee4a86ac6a5f2617ffb59f65e7e713 Author: PriyankaGaikwad Date: Mon Feb 3 17:30:49 2014 +0530 fdo#74111 3D Rotation is wrong after Round trip for bar chart 3D Rotation is lost after Round trip for bar chart. XML Difference: Original: Round Trip: Implementation: The RightAngledAxes should set first then the RotationVertical and RotationHorizontal because the RightAngledAxes is needed while setting Rotation. Conflicts: chart2/qa/extras/chart2export.cxx Change-Id: I64f3b6e56f8515bf6c3d935c59dfaf1d440dba31 diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 77140840..1cd52be 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -45,6 +45,7 @@ public: void testDisplayUnits(); void testFdo74115WallGradientFill(); void testFdo74115WallBitmapFill(); +void testBarChartRotation(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -62,6 +63,7 @@ public: CPPUNIT_TEST(testDisplayUnits); CPPUNIT_TEST(testFdo74115WallGradientFill); CPPUNIT_TEST(testFdo74115WallBitmapFill); +CPPUNIT_TEST(testBarChartRotation); CPPUNIT_TEST_SUITE_END(); protected: @@ -566,6 +568,16 @@ void Chart2ExportTest::testFdo74115WallBitmapFill() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:blipFill"); } +void Chart2ExportTest::testBarChartRotation() +{ +load ("/chart2/qa/extras/data/docx/", "barChartRotation.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); + +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:view3D/c:rotX", "val", "30"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:view3D/c:rotY", "val", "50"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/barChartRotation.docx b/chart2/qa/extras/data/docx/barChartRotation.docx new file mode 100644 index 000..bf4be47 Binary files /dev/null and b/chart2/qa/extras/data/docx/barChartRotation.docx differ diff --git a/oox/source/drawingml/chart/plotareaconverter.cxx b/oox/source/drawingml/chart/plotareaconverter.cxx index c069078..8fcb625 100644 --- a/oox/source/drawingml/chart/plotareaconverter.cxx +++ b/oox/source/drawingml/chart/plotareaconverter.cxx @@ -255,10 +255,10 @@ void View3DConverter::convertFromModel( const Reference< XDiagram >& rxDiagram, cssd::ProjectionMode eProjMode = bParallel ? cssd::ProjectionMode_PARALLEL : cssd::ProjectionMode_PERSPECTIVE; // set rotation properties +aPropSet.setProperty( PROP_RightAngledAxes, bRightAngled ); aPropSet.setProperty( PROP_RotationVertical, nRotationY ); aPropSet.setProperty( PROP_RotationHorizontal, nRotationX ); aPropSet.setProperty( PROP_Perspective, nPerspective ); -aPropSet.setProperty( PROP_RightAngledAxes, bRightAngled ); aPropSet.setProperty( PROP_D3DScenePerspective, eProjMode ); // set light settings ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx| 10 ++ chart2/qa/extras/data/docx/DisplayUnits.docx |binary oox/source/export/chartexport.cxx| 25 + 3 files changed, 35 insertions(+) New commits: commit 1d497297ec9bc2ed00bbc8f586a67c76eaa7013d Author: sushil_shinde Date: Wed Jan 29 14:34:35 2014 +0530 fdo#74112 Write Chart Displayunits information back to XML. During export access properties stored during import and write back those. Currently we just support basic chart display unit information such as builtinunit, there are more properties ex. custUnit, dispUnitsLbl, extLst. which are pending. Conflicts: chart2/qa/extras/chart2export.cxx Change-Id: I87e0a8322fc0b0c3df2b8053b7f29fffea611040 Reviewed-on: https://gerrit.libreoffice.org/7722 Tested-by: Markus Mohrhard Reviewed-by: Markus Mohrhard diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index e164296..399c0bb 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -42,6 +42,7 @@ public: void testAreaChartLoad(); void testUpDownBars(); void testDoughnutChart(); +void testDisplayUnits(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -56,6 +57,7 @@ public: CPPUNIT_TEST(testAreaChartLoad); CPPUNIT_TEST(testUpDownBars); CPPUNIT_TEST(testDoughnutChart); +CPPUNIT_TEST(testDisplayUnits); CPPUNIT_TEST_SUITE_END(); protected: @@ -533,6 +535,14 @@ void Chart2ExportTest::testDoughnutChart() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:doughnutChart", "1"); } +void Chart2ExportTest::testDisplayUnits() +{ +load("/chart2/qa/extras/data/docx/", "DisplayUnits.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:dispUnits/c:builtInUnit", "val", "billions"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/DisplayUnits.docx b/chart2/qa/extras/data/docx/DisplayUnits.docx new file mode 100644 index 000..97092a3 Binary files /dev/null and b/chart2/qa/extras/data/docx/DisplayUnits.docx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 1c82816..dbbeb07 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2389,6 +2389,31 @@ void ChartExport::_exportAxis( FSEND ); } +sal_Bool bDisplayUnits = sal_False; +if(GetProperty( xAxisProp, "DisplayUnits" ) ) +{ +mAny >>= bDisplayUnits; +if(bDisplayUnits) +{ +OUString aVal; +pFS->startElement( FSNS( XML_c, XML_dispUnits ), +FSEND ); +if(GetProperty( xAxisProp, "BuiltInUnit" )) +{ +mAny >>= aVal; +if(!aVal.isEmpty()) +{ +OString aBuiltInUnit = OUStringToOString(aVal, RTL_TEXTENCODING_UTF8); +pFS->singleElement( FSNS( XML_c, XML_builtInUnit ), +XML_val, aBuiltInUnit.getStr(), +FSEND ); +} + } + pFS->singleElement(FSNS( XML_c, XML_dispUnitsLbl ),FSEND); + pFS->endElement( FSNS( XML_c, XML_dispUnits ) ); + +} +} // TODO: text properties pFS->endElement( FSNS( XML_c, nAxisType ) ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/qa oox/source
chart2/qa/extras/chart2export.cxx | 12 +++ chart2/qa/extras/data/docx/testAreaChartLoad.docx |binary oox/source/export/chartexport.cxx | 73 +++--- 3 files changed, 63 insertions(+), 22 deletions(-) New commits: commit c7cfe0876d7ca3d861cc6d8c1f84970f9f71def9 Author: Rajashri Date: Fri Dec 6 16:20:54 2013 +0530 fdo#72217 : Fix for corruption area chart with data labels after Round Trip. For labels under one series, there were child tags created for every data label individually. for example, if under one series there are five labels, then under there were 5 tags created separately. This issue is resolved now. Conflicts: chart2/qa/extras/chart2export.cxx Change-Id: I7ae214f413bc27728df8a3d4cb8f4d703cba2f77 diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 6cef73b..7b1629a 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -39,6 +39,7 @@ public: void testChartDataTable(); void testChartExternalData(); void testEmbeddingsGrabBag(); +void testAreaChartLoad(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -50,6 +51,7 @@ public: CPPUNIT_TEST(testChartDataTable); CPPUNIT_TEST(testChartExternalData); CPPUNIT_TEST(testEmbeddingsGrabBag); +CPPUNIT_TEST(testAreaChartLoad); CPPUNIT_TEST_SUITE_END(); protected: @@ -440,6 +442,7 @@ 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"); @@ -500,6 +503,15 @@ void Chart2ExportTest::testEmbeddingsGrabBag() CPPUNIT_ASSERT(bEmbeddings); // Grab Bag has all the expected elements } +void Chart2ExportTest::testAreaChartLoad() +{ +load ("/chart2/qa/extras/data/docx/", "testAreaChartLoad.docx"); +xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); +CPPUNIT_ASSERT(pXmlDoc); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:areaChart/c:ser/c:dLbls/c:showVal", "val", "1"); +assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:areaChart/c:ser/c:dLbls/c:dLbl", 0); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/testAreaChartLoad.docx b/chart2/qa/extras/data/docx/testAreaChartLoad.docx new file mode 100644 index 000..9383f75 Binary files /dev/null and b/chart2/qa/extras/data/docx/testAreaChartLoad.docx differ diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 8bbf222..a795aac 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2410,15 +2410,38 @@ void ChartExport::exportDataLabels( bool showCategoryName = false; bool showNumberInPercent = false; -sal_Int32 nElem; -for( nElem = 0; nElem < nSeriesLength; ++nElem) +sal_Int32 nElem = 0; + + +uno::Reference< beans::XPropertySet > xPropSet; +if(nSeriesLength != 0) { -uno::Reference< beans::XPropertySet > xPropSet; + try + { + xPropSet = SchXMLSeriesHelper::createOldAPIDataPointPropertySet( + xSeries, nElem, getModel() ); + } + catch( const uno::Exception & rEx ) + { +SAL_WARN("oox", "Exception caught during Export of data label: " << rEx.Message ); + } +} +namespace cssc2 = ::com::sun::star::chart2; +cssc2::DataPointLabel aTempLabel; +if( xPropSet.is() ) +{ +if (GetProperty( xPropSet, "Label")) + mAny >>= aTempLabel; + + + +for( nElem = 1; nElem < nSeriesLength; ++nElem) +{ try { xPropSet = SchXMLSeriesHelper::createOldAPIDataPointPropertySet( -xSeries, nElem, getModel() ); + xSeries, nElem, getModel() ); } catch( const uno::Exception & rEx ) { @@ -2454,39 +2477,45 @@ void ChartExport::exportDataLabels( case csscd::AVOID_OVERLAP: aPlacement = "bestFit"; break; } - if(aLabel.ShowLegendSymbol || aLabel.ShowNumber || aLabel.ShowCategoryName || aLabel.ShowNumberInPercent) - { + if (aLabel.ShowLegendSymbol) + showLegendSymbol = true; + if(aLabel.ShowNumber) + showNumber = true; + if(aLabel.ShowCategoryName) + showCategoryName = true; + if(aLabel.ShowNumberInPercent) + showNumberInPercent = true; + +