From 60c17b2873506ed8b068b34840aecda0c1d9bd65 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 18 Mar 2013 12:40:46 +0100 Subject: fdo#61909 fix RTF import of default font without RTF_PLAIN Change-Id: Ia86548bddb7b87ec9653192c2e5989ce0dc50057 --- sw/qa/extras/rtfimport/data/fdo61909.rtf | 6 ++++++ sw/qa/extras/rtfimport/rtfimport.cxx | 8 ++++++++ writerfilter/source/rtftok/rtfdocumentimpl.cxx | 5 +++++ 3 files changed, 19 insertions(+) create mode 100644 sw/qa/extras/rtfimport/data/fdo61909.rtf diff --git a/sw/qa/extras/rtfimport/data/fdo61909.rtf b/sw/qa/extras/rtfimport/data/fdo61909.rtf new file mode 100644 index 000000000000..eeb77243ff46 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo61909.rtf @@ -0,0 +1,6 @@ +{\rtf1\deff0 +{\fonttbl +{\f000 Courier New;} +} +#include\par +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 819625f4f245..e72604f1b1c2 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -145,6 +145,7 @@ public: void testFdo59953(); void testFdo59638(); void testFdo60722(); + void testFdo61909(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -262,6 +263,7 @@ void Test::run() {"fdo59953.rtf", &Test::testFdo59953}, {"fdo59638.rtf", &Test::testFdo59638}, {"fdo60722.rtf", &Test::testFdo60722}, + {"fdo61909.rtf", &Test::testFdo61909}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -1166,6 +1168,12 @@ void Test::testFdo60722() CPPUNIT_ASSERT_EQUAL(sal_uInt32(0), getProperty(xShape, "LineColor")); } +void Test::testFdo61909() +{ + uno::Reference xTextRange = getRun(getParagraph(1), 1); + CPPUNIT_ASSERT_EQUAL(OUString("Courier New"), getProperty(xTextRange, "CharFontName")); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index eda06d317dcc..873090a2c4c4 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -394,6 +394,11 @@ void RTFDocumentImpl::checkFirstRun() if (!m_pSuperstream) Mapper().startSectionGroup(); Mapper().startParagraphGroup(); + + // set the requested default font + RTFValue::Pointer_t pFont = m_aDefaultState.aCharacterSprms.find(NS_sprm::LN_CRgFtc0); + if (pFont.get()) + dispatchValue(RTF_F, pFont->getInt()); m_bFirstRun = false; } } -- cgit v1.2.3