From bd3ed061de068a03a7c75f093c9a9bd7b6f3ba57 Mon Sep 17 00:00:00 2001 From: Matus Uzak Date: Wed, 4 May 2016 19:09:00 +0200 Subject: tdf#49561: PPT import: Avoid to override formatting from StyleTextPropAtom Change-Id: Id874cb369b08eb7f8226413c6541fe6cd18eceaa Reviewed-on: https://gerrit.libreoffice.org/24662 Tested-by: Jenkins Reviewed-by: Thorsten Behrens --- sd/qa/unit/data/ppt/tdf49561.ppt | Bin 0 -> 14336 bytes sd/qa/unit/import-tests.cxx | 28 ++++++++++++++++++++++++++++ sd/source/filter/ppt/pptin.cxx | 3 ++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 sd/qa/unit/data/ppt/tdf49561.ppt diff --git a/sd/qa/unit/data/ppt/tdf49561.ppt b/sd/qa/unit/data/ppt/tdf49561.ppt new file mode 100644 index 000000000000..c80bf1252fed Binary files /dev/null and b/sd/qa/unit/data/ppt/tdf49561.ppt differ diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index e95cfecd1082..93dca4cff29a 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -121,6 +121,7 @@ public: void testTdf93868(); void testTdf95932(); void testTdf99030(); + void testTdf49561(); CPPUNIT_TEST_SUITE(SdImportTest); @@ -170,6 +171,7 @@ public: CPPUNIT_TEST(testTdf93868); CPPUNIT_TEST(testTdf95932); CPPUNIT_TEST(testTdf99030); + CPPUNIT_TEST(testTdf49561); CPPUNIT_TEST_SUITE_END(); }; @@ -1378,6 +1380,32 @@ void SdImportTest::testTdf99030() xDocShRef->DoClose(); } +void SdImportTest::testTdf49561() +{ + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf49561.ppt"), PPT); + + uno::Reference< drawing::XMasterPagesSupplier > xDoc( + xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW ); + uno::Reference< drawing::XDrawPage > xPage( + xDoc->getMasterPages()->getByIndex( 0 ), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT_EQUAL( sal_Int32(5), xPage->getCount() ); + + uno::Reference< beans::XPropertySet > xShape( getShape( 3, xPage ) ); + uno::Reference xParagraph( getParagraphFromShape( 0, xShape ) ); + uno::Reference xRun( getRunFromParagraph (0, xParagraph ) ); + uno::Reference< beans::XPropertySet > xPropSet(xRun , uno::UNO_QUERY_THROW ); + + float fCharHeight = 0; + CPPUNIT_ASSERT(xPropSet->getPropertyValue("CharHeight") >>= fCharHeight); + CPPUNIT_ASSERT_EQUAL(12.f, fCharHeight); + + OUString aCharFontName; + CPPUNIT_ASSERT(xPropSet->getPropertyValue("CharFontName") >>= aCharFontName); + CPPUNIT_ASSERT_EQUAL(OUString("Stencil"), aCharFontName); + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index 2d770248c026..8eac912e254c 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -2287,7 +2287,9 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj break; default: break; } + pText = static_cast(SdrPowerPointImport::ApplyTextObj( pTextObj, pText, pPageCapsule, pSheet, ppStyleSheetAry )); + if ( pPlaceHolder && pPlaceHolder->nPlaceholderId != PptPlaceholder::NONE ) { if ( eAktPageKind == PPT_MASTERPAGE ) @@ -2330,7 +2332,6 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj rItemSet.Put( pText->GetMergedItemSet() ); } } - pText->NbcSetStyleSheet( pSheet2, false ); } SfxItemSet aTempAttr( mpDoc->GetPool() ); -- cgit v1.2.3