From 782adba4d436c65cdf85d48f28486321873b15ed Mon Sep 17 00:00:00 2001 From: Adam Co Date: Wed, 12 Jun 2013 15:06:42 +0300 Subject: [PATCH] fdo#64238: fix for missing footer bug Signed-off-by: Miklos Vajna Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport.cxx Change-Id: I328547c41bfc1a23f7e6233db57fbfa415e22cb3 Signed-off-by: Miklos Vajna --- sw/Module_sw.mk | 1 + sw/qa/extras/ooxmlexport/data/fdo64238_a.docx | Bin 0 -> 16401 bytes sw/qa/extras/ooxmlexport/data/fdo64238_b.docx | Bin 0 -> 14359 bytes sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 44 +++++++++ .../source/dmapper/DomainMapper_Impl.cxx | 89 ++++++++++++------ .../source/dmapper/DomainMapper_Impl.hxx | 1 + 6 files changed, 104 insertions(+), 31 deletions(-) create mode 100644 sw/qa/extras/ooxmlexport/data/fdo64238_a.docx create mode 100644 sw/qa/extras/ooxmlexport/data/fdo64238_b.docx diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk index d8ca65ecc151..202c67c4fc35 100644 --- a/sw/Module_sw.mk +++ b/sw/Module_sw.mk @@ -48,6 +48,7 @@ $(eval $(call gb_Module_add_check_targets,sw,\ $(eval $(call gb_Module_add_slowcheck_targets,sw,\ CppunitTest_sw_htmlexport \ CppunitTest_sw_macros_test \ + CppunitTest_sw_ooxmlexport \ CppunitTest_sw_ooxmlimport \ CppunitTest_sw_ww8export \ CppunitTest_sw_ww8import \ diff --git a/sw/qa/extras/ooxmlexport/data/fdo64238_a.docx b/sw/qa/extras/ooxmlexport/data/fdo64238_a.docx new file mode 100644 index 0000000000000000000000000000000000000000..7c43feaf75a73d4dd8d318c002a2bb1da6410947 GIT binary patch literal 16401 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 V1kf^mn~p#Lv;vJwg!Q+p{|8mqfRz9M literal 0 HcmV?d00001 diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index 1cfc0aec25f9..3dbb0a45febf 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -81,6 +81,8 @@ public: void testFDO63053(); void testWatermark(); void testFdo43093(); + void testFdo64238_a(); + void testFdo64238_b(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -136,6 +138,8 @@ void Test::run() {"fdo63053.docx" , &Test::testFDO63053}, {"watermark.docx", &Test::testWatermark}, {"fdo43093.docx", &Test::testFdo43093}, + {"fdo64238_a.docx", &Test::testFdo64238_a}, + {"fdo64238_b.docx", &Test::testFdo64238_b}, }; // Don't test the first import of these, for some reason those tests fail const char* aBlacklist[] = { @@ -808,6 +812,46 @@ void Test::testFdo43093() CPPUNIT_ASSERT_EQUAL(text::WritingMode2::LR_TB, nLRDir); } +void Test::testFdo64238_a() +{ + // The problem was that when 'Show Only Odd Footer' was marked in Word and the Even footer *was filled* + // then LO would still import the Even footer and concatenate it to to the odd footer. + // This case specifically is for : + // 'Blank Odd Footer' with 'Non-Blank Even Footer' when 'Show Only Odd Footer' is marked in Word + // In this case the imported footer in LO was supposed to be blank, but instead was the 'even' footer + uno::Reference xFooterText = getProperty< uno::Reference >(getStyles("PageStyles")->getByName(DEFAULT_STYLE), "FooterText"); + uno::Reference< text::XTextRange > xFooterParagraph = getParagraphOfText( 1, xFooterText ); + uno::Reference xRunEnumAccess(xFooterParagraph, uno::UNO_QUERY); + uno::Reference xRunEnum = xRunEnumAccess->createEnumeration(); + int numOfRuns = 0; + while (xRunEnum->hasMoreElements()) + { + uno::Reference xRun(xRunEnum->nextElement(), uno::UNO_QUERY); + numOfRuns++; + } + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), numOfRuns); +} + +void Test::testFdo64238_b() +{ + // The problem was that when 'Show Only Odd Footer' was marked in Word and the Even footer *was filled* + // then LO would still import the Even footer and concatenate it to to the odd footer. + // This case specifically is for : + // 'Non-Blank Odd Footer' with 'Non-Blank Even Footer' when 'Show Only Odd Footer' is marked in Word + // In this case the imported footer in LO was supposed to be just the odd footer, but instead was the 'odd' and 'even' footers concatenated + uno::Reference xFooterText = getProperty< uno::Reference >(getStyles("PageStyles")->getByName(DEFAULT_STYLE), "FooterText"); + uno::Reference< text::XTextRange > xFooterParagraph = getParagraphOfText( 1, xFooterText ); + uno::Reference xRunEnumAccess(xFooterParagraph, uno::UNO_QUERY); + uno::Reference xRunEnum = xRunEnumAccess->createEnumeration(); + int numOfRuns = 0; + while (xRunEnum->hasMoreElements()) + { + uno::Reference xRun(xRunEnum->nextElement(), uno::UNO_QUERY); + numOfRuns++; + } + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), numOfRuns); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index c822739168d7..0ffbc9307ef3 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -175,6 +175,7 @@ DomainMapper_Impl::DomainMapper_Impl( m_bInStyleSheetImport( false ), m_bInAnyTableImport( false ), m_bInHeaderFooterImport( false ), + m_bDiscardHeaderFooter( false ), m_bLineNumberingSet( false ), m_bIsInFootnoteProperties( true ), m_bIsCustomFtnMark( false ), @@ -1174,10 +1175,15 @@ util::DateTime lcl_DateStringToDateTime( const OUString& rDateTime ) return aDateTime; } + void DomainMapper_Impl::appendTextPortion( const OUString& rString, PropertyMapPtr pPropertyMap ) { + if (m_bDiscardHeaderFooter) + return; + if (m_aTextAppendStack.empty()) return; + if( pPropertyMap == m_pTopContext && !deferredCharacterProperties.empty()) processDeferredCharacterProperties(); uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; @@ -1370,24 +1376,31 @@ void DomainMapper_Impl::PushPageHeader(SectionPropertyMap::PageType eType) return; try { - PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); - //switch on header use - xPageStyle->setPropertyValue( - rPropNameSupplier.GetName(PROP_HEADER_IS_ON), - uno::makeAny(sal_True) ); - // if a left header is available then header are not shared bool bLeft = eType == SectionPropertyMap::PAGE_LEFT; + if ((!bLeft && !m_pSettingsTable->GetEvenAndOddHeaders()) || (m_pSettingsTable->GetEvenAndOddHeaders())) + { + PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); - // If the 'Different Even & Odd Pages' flag is turned on - do not ignore it - // Even if the 'Even' header is blank - the flag should be imported (so it would look in LO like in Word) - if( m_pSettingsTable->GetEvenAndOddHeaders()) - xPageStyle->setPropertyValue(rPropNameSupplier.GetName(PROP_HEADER_IS_SHARED), uno::makeAny( false )); + //switch on header use + xPageStyle->setPropertyValue( + rPropNameSupplier.GetName(PROP_HEADER_IS_ON), + uno::makeAny(sal_True) ); - //set the interface - uno::Reference< text::XText > xHeaderText; - xPageStyle->getPropertyValue(rPropNameSupplier.GetName( bLeft ? PROP_HEADER_TEXT_LEFT : PROP_HEADER_TEXT) ) >>= xHeaderText; - m_aTextAppendStack.push( TextAppendContext(uno::Reference< text::XTextAppend >( xHeaderText, uno::UNO_QUERY_THROW), - m_bIsNewDoc ? uno::Reference() : m_xBodyText->createTextCursorByRange(xHeaderText->getStart()))); + // If the 'Different Even & Odd Pages' flag is turned on - do not ignore it + // Even if the 'Even' header is blank - the flag should be imported (so it would look in LO like in Word) + if( m_pSettingsTable->GetEvenAndOddHeaders() ) + xPageStyle->setPropertyValue(rPropNameSupplier.GetName(PROP_HEADER_IS_SHARED), uno::makeAny( false )); + + //set the interface + uno::Reference< text::XText > xHeaderText; + xPageStyle->getPropertyValue(rPropNameSupplier.GetName( bLeft ? PROP_HEADER_TEXT_LEFT : PROP_HEADER_TEXT) ) >>= xHeaderText; + m_aTextAppendStack.push( TextAppendContext(uno::Reference< text::XTextAppend >( xHeaderText, uno::UNO_QUERY_THROW), + m_bIsNewDoc ? uno::Reference() : m_xBodyText->createTextCursorByRange(xHeaderText->getStart()))); + } + else + { + m_bDiscardHeaderFooter = true; + } } catch( const uno::Exception& ) { @@ -1415,23 +1428,31 @@ void DomainMapper_Impl::PushPageFooter(SectionPropertyMap::PageType eType) return; try { - PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); - //switch on footer use - xPageStyle->setPropertyValue( - rPropNameSupplier.GetName(PROP_FOOTER_IS_ON), - uno::makeAny(sal_True) ); - // if a left header is available then footer is not shared bool bLeft = eType == SectionPropertyMap::PAGE_LEFT; + if ((!bLeft && !m_pSettingsTable->GetEvenAndOddHeaders()) || (m_pSettingsTable->GetEvenAndOddHeaders())) + { + PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); - // If the 'Different Even & Odd Pages' flag is turned on - do not ignore it - // Even if the 'Even' footer is blank - the flag should be imported (so it would look in LO like in Word) - if( m_pSettingsTable->GetEvenAndOddHeaders()) - xPageStyle->setPropertyValue(rPropNameSupplier.GetName(PROP_FOOTER_IS_SHARED), uno::makeAny( false )); - //set the interface - uno::Reference< text::XText > xFooterText; - xPageStyle->getPropertyValue(rPropNameSupplier.GetName( bLeft ? PROP_FOOTER_TEXT_LEFT : PROP_FOOTER_TEXT) ) >>= xFooterText; - m_aTextAppendStack.push(TextAppendContext(uno::Reference< text::XTextAppend >( xFooterText, uno::UNO_QUERY_THROW ), - m_bIsNewDoc ? uno::Reference() : m_xBodyText->createTextCursorByRange(xFooterText->getStart()))); + //switch on footer use + xPageStyle->setPropertyValue( + rPropNameSupplier.GetName(PROP_FOOTER_IS_ON), + uno::makeAny(sal_True) ); + + // If the 'Different Even & Odd Pages' flag is turned on - do not ignore it + // Even if the 'Even' footer is blank - the flag should be imported (so it would look in LO like in Word) + if( m_pSettingsTable->GetEvenAndOddHeaders() ) + xPageStyle->setPropertyValue(rPropNameSupplier.GetName(PROP_FOOTER_IS_SHARED), uno::makeAny( false )); + + //set the interface + uno::Reference< text::XText > xFooterText; + xPageStyle->getPropertyValue(rPropNameSupplier.GetName( bLeft ? PROP_FOOTER_TEXT_LEFT : PROP_FOOTER_TEXT) ) >>= xFooterText; + m_aTextAppendStack.push(TextAppendContext(uno::Reference< text::XTextAppend >( xFooterText, uno::UNO_QUERY_THROW ), + m_bIsNewDoc ? uno::Reference() : m_xBodyText->createTextCursorByRange(xFooterText->getStart()))); + } + else + { + m_bDiscardHeaderFooter = true; + } } catch( const uno::Exception& ) { @@ -1446,7 +1467,13 @@ void DomainMapper_Impl::PopPageHeaderFooter() //this has to be removed RemoveLastParagraph( ); if (!m_aTextAppendStack.empty()) - m_aTextAppendStack.pop(); + { + if (!m_bDiscardHeaderFooter) + { + m_aTextAppendStack.pop(); + } + m_bDiscardHeaderFooter = false; + } m_bInHeaderFooterImport = false; } diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index f88f49441f01..374cdf5cb0c6 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -344,6 +344,7 @@ private: bool m_bInStyleSheetImport; //in import of fonts, styles, lists or lfos bool m_bInAnyTableImport; //in import of fonts, styles, lists or lfos bool m_bInHeaderFooterImport; + bool m_bDiscardHeaderFooter; bool m_bLineNumberingSet; bool m_bIsInFootnoteProperties;