sw/qa/extras/rtftok/data/fdo49501.rtf | 5 ++++ sw/qa/extras/rtftok/rtftok.cxx | 26 ++++++++++++++++++++++++ writerfilter/source/rtftok/rtfdocumentimpl.cxx | 27 ++++++++++++------------- 3 files changed, 44 insertions(+), 14 deletions(-)
New commits: commit d6acd86fe1d2924a378e3053f83d47084a8bb108 Author: Miklos Vajna <vmik...@suse.cz> Date: Wed May 9 11:30:13 2012 +0200 fdo#49501 RTF_MARGL/R/T/B should also set the current margin Change-Id: I I69b92d0cd07c9f08f14affb447b55b26b2556186 diff --git a/sw/qa/extras/rtftok/data/fdo49501.rtf b/sw/qa/extras/rtftok/data/fdo49501.rtf new file mode 100644 index 0000000..47bd691 --- /dev/null +++ b/sw/qa/extras/rtftok/data/fdo49501.rtf @@ -0,0 +1,5 @@ +{\rtf +\landscape \paperw15309 \paperh11907 \margl567 \margr567 \margt567 \margb567 +Department +\par +} diff --git a/sw/qa/extras/rtftok/rtftok.cxx b/sw/qa/extras/rtftok/rtftok.cxx index 605a20d..e6de843 100644 --- a/sw/qa/extras/rtftok/rtftok.cxx +++ b/sw/qa/extras/rtftok/rtftok.cxx @@ -95,6 +95,7 @@ public: void testFdo47764(); void testFdo38786(); void testN757651(); + void testFdo49501(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -127,6 +128,7 @@ public: CPPUNIT_TEST(testFdo47764); CPPUNIT_TEST(testFdo38786); CPPUNIT_TEST(testN757651); + CPPUNIT_TEST(testFdo49501); #endif CPPUNIT_TEST_SUITE_END(); @@ -701,6 +703,30 @@ void Test::testN757651() CPPUNIT_ASSERT_EQUAL(1, getPages()); } +void Test::testFdo49501() +{ + load("fdo49501.rtf"); + + uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XNameAccess> xStyles(xStyleFamiliesSupplier->getStyleFamilies(), uno::UNO_QUERY); + uno::Reference<container::XNameAccess> xPageStyles(xStyles->getByName("PageStyles"), uno::UNO_QUERY); + uno::Reference<beans::XPropertySet> xStyle(xPageStyles->getByName("Default"), uno::UNO_QUERY); + + sal_Bool bIsLandscape = sal_False; + xStyle->getPropertyValue("IsLandscape") >>= bIsLandscape; + CPPUNIT_ASSERT_EQUAL(sal_True, bIsLandscape); + sal_Int32 nExpected(TWIP_TO_MM100(567)); + sal_Int32 nValue = 0; + xStyle->getPropertyValue("LeftMargin") >>= nValue; + CPPUNIT_ASSERT_EQUAL(nExpected, nValue); + xStyle->getPropertyValue("RightMargin") >>= nValue; + CPPUNIT_ASSERT_EQUAL(nExpected, nValue); + xStyle->getPropertyValue("TopMargin") >>= nValue; + CPPUNIT_ASSERT_EQUAL(nExpected, nValue); + xStyle->getPropertyValue("BottomMargin") >>= nValue; + CPPUNIT_ASSERT_EQUAL(nExpected, nValue); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index b2f6c88..957174e 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2620,34 +2620,30 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) lcl_putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgSz, NS_ooxml::LN_CT_PageSz_w, pIntValue, true); break; - case RTF_MARGL: + case RTF_MARGL: // fall through: set the default + current value lcl_putNestedAttribute(m_aDefaultState.aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_left, pIntValue, true); - break; - case RTF_MARGR: - lcl_putNestedAttribute(m_aDefaultState.aSectionSprms, - NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_right, pIntValue, true); - break; - case RTF_MARGT: - lcl_putNestedAttribute(m_aDefaultState.aSectionSprms, - NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_top, pIntValue, true); - break; - case RTF_MARGB: - lcl_putNestedAttribute(m_aDefaultState.aSectionSprms, - NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_bottom, pIntValue, true); - break; case RTF_MARGLSXN: lcl_putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_left, pIntValue, true); break; + case RTF_MARGR: // fall through: set the default + current value + lcl_putNestedAttribute(m_aDefaultState.aSectionSprms, + NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_right, pIntValue, true); case RTF_MARGRSXN: lcl_putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_right, pIntValue, true); break; + case RTF_MARGT: // fall through: set the default + current value + lcl_putNestedAttribute(m_aDefaultState.aSectionSprms, + NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_top, pIntValue, true); case RTF_MARGTSXN: lcl_putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_top, pIntValue, true); break; + case RTF_MARGB: // fall through: set the default + current value + lcl_putNestedAttribute(m_aDefaultState.aSectionSprms, + NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_bottom, pIntValue, true); case RTF_MARGBSXN: lcl_putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgMar, NS_ooxml::LN_CT_PageMar_bottom, pIntValue, true); commit 46fee7c2b23e9f252e9f223950718430c0990e61 Author: Miklos Vajna <vmik...@suse.cz> Date: Wed May 9 11:24:55 2012 +0200 implement RTF_LANDSCAPE Change-Id: Icc7f0b06f8fe31f31df728920ecb96dc40849b4e diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 16ca2ec..b2f6c88 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2164,6 +2164,9 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) m_aStates.top().aTableSprms->push_back(make_pair(NS_rtf::LN_NFC, RTFValue::Pointer_t(new RTFValue(23)))); // bullets, same as \levelnfc23 } break; + case RTF_LANDSCAPE: + lcl_putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgSz, NS_ooxml::LN_CT_PageSz_orient, RTFValue::Pointer_t(new RTFValue(1))); + break; default: SAL_INFO("writerfilter", OSL_THIS_FUNC << ": TODO handle flag '" << lcl_RtfToString(nKeyword) << "'"); aSkip.setParsed(false); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits