diff options
-rw-r--r-- | oox/source/drawingml/textparagraphproperties.cxx | 3 | ||||
-rw-r--r-- | sd/qa/unit/data/pptx/smartart-missing-bullet.pptx | bin | 0 -> 30139 bytes | |||
-rw-r--r-- | sd/qa/unit/import-tests-smartart.cxx | 26 |
3 files changed, 29 insertions, 0 deletions
diff --git a/oox/source/drawingml/textparagraphproperties.cxx b/oox/source/drawingml/textparagraphproperties.cxx index 02129a6f674f..1af30b047267 100644 --- a/oox/source/drawingml/textparagraphproperties.cxx +++ b/oox/source/drawingml/textparagraphproperties.cxx @@ -396,7 +396,10 @@ void TextParagraphProperties::pushToPropSet( const ::oox::core::XmlFilterBase* p sal_Int32 nNumberingType = NumberingType::NUMBER_NONE; if ( maBulletList.mnNumberingType.hasValue() ) + { maBulletList.mnNumberingType >>= nNumberingType; + aPropSet.setProperty< sal_Int16 >( PROP_NumberingLevel, getLevel() ); + } else if ( pMasterBuList && pMasterBuList->mnNumberingType.hasValue() ) pMasterBuList->mnNumberingType >>= nNumberingType; if ( nNumberingType == NumberingType::NUMBER_NONE ) diff --git a/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx b/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx Binary files differnew file mode 100644 index 000000000000..2917875a005a --- /dev/null +++ b/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx diff --git a/sd/qa/unit/import-tests-smartart.cxx b/sd/qa/unit/import-tests-smartart.cxx index a55e340e3ec4..2d47381c4e67 100644 --- a/sd/qa/unit/import-tests-smartart.cxx +++ b/sd/qa/unit/import-tests-smartart.cxx @@ -101,6 +101,7 @@ public: void testFontSize(); void testVerticalBlockList(); void testBulletList(); + void testMissingBullet(); void testRecursion(); void testDataFollow(); void testOrgChart2(); @@ -144,6 +145,7 @@ public: CPPUNIT_TEST(testFontSize); CPPUNIT_TEST(testVerticalBlockList); CPPUNIT_TEST(testBulletList); + CPPUNIT_TEST(testMissingBullet); CPPUNIT_TEST(testRecursion); CPPUNIT_TEST(testDataFollow); CPPUNIT_TEST(testOrgChart2); @@ -1275,6 +1277,30 @@ void SdImportTestSmartArt::testVerticalBlockList() xDocShRef->DoClose(); } +void SdImportTestSmartArt::testMissingBullet() +{ + sd::DrawDocShellRef xDocShRef = loadURL( + m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx"), + PPTX); + uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY); + uno::Reference<drawing::XShapes> xGroup1(xGroup->getByIndex(2), uno::UNO_QUERY); + uno::Reference<drawing::XShapes> xGroup2(xGroup1->getByIndex(0), uno::UNO_QUERY); + uno::Reference<text::XText> xText(xGroup2->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT(xText.is()); + + uno::Reference<container::XEnumerationAccess> xParasAccess(xText, uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xParas = xParasAccess->createEnumeration(); + xParas->nextElement();// skip parent + + uno::Reference<beans::XPropertySet> xPara1(xParas->nextElement(), uno::UNO_QUERY); + CPPUNIT_ASSERT(xPara1.is()); + + sal_Int16 nNumberingLevel = -1; + xPara1->getPropertyValue("NumberingLevel")>>= nNumberingLevel; + + CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nNumberingLevel); +} + void SdImportTestSmartArt::testBulletList() { sd::DrawDocShellRef xDocShRef = loadURL( |