From 382bab9412b87f82da82276332496eb28b28d4f3 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 20 Oct 2014 14:43:42 +0200 Subject: DOCX import: fix wrt. inherited styles We used to ignore this element with a "false" logical attribute, but that causes a problem when an inherited style wants to explicitly disable this element from a parent style. Change-Id: I2fc4c5b2002987d44679d863ea3f19114b9ab7a4 --- sw/qa/extras/ooxmlexport/data/page-break-before.docx | Bin 0 -> 12943 bytes sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 9 ++++++++- writerfilter/source/dmapper/DomainMapper.cxx | 5 +---- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 sw/qa/extras/ooxmlexport/data/page-break-before.docx diff --git a/sw/qa/extras/ooxmlexport/data/page-break-before.docx b/sw/qa/extras/ooxmlexport/data/page-break-before.docx new file mode 100644 index 000000000000..99d8c3a5d4eb Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/page-break-before.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index b35f97b4bc8a..3d7628720eab 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -11,9 +11,10 @@ #include #include +#include +#include #include #include -#include #include @@ -493,6 +494,12 @@ DECLARE_OOXMLEXPORT_TEST(testParagraphMark, "paragraph-mark.docx") CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty(getRun(getParagraph(1), 1), "CharStyleName")); } +DECLARE_OOXMLEXPORT_TEST(testPageBreakBefore, "page-break-before.docx") +{ + // This was style::BreakType_PAGE_BEFORE, i.e. page break wasn't ignored, as it should have been. + CPPUNIT_ASSERT_EQUAL(style::BreakType_NONE, getProperty(getParagraph(2), "BreakType")); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 45fb28f41468..12763b9bd91f 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1135,10 +1135,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext ) rContext->Insert(PROP_PARA_KEEP_TOGETHER, uno::makeAny( nIntValue ? true : false) ); break; case NS_ooxml::LN_CT_PPrBase_pageBreakBefore: - if ( nIntValue == 1 ) - { - rContext->Insert(PROP_BREAK_TYPE, uno::makeAny( com::sun::star::style::BreakType_PAGE_BEFORE ) ); - } + rContext->Insert(PROP_BREAK_TYPE, uno::makeAny(nIntValue ? style::BreakType_PAGE_BEFORE : style::BreakType_NONE)); break; case NS_ooxml::LN_CT_NumPr_ilvl: if (nIntValue < 0 || 10 <= nIntValue) // Writer can't do everything -- cgit