[Libreoffice-commits] .: svtools/inc sw/qa sw/source writerfilter/source
Miklos Vajna
vmiklos at kemper.freedesktop.org
Mon Mar 12 13:09:40 PDT 2012
svtools/inc/svtools/rtfkeywd.hxx | 1
sw/qa/extras/rtftok/data/n750757.rtf | 45 +++++++++++++++++++++++++
sw/qa/extras/rtftok/rtftok.cxx | 21 +++++++++++
sw/source/filter/ww8/rtfattributeoutput.cxx | 2 +
writerfilter/source/rtftok/rtfdocumentimpl.cxx | 6 +++
5 files changed, 75 insertions(+)
New commits:
commit f722299e133568fe75f7cf9ce0c103a1553474c4
Author: Miklos Vajna <vmiklos at suse.cz>
Date: Mon Mar 12 20:43:42 2012 +0100
implement RTF support of contextual spacing
Import, export and testcase.
diff --git a/svtools/inc/svtools/rtfkeywd.hxx b/svtools/inc/svtools/rtfkeywd.hxx
index dca17c9..67aa41e 100644
--- a/svtools/inc/svtools/rtfkeywd.hxx
+++ b/svtools/inc/svtools/rtfkeywd.hxx
@@ -130,6 +130,7 @@
#define OOO_STRING_SVTOOLS_RTF_COLUMN "\\column"
#define OOO_STRING_SVTOOLS_RTF_COLW "\\colw"
#define OOO_STRING_SVTOOLS_RTF_COMMENT "\\comment"
+#define OOO_STRING_SVTOOLS_RTF_CONTEXTUALSPACE "\\contextualspace"
#define OOO_STRING_SVTOOLS_RTF_CREATIM "\\creatim"
#define OOO_STRING_SVTOOLS_RTF_CTRL "\\ctrl"
#define OOO_STRING_SVTOOLS_RTF_DEFF "\\deff"
diff --git a/sw/qa/extras/rtftok/data/n750757.rtf b/sw/qa/extras/rtftok/data/n750757.rtf
new file mode 100644
index 0000000..04d78b6
--- /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 1174626..c11af26 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 87b4ebc..70a6a27 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)
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 82b1614..bde6da9 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2019,6 +2019,12 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
m_aStates.top().aDrawingObject.aPendingProperties.push_back(aPropertyValue);
}
break;
+ case RTF_CONTEXTUALSPACE:
+ {
+ RTFValue::Pointer_t pValue(new RTFValue(1));
+ m_aStates.top().aParagraphSprms->push_back(make_pair(NS_sprm::LN_PContextualSpacing, pValue));
+ }
+ break;
default:
SAL_INFO("writerfilter", OSL_THIS_FUNC << ": TODO handle flag '" << lcl_RtfToString(nKeyword) << "'");
aSkip.setParsed(false);
More information about the Libreoffice-commits
mailing list