sw/qa/extras/rtftok/data/fdo43965.rtf | 16 +++++++++++ sw/qa/extras/rtftok/rtftok.cxx | 35 +++++++++++++++++++++++++ writerfilter/source/dmapper/BorderHandler.cxx | 2 - writerfilter/source/rtftok/rtfdocumentimpl.cxx | 13 ++------- 4 files changed, 55 insertions(+), 11 deletions(-)
New commits: commit dd875e4f6a7b6c6bea7121f701821d7c7ba7f6d0 Author: Miklos Vajna <vmik...@suse.cz> Date: Fri Mar 16 14:23:36 2012 +0100 testcase for fdo#43965 diff --git a/sw/qa/extras/rtftok/data/fdo43965.rtf b/sw/qa/extras/rtftok/data/fdo43965.rtf new file mode 100644 index 0000000..968fe77 --- /dev/null +++ b/sw/qa/extras/rtftok/data/fdo43965.rtf @@ -0,0 +1,16 @@ +{\rtf1\ansi\ansicpg1252 +{\fonttbl \f0\froman\fcharset0 Times;\f1\fswiss\fcharset0 Helvetica;} +{\info{\subject Test file for LibreOffice 3.5}} +\margl1440\margr1440\margt1440\margb1440\deftab720\viewkind1\viewscale100 +\pard\pardeftab720\ql\qnatural +\f0\fs36 +{ +{\fs22\up8 2} +}\ +{\box\brdrs Box +}\ +Page feeds:\ + This is on the first page.\ +\page + This is on the second page.\ +} diff --git a/sw/qa/extras/rtftok/rtftok.cxx b/sw/qa/extras/rtftok/rtftok.cxx index 95fc51b..c376779 100644 --- a/sw/qa/extras/rtftok/rtftok.cxx +++ b/sw/qa/extras/rtftok/rtftok.cxx @@ -33,9 +33,11 @@ #include <com/sun/star/table/BorderLineStyle.hpp> #include <com/sun/star/text/RelOrientation.hpp> #include <com/sun/star/text/SizeType.hpp> +#include <com/sun/star/text/XPageCursor.hpp> #include <com/sun/star/text/XTextDocument.hpp> #include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp> #include <com/sun/star/text/XTextFramesSupplier.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> #include <rtl/oustringostreaminserter.hxx> #include <test/bootstrapfixture.hxx> @@ -64,6 +66,7 @@ public: void testFdo46662(); void testN750757(); void testFdo45563(); + void testFdo43965(); CPPUNIT_TEST_SUITE(RtfModelTest); #if !defined(MACOSX) && !defined(WNT) @@ -76,6 +79,7 @@ public: CPPUNIT_TEST(testFdo46662); CPPUNIT_TEST(testN750757); CPPUNIT_TEST(testFdo45563); + CPPUNIT_TEST(testFdo43965); #endif CPPUNIT_TEST_SUITE_END(); @@ -339,6 +343,37 @@ void RtfModelTest::testFdo45563() CPPUNIT_ASSERT_EQUAL(4, i); } +void RtfModelTest::testFdo43965() +{ + load(OUString(RTL_CONSTASCII_USTRINGPARAM("fdo43965.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(); + + // First paragraph: the parameter of \up was ignored + uno::Reference<container::XEnumerationAccess> xRangeEnumAccess(xParaEnum->nextElement(), uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xRangeEnum = xRangeEnumAccess->createEnumeration(); + uno::Reference<beans::XPropertySet> xPropertySet(xRangeEnum->nextElement(), uno::UNO_QUERY); + sal_Int32 nValue; + xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharEscapement"))) >>= nValue; + CPPUNIT_ASSERT_EQUAL(sal_Int32(58), nValue); + xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharEscapementHeight"))) >>= nValue; + CPPUNIT_ASSERT_EQUAL(sal_Int32(100), nValue); + + // Second paragraph: Word vs Writer border default problem + xPropertySet.set(xParaEnum->nextElement(), uno::UNO_QUERY); + table::BorderLine2 aBorder; + xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TopBorder"))) >>= aBorder; + CPPUNIT_ASSERT_EQUAL(sal_uInt32(26), aBorder.LineWidth); + + // Finally, make sure that we have two pages + uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY); + uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY); + uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY); + xCursor->jumpToLastPage(); + CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xCursor->getPage()); +} + CPPUNIT_TEST_SUITE_REGISTRATION(RtfModelTest); CPPUNIT_PLUGIN_IMPLEMENT(); commit dac6b7938173d0793810ee5731de51c440c1af5e Author: Miklos Vajna <vmik...@suse.cz> Date: Fri Mar 16 13:49:00 2012 +0100 fdo#43965 fix RTF import of \up and \dn with custom parameters diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 3e0c9b9..f8da21d 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2252,18 +2252,11 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) m_aStates.top().aCharacterSprms->push_back(make_pair(0x6877, pValue)); } break; - case RTF_UP: // TODO handle when point size is not shrinking - { - OUString aValue(RTL_CONSTASCII_USTRINGPARAM("superscript")); - RTFValue::Pointer_t pValue(new RTFValue(aValue)); - m_aStates.top().aCharacterSprms->push_back(make_pair(NS_ooxml::LN_EG_RPrBase_vertAlign, pValue)); - } - break; + case RTF_UP: case RTF_DN: { - OUString aValue(RTL_CONSTASCII_USTRINGPARAM("subscript")); - RTFValue::Pointer_t pValue(new RTFValue(aValue)); - m_aStates.top().aCharacterSprms->push_back(make_pair(NS_ooxml::LN_EG_RPrBase_vertAlign, pValue)); + RTFValue::Pointer_t pValue(new RTFValue(nParam * (nKeyword == RTF_UP ? 1 : -1))); + m_aStates.top().aCharacterSprms->push_back(make_pair(NS_sprm::LN_CHpsPos, pValue)); } break; case RTF_HORZVERT: commit bb34b73730a3109bdcae0a03137c1faffab610d5 Author: Miklos Vajna <vmik...@suse.cz> Date: Fri Mar 16 13:36:16 2012 +0100 fdo#43965 dmapper: fix line width default Writer's default is 0, but Word's default is 26 (15 in 1/8 pt) diff --git a/writerfilter/source/dmapper/BorderHandler.cxx b/writerfilter/source/dmapper/BorderHandler.cxx index 90e8456..f4858f5 100644 --- a/writerfilter/source/dmapper/BorderHandler.cxx +++ b/writerfilter/source/dmapper/BorderHandler.cxx @@ -44,7 +44,7 @@ using namespace ::com::sun::star; BorderHandler::BorderHandler( bool bOOXML ) : LoggedProperties(dmapper_logger, "BorderHandler"), m_nCurrentBorderPosition( BORDER_TOP ), -m_nLineWidth(0), +m_nLineWidth(26), // Word default m_nLineType(0), m_nLineColor(0), m_nLineDistance(0), _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits