summaryrefslogtreecommitdiff
path: root/sw/qa/extras
diff options
context:
space:
mode:
authorAttila Bakos <bakos.attilakaroly@nisz.hu>2020-09-17 11:32:44 +0200
committerLászló Németh <nemeth@numbertext.org>2020-09-24 18:28:06 +0200
commit7351a5028b18591306dfe18b34f6c751e565766e (patch)
tree756fbe827199d3c1075d41143ffb5e46981f8bf8 /sw/qa/extras
parent646a69757b928aeaf6e0d0d41c4b30c02803a3a3 (diff)
tdf#136613 sw: fix picture position in tables
in the case of option FollowTextFlow. Regression from commit b6850bbe95418ecfde404be1696548f18d200c9b (tdf#106153 sw compatibility: fix textboxes exceeding the page). Note: now images have the same position than before the previous commit, but this is still not perfect, because option FollowTextFlow doesn't allow them to be placed outside the cell where they are anchored to. The proper fix might be extending FollowTextFlow. Change-Id: I877e4660cd4a2fd8f1e97c845755940459f1d014 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102910 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw/qa/extras')
-rw-r--r--sw/qa/extras/layout/data/tdf136613.docxbin0 -> 25262 bytes
-rw-r--r--sw/qa/extras/layout/layout.cxx31
2 files changed, 31 insertions, 0 deletions
diff --git a/sw/qa/extras/layout/data/tdf136613.docx b/sw/qa/extras/layout/data/tdf136613.docx
new file mode 100644
index 000000000000..f885564521b1
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf136613.docx
Binary files differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 4a348bdd7f09..ce0a43f8c213 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -478,6 +478,37 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf134272)
assertXPath(pXmlDoc, "/root/page[1]/header/txt[2]/infos/bounds", "bottom", "2819");
}
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf136613)
+{
+ SwDoc* pDoc = createDoc("tdf136613.docx");
+ CPPUNIT_ASSERT(pDoc);
+
+ //get the flys and the root frame
+ const auto vFlyFormats = pDoc->GetFlyFrameFormats(FLYCNTTYPE_ALL, true);
+ const auto vFrames = pDoc->GetAllLayouts();
+
+ CPPUNIT_ASSERT(!vFrames.empty());
+ CPPUNIT_ASSERT(!vFlyFormats.empty());
+
+ //get the page frame from the root
+ SwFrame* pPageFrame = vFrames[0]->Lower();
+ CPPUNIT_ASSERT(pPageFrame);
+
+ //get the rectangle of the page
+ const SwRect& rPageRect = pPageFrame->getFrameArea();
+
+ //check the flys and...
+ for (auto pFlyFormat : vFlyFormats)
+ {
+ //...the rectangle of the fly location...
+ const SwRect& rRect = pFlyFormat->FindLayoutRect();
+ CPPUNIT_ASSERT(!rRect.IsEmpty());
+
+ //...if it is on the page. This will fail if not.
+ CPPUNIT_ASSERT_MESSAGE("The pictures are outside the page!", rPageRect.IsInside(rRect));
+ }
+}
+
CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf88496)
{
SwDoc* pDoc = createDoc("tdf88496.docx");