diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2021-01-18 20:51:26 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2021-05-31 10:07:20 +0200 |
commit | 10843ca47ea495d39f32fa30b83d4da9153ee053 (patch) | |
tree | d86f1522a7ef25840ab2f662e40c358e817e5086 /writerfilter/qa | |
parent | e61bdbf41cf925147eee7f92142089f8adf0a237 (diff) |
tdf#135153 DOCX import: avoid line-of-text relation with to-para anchoring
Regression from commit 8f1a1092d47947847e1d888b0284e8364c663d1f
(tdf#97371 DOCX import: fix text covered by shape, 2016-01-28), the
problem was that once the import decides that a shape should have no
to-char anchoring, it should not leave behind vertical relation types
which make no sense for to-para anchoring.
text::RelOrientation::TEXT_LINE is specific to to-char anchoring, so
reset the relation back to the default text::RelOrientation::FRAME.
This means we'll no longer show "from top" on the UI while the doc model
contains "from bottom": and those have to be in sync, otherwise pressing
"down" while the shape is selected will actually move it up.
(cherry picked from commit 3303a4c5f21874453e634d84408c50e7a0055a4d)
Conflicts:
writerfilter/source/dmapper/GraphicImport.cxx
Change-Id: I660a7bb30133ea866cc4ba1620ae15fea243ef8f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116230
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'writerfilter/qa')
-rw-r--r-- | writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx | 21 | ||||
-rw-r--r-- | writerfilter/qa/cppunittests/dmapper/data/textbox-textline.docx | bin | 0 -> 12934 bytes |
2 files changed, 21 insertions, 0 deletions
diff --git a/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx b/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx index 37e462012c66..bc0271fa13a4 100644 --- a/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx +++ b/writerfilter/qa/cppunittests/dmapper/GraphicImport.cxx @@ -171,6 +171,27 @@ CPPUNIT_TEST_FIXTURE(Test, testWrapPolyCrop) // were wrapping around the image, not only 2 as Word does it. CPPUNIT_ASSERT_EQUAL(2368., aPolygon.getB2DPoint(0).getY()); } + +CPPUNIT_TEST_FIXTURE(Test, testTextboxTextline) +{ + // Load a document with a shape with a textbox. + // The shape's vertical relation is <wp:positionV relativeFrom="line">. + OUString aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "textbox-textline.docx"; + getComponent() = loadFromDesktop(aURL); + uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(getComponent(), uno::UNO_QUERY); + uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage(); + uno::Reference<beans::XPropertySet> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY); + sal_Int16 nActual{}; + CPPUNIT_ASSERT(xShape->getPropertyValue("VertOrientRelation") >>= nActual); + + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 0 (text::RelOrientation::FRAME) + // - Actual : 9 (text::RelOrientation::TEXT_LINE) + // i.e. the relation had a value which doesn't make sense for to-para anchoring (only for + // to-char anchoring). + sal_Int16 nExpected = text::RelOrientation::FRAME; + CPPUNIT_ASSERT_EQUAL(nExpected, nActual); +} } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/qa/cppunittests/dmapper/data/textbox-textline.docx b/writerfilter/qa/cppunittests/dmapper/data/textbox-textline.docx Binary files differnew file mode 100644 index 000000000000..493604d778e9 --- /dev/null +++ b/writerfilter/qa/cppunittests/dmapper/data/textbox-textline.docx |