diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-03-12 20:43:42 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-03-12 21:09:45 +0100 |
commit | f722299e133568fe75f7cf9ce0c103a1553474c4 (patch) | |
tree | 471111f0154bd7a4085dfc65de0b28b45c23f346 /sw | |
parent | 85f580ac0c0ed73ee24cf88be7866015c903b2eb (diff) |
implement RTF support of contextual spacing
Import, export and testcase.
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/rtftok/data/n750757.rtf | 45 | ||||
-rw-r--r-- | sw/qa/extras/rtftok/rtftok.cxx | 21 | ||||
-rw-r--r-- | sw/source/filter/ww8/rtfattributeoutput.cxx | 2 |
3 files changed, 68 insertions, 0 deletions
diff --git a/sw/qa/extras/rtftok/data/n750757.rtf b/sw/qa/extras/rtftok/data/n750757.rtf new file mode 100644 index 000000000000..04d78b615a62 --- /dev/null +++ b/sw/qa/extras/rtftok/data/n750757.rtf @@ -0,0 +1,45 @@ +{\rtf1 +{\stylesheet +{\s15\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1038\langfe1033\cgrid\langnp1038\langfenp1033 +\sbasedon0 \snext15 \sqformat \spriority34 \styrsid13858768 List Paragraph;} +} +{\*\listtable +{\list\listtemplateid188802200\listhybrid +{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 +{\leveltext\leveltemplateid68026383 +\'02\'00.;} +{\levelnumbers\'01;} +\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li720\lin720 } +{\listname ;} +\listid983924569} +} +{\*\listoverridetable +{\listoverride\listid983924569\listoverridecount0\ls4} +} +\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4409714 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1038\langfe1033\cgrid\langnp1038\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4409714 before +\par +{\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\langnp1033\insrsid4409714\charrsid13858768 \hich\af31506\dbch\af31506\loch\f31506 1.\tab} +} +\pard\plain \ltrpar +\s15\ql \fi-360\li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0\pararsid13858768\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1038\langfe1033\cgrid\langnp1038\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid4409714\charrsid13858768 num} +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4409714 1 +\par +{\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\langnp1033\insrsid4409714\charrsid13858768 \hich\af31506\dbch\af31506\loch\f31506 2.\tab} +} +{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid4409714\charrsid13858768 num} +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4409714 2 +\par +{\listtext\pard\plain\ltrpar \s15 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid420015 \hich\af31506\dbch\af31506\loch\f31506 3.\tab} +} +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid420015 num 3 +\par } +\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4409714 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1038\langfe1033\cgrid\langnp1038\langfenp1033 +{ +\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4409714 after +\par } +} diff --git a/sw/qa/extras/rtftok/rtftok.cxx b/sw/qa/extras/rtftok/rtftok.cxx index 11746266decf..c11af2613b56 100644 --- a/sw/qa/extras/rtftok/rtftok.cxx +++ b/sw/qa/extras/rtftok/rtftok.cxx @@ -62,6 +62,7 @@ public: void testFdo42465(); void testFdo45187(); void testFdo46662(); + void testN750757(); CPPUNIT_TEST_SUITE(RtfModelTest); #if !defined(MACOSX) && !defined(WNT) @@ -72,6 +73,7 @@ public: CPPUNIT_TEST(testFdo42465); CPPUNIT_TEST(testFdo45187); CPPUNIT_TEST(testFdo46662); + CPPUNIT_TEST(testN750757); #endif CPPUNIT_TEST_SUITE_END(); @@ -301,6 +303,25 @@ void RtfModelTest::testFdo46662() } } +void RtfModelTest::testN750757() +{ + load(OUString(RTL_CONSTASCII_USTRINGPARAM("n750757.rtf"))); + uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration(); + + uno::Reference<beans::XPropertySet> xPropertySet(xParaEnum->nextElement(), uno::UNO_QUERY); + sal_Bool bValue; + uno::Any aValue = xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaContextMargin"))); + aValue >>= bValue; + CPPUNIT_ASSERT_EQUAL(sal_Bool(false), bValue); + + xPropertySet.set(xParaEnum->nextElement(), uno::UNO_QUERY); + aValue = xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaContextMargin"))); + aValue >>= bValue; + CPPUNIT_ASSERT_EQUAL(sal_Bool(true), bValue); +} + CPPUNIT_TEST_SUITE_REGISTRATION(RtfModelTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx index 87b4ebcf3048..70a6a27204a0 100644 --- a/sw/source/filter/ww8/rtfattributeoutput.cxx +++ b/sw/source/filter/ww8/rtfattributeoutput.cxx @@ -2713,6 +2713,8 @@ void RtfAttributeOutput::FormatULSpace( const SvxULSpaceItem& rULSpace ) m_aStyles.append( (sal_Int32) rULSpace.GetUpper() ); m_aStyles.append(OOO_STRING_SVTOOLS_RTF_SA); m_aStyles.append( (sal_Int32) rULSpace.GetLower() ); + if (rULSpace.GetContext()) + m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CONTEXTUALSPACE); } } else if (rULSpace.GetUpper() == rULSpace.GetLower() && m_rExport.bRTFFlySyntax) |