[Libreoffice-commits] core.git: Branch 'libreoffice-7-1' - chart2/qa oox/source
Balazs Varga (via logerrit)
logerrit at kemper.freedesktop.org
Mon Nov 30 11:34:28 UTC 2020
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 48ad658a7aacf849e773aa5d3400540d81f988f2
Author: Balazs Varga <balazs.varga991 at gmail.com>
AuthorDate: Thu Nov 26 17:44:24 2020 +0100
Commit: Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Mon Nov 30 12:33:56 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 <varga.balazs3 at nisz.hu>
Tested-by: Balazs Varga <varga.balazs3 at nisz.hu>
(cherry picked from commit f1a5bb0b79c212a0459b1a17dd15f1159e663dbd)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106820
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>
diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index 67f0d31197d2..19c2ebdda7a9 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();
@@ -2762,6 +2764,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<drawing::XDrawPageSupplier> xDrawPageSupplier(xChartDoc, UNO_QUERY_THROW);
+ Reference<drawing::XDrawPage> xDrawPage(xDrawPageSupplier->getDrawPage(), UNO_SET_THROW);
+ Reference<drawing::XShape> 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 000000000000..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& )
{
More information about the Libreoffice-commits
mailing list