[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - 2 commits - sw/qa writerfilter/source

Miklos Vajna vmiklos at collabora.co.uk
Sat Nov 22 12:11:07 PST 2014


 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 <vmiklos at collabora.co.uk>
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 <vmiklos at collabora.co.uk>
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


More information about the Libreoffice-commits mailing list