sw/qa/extras/rtfexport/data/fdo82006.rtf | 4 ++ sw/qa/extras/rtfexport/data/num-override-start.rtf | 29 +++++++++++++++++++++ sw/qa/extras/rtfexport/rtfexport.cxx | 15 ++++++++++ writerfilter/source/rtftok/rtfdocumentimpl.cxx | 10 ++++++- 4 files changed, 57 insertions(+), 1 deletion(-)
New commits: commit 85086306939b6bebb8cf549966942f2e5a244388 Author: Miklos Vajna <[email protected]> Date: Sat Nov 22 20:08:42 2014 +0100 fdo#82006 RTF filter: import \sbauto and \saauto Change-Id: Iabff543c8191fc86dceb9274ea1552f60d73dabd (cherry picked from commit bb77fd64f9219f1b8f990f5041d81cfddd021213) diff --git a/sw/qa/extras/rtfexport/data/fdo82006.rtf b/sw/qa/extras/rtfexport/data/fdo82006.rtf new file mode 100644 index 0000000..0f5ee43 --- /dev/null +++ b/sw/qa/extras/rtfexport/data/fdo82006.rtf @@ -0,0 +1,4 @@ +{\rtf1 +\pard\plain +\ql \sb100\sa100\sbauto1\saauto1 hello\par +} diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx index c4118c6..221618d 100644 --- a/sw/qa/extras/rtfexport/rtfexport.cxx +++ b/sw/qa/extras/rtfexport/rtfexport.cxx @@ -843,6 +843,14 @@ DECLARE_RTFEXPORT_TEST(testNumOverrideStart, "num-override-start.rtf") CPPUNIT_ASSERT_EQUAL(sal_Int16(1), comphelper::SequenceAsHashMap(xRules->getByIndex(0))["StartWith"].get<sal_Int16>()); CPPUNIT_ASSERT_EQUAL(sal_Int16(3), comphelper::SequenceAsHashMap(xRules->getByIndex(1))["StartWith"].get<sal_Int16>()); } + +DECLARE_RTFEXPORT_TEST(testFdo82006, "fdo82006.rtf") +{ + // These were 176 (100 twips), as \sbauto and \sbbefore were ignored. + CPPUNIT_ASSERT_EQUAL(sal_Int32(convertTwipToMm100(280)), getProperty<sal_Int32>(getParagraph(0), "ParaTopMargin")); + CPPUNIT_ASSERT_EQUAL(sal_Int32(convertTwipToMm100(280)), getProperty<sal_Int32>(getParagraph(0), "ParaBottomMargin")); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 84b689f..5e69009 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -4881,6 +4881,14 @@ int RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam NS_ooxml::LN_trackchange, NS_ooxml::LN_token, pValue); } break; + case RTF_SBAUTO: + lcl_putNestedAttribute(m_aStates.top().aParagraphSprms, + NS_ooxml::LN_CT_PPrBase_spacing, NS_ooxml::LN_CT_Spacing_beforeAutospacing, pBoolValue, OVERWRITE_YES); + break; + case RTF_SAAUTO: + lcl_putNestedAttribute(m_aStates.top().aParagraphSprms, + NS_ooxml::LN_CT_PPrBase_spacing, NS_ooxml::LN_CT_Spacing_afterAutospacing, pBoolValue, OVERWRITE_YES); + break; default: { SAL_INFO("writerfilter", "TODO handle toggle '" << lcl_RtfToString(nKeyword) << "'"); commit d1c8f2a1228e187a4c353c1f414667be0248dfd8 Author: Miklos Vajna <[email protected]> Date: Sat Nov 22 12:34:06 2014 +0100 RTF import: fix handling of multiple \lfolevel control words Change-Id: I242853d491c2ef83f192486fa6fe5a3407700047 (cherry picked from commit 74249cb6f4f52b7c10ebaa92f943920f6f94aaf4) diff --git a/sw/qa/extras/rtfexport/data/num-override-start.rtf b/sw/qa/extras/rtfexport/data/num-override-start.rtf new file mode 100644 index 0000000..aa1a2d4 --- /dev/null +++ b/sw/qa/extras/rtfexport/data/num-override-start.rtf @@ -0,0 +1,29 @@ +{\rtf1 +{\*\listtable +{\list\listtemplateid-1627985480 +{\listlevel\levelnfc0 +\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 +{\leveltext\'02\'00.;} +{\levelnumbers\'01;} +\rtlch\fcs1 \af0 \ltrch\fcs0 \s15\fi-360\li720\lin720 } +{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\levellegal\levelspace0\levelindent0 +{\leveltext\'03\'00.\'01;} +{\levelnumbers\'01\'03;} +\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li360\lin360 } +{\listname ;} +\listid94861222} +} +{\*\listoverridetable +{\listoverride\listid94861222\listoverridecount2 +{\lfolevel\listoverridestartat\levelstartat1} +{\lfolevel\listoverridestartat\levelstartat3} +\ls1} +} +\pard\plain \ltrpar\s16\ql \fi-360\li360\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\ilvl1\adjustright\rin0\lin360\itap0\pararsid16599941 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 +\b\fs28\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 +{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang2057\langfe3082\langnp2057\insrsid16599941 This should be 1.3} +{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 +\fs20\lang2057\langfe3082\langnp2057\insrsid14181417\charrsid16599941 +\par } +} diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx index 12fbfd1..c4118c6 100644 --- a/sw/qa/extras/rtfexport/rtfexport.cxx +++ b/sw/qa/extras/rtfexport/rtfexport.cxx @@ -836,6 +836,13 @@ DECLARE_RTFEXPORT_TEST(testTableRtl, "table-rtl.rtf") CPPUNIT_ASSERT_EQUAL(text::WritingMode2::RL_TB, getProperty<sal_Int16>(xTable, "WritingMode")); } +DECLARE_RTFEXPORT_TEST(testNumOverrideStart, "num-override-start.rtf") +{ + // The numbering on the second level was "3.1", not "1.3". + uno::Reference<container::XIndexAccess> xRules = getProperty< uno::Reference<container::XIndexAccess> >(getStyles("NumberingStyles")->getByName("WWNum1"), "NumberingRules"); + CPPUNIT_ASSERT_EQUAL(sal_Int16(1), comphelper::SequenceAsHashMap(xRules->getByIndex(0))["StartWith"].get<sal_Int16>()); + CPPUNIT_ASSERT_EQUAL(sal_Int16(3), comphelper::SequenceAsHashMap(xRules->getByIndex(1))["StartWith"].get<sal_Int16>()); +} CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index cfca395..84b689f 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -5902,7 +5902,7 @@ int RTFDocumentImpl::popState() aState.aTableAttributes.set(NS_ooxml::LN_CT_NumLvl_ilvl, pInnerValue); RTFValue::Pointer_t pValue(new RTFValue(aState.aTableAttributes, aState.aTableSprms)); - m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Num_lvlOverride, pValue); + m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Num_lvlOverride, pValue, OVERWRITE_NO_APPEND); } break; // list override table _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
