diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2019-10-28 21:52:18 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2019-10-29 08:41:47 +0100 |
commit | 5d1709a7c4184eb31cfc4c2d3acadff3a4a68189 (patch) | |
tree | 398ec3ac3bb7aa8b006fb88e3999b24f3bd79ef5 | |
parent | 4e7d4eac01f180b19aea98e1f40b4cffe3fd2aac (diff) |
tdf#104017 DOC export: be less aggressive with merging page styles
Regression from commit 7146d8bcd96f844dc0239a5b29a6b36c3cb5a2cc
(MSWordExportBase::OutputSectionBreaks: avoid fake section breaks,
2014-07-28), the problem was that we merged two separate page styles
just because they were similar. This resulted in merging two independent
tables into a single one.
Fix the problem by merging the first and follow page style only in case
the first page style is RES_POOLPAGE_FIRST, this resolves the current
problem and keeps the original problem fixed, too.
(Long-term, a better fix would be to not split the page styles in
writerfilter/, similar to how the DOC import doesn't do that anymore:
and then the merging can be avoided unconditionally.)
Change-Id: I357f1337cb0abc7fa1d88aa44ff87b4b464af81c
Reviewed-on: https://gerrit.libreoffice.org/81630
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r-- | sw/qa/extras/ww8export/data/tdf104017.doc | bin | 0 -> 11776 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8export/ww8export3.cxx | 9 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8atr.cxx | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/sw/qa/extras/ww8export/data/tdf104017.doc b/sw/qa/extras/ww8export/data/tdf104017.doc Binary files differnew file mode 100644 index 000000000000..878cbe25f863 --- /dev/null +++ b/sw/qa/extras/ww8export/data/tdf104017.doc diff --git a/sw/qa/extras/ww8export/ww8export3.cxx b/sw/qa/extras/ww8export/ww8export3.cxx index 2e92346ea04b..cb4caa351b98 100644 --- a/sw/qa/extras/ww8export/ww8export3.cxx +++ b/sw/qa/extras/ww8export/ww8export3.cxx @@ -361,6 +361,15 @@ DECLARE_WW8EXPORT_TEST(testPresetDash, "tdf127166_prstDash_Word97.doc") } } +DECLARE_WW8EXPORT_TEST(testTdf104017, "tdf104017.doc") +{ + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 2 + // - Actual : 1 + // i.e. the tables on the two pages were merged together to a single one on export. + CPPUNIT_ASSERT_EQUAL(2, getPages()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 8672ec47de69..040153b65bdd 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -475,7 +475,7 @@ void MSWordExportBase::OutputSectionBreaks( const SfxItemSet *pSet, const SwNode } } } - else if (!sw::util::IsPlausableSingleWordSection(m_pCurrentPageDesc->GetFirstMaster(), pPageDesc->GetMaster())) + else if (m_pCurrentPageDesc->GetPoolFormatId() != RES_POOLPAGE_FIRST || !sw::util::IsPlausableSingleWordSection(m_pCurrentPageDesc->GetFirstMaster(), pPageDesc->GetMaster())) { bBreakSet = true; bNewPageDesc = true; |