diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-04-10 11:54:03 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-04-10 13:17:58 +0200 |
commit | 2819ee71da631116662401f14f8a0fb78c2a7f3a (patch) | |
tree | 1f221ee487d5d9c55d80fc33011efc18f74384ad /sw/qa/extras | |
parent | 0ab3275d8d3d31e50249ec253167c9d394892b04 (diff) |
tdf#90230 SwDoc::AppendDoc: take care of marks when inserting page break
SwDoc::AppendDoc() inserts nodes from an other document, and before
doing that, it inserts a page break at the end of the document. In case
there are marks at the end of the last paragraph, the insertion of the
page break moves them to the next page. This is a rare situation, but
happens e.g. when the source document is an empty one: then MM puts a
mark at the first paragraph of each inserted MM part, and then the first
paragraph == the last paragraph, so the mark of the only paragraph in
the document gets moved to the next page.
This is a problem on its own, but is detected by the SwIndexReg dtor
when that empty paragraph gets deleted later in SwNodes::Delete() called
by SwDoc::AppendDoc(), resulting in an assertion failure.
Triggered by commit a305a2c91420652db450b7f8edd140e1d69f42cf (use
bookmarks to mark mailmerge parts in a mailmerge document (fdo#80823),
2014-10-20), these not adjusted bookmarks were not detected before.
Change-Id: I89775b477a2fd3182b2bc87144aed2bfe7912aff
Diffstat (limited to 'sw/qa/extras')
-rw-r--r-- | sw/qa/extras/mailmerge/data/empty.odt | bin | 0 -> 7241 bytes | |||
-rw-r--r-- | sw/qa/extras/mailmerge/mailmerge.cxx | 6 |
2 files changed, 6 insertions, 0 deletions
diff --git a/sw/qa/extras/mailmerge/data/empty.odt b/sw/qa/extras/mailmerge/data/empty.odt Binary files differnew file mode 100644 index 000000000000..311cb06e575e --- /dev/null +++ b/sw/qa/extras/mailmerge/data/empty.odt diff --git a/sw/qa/extras/mailmerge/mailmerge.cxx b/sw/qa/extras/mailmerge/mailmerge.cxx index 319bf93584cf..2c9e164bea24 100644 --- a/sw/qa/extras/mailmerge/mailmerge.cxx +++ b/sw/qa/extras/mailmerge/mailmerge.cxx @@ -406,5 +406,11 @@ DECLARE_SHELL_MAILMERGE_TEST(testTdf89214, "tdf89214.odt", "10-testing-addresses CPPUNIT_ASSERT(!getProperty<OUString>(xParagraph, "ListId").isEmpty()); } +DECLARE_SHELL_MAILMERGE_TEST(testTdf90230, "empty.odt", "10-testing-addresses.ods", "testing-addresses") +{ + // MM of an empty document caused an assertion in the SwIndexReg dtor. + executeMailMerge(); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |