sw/qa/extras/rtfimport/data/fdo48442.rtf | 10 ++++++++++ sw/qa/extras/rtfimport/rtfimport.cxx | 11 +++++++++++ writerfilter/source/rtftok/rtfdocumentimpl.cxx | 10 ++++++---- 3 files changed, 27 insertions(+), 4 deletions(-)
New commits: commit 7b7bee4ed5722ce59ffd3394a0330d71d69d66b3 Author: Miklos Vajna <[email protected]> Date: Tue Nov 6 10:53:10 2012 +0100 fdo#48442 fix default hori/vert frame anchor during RTF import We used to send nothing when we got nothing, but this is not correct: \pvmrg and \phmrg is the default in RTF, but not in Writer. Change-Id: I9f69e282e68f0828c8b5ba98657cad1dd0715eb3 diff --git a/sw/qa/extras/rtfimport/data/fdo48442.rtf b/sw/qa/extras/rtfimport/data/fdo48442.rtf new file mode 100644 index 0000000..5b1a728 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo48442.rtf @@ -0,0 +1,10 @@ +{\rtf1\adeflang1025\ansi\ansicpg1251\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1049\deflangfe1049\themelang1049\themelangfe0\themelangcs0 +\pard \ltrpar\qc \li0\ri0\sb40\sl-180\slmult0\nowidctlpar\phmrg\posx8900\posy11660\absh280\absw1460\wrapdefault\faauto\rin0\lin0\itap0 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid3501281 +} +{\rtlch\fcs1 \ab\af0\afs18 \ltrch\fcs0 \b\f0\fs18\insrsid3501281 +\hich\af0\dbch\af31505\loch\f0 02.04.2012} +{\rtlch\fcs1 \af1\afs24 \ltrch\fcs0 \f1\fs24\insrsid3501281 +\par } +\pard\par +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index b0e3ab3..5d2c183 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -123,6 +123,7 @@ public: void testDppolyline(); void testFdo56512(); void testFdo52989(); + void testFdo48442(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -197,6 +198,7 @@ void Test::run() {"dppolyline.rtf", &Test::testDppolyline}, {"fdo56512.rtf", &Test::testFdo56512}, {"fdo52989.rtf", &Test::testFdo52989}, + {"fdo48442.rtf", &Test::testFdo48442}, }; for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) { @@ -906,6 +908,15 @@ void Test::testFdo52989() CPPUNIT_ASSERT_EQUAL(sal_Int32(423), xShape->getSize().Width); } +void Test::testFdo48442() +{ + // The problem was that \pvmrg is the default in RTF, but not in Writer. + uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY); + uno::Reference<drawing::XShape> xShape(xDraws->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(text::RelOrientation::PAGE_PRINT_AREA, getProperty<sal_Int16>(xShape, "VertOrientRelation")); // was FRAME +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 4393aa0..fd00feb 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -4347,12 +4347,14 @@ RTFSprms RTFFrame::getSprms() pValue.reset(new RTFValue(nVertPadding)); break; case NS_ooxml::LN_CT_FramePr_hAnchor: - if ( nHoriAnchor != 0 ) - pValue.reset(new RTFValue(nHoriAnchor)); + if ( nHoriAnchor == 0 ) + nHoriAnchor = NS_ooxml::LN_Value_wordprocessingml_ST_HAnchor_margin; + pValue.reset(new RTFValue(nHoriAnchor)); break; case NS_ooxml::LN_CT_FramePr_vAnchor: - if ( nVertAnchor != 0 ) - pValue.reset(new RTFValue(nVertAnchor)); + if ( nVertAnchor == 0 ) + nVertAnchor = NS_ooxml::LN_Value_wordprocessingml_ST_VAnchor_margin; + pValue.reset(new RTFValue(nVertAnchor)); break; case NS_ooxml::LN_CT_FramePr_xAlign: pValue.reset(new RTFValue(nHoriAlign)); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
