diff options
author | Tibor Nagy <nagy.tibor2@nisz.hu> | 2022-12-12 16:44:07 +0100 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2022-12-19 11:32:48 +0000 |
commit | c3f1ec60569727d8aba50b2f59882e13a8443880 (patch) | |
tree | 60eea43a235d7668510bf00cfc8e5d165757424b | |
parent | sw: prefix members of ContentControlListEntriesEnumWrapper, ... (diff) | |
download | core-c3f1ec60569727d8aba50b2f59882e13a8443880.tar.gz core-c3f1ec60569727d8aba50b2f59882e13a8443880.zip |
tdf#152434 PPTX import: fix lost shapes with connectors
Regression from commit eec48130271188cab63665acedbabf1ff5e850a2
"tdf#148926 tdf#151678 PPTX import: position of standard connector
- part1".
Change-Id: Ib9381403f7c0edf9a06e3d98965067a51b4797d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144000
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
-rw-r--r-- | oox/source/ppt/slidepersist.cxx | 12 | ||||
-rw-r--r-- | sd/qa/unit/data/pptx/tdf152434.pptx | bin | 0 -> 25819 bytes | |||
-rw-r--r-- | sd/qa/unit/import-tests.cxx | 13 |
3 files changed, 21 insertions, 4 deletions
diff --git a/oox/source/ppt/slidepersist.cxx b/oox/source/ppt/slidepersist.cxx index 9d2ad58b5be2..c875239aac46 100644 --- a/oox/source/ppt/slidepersist.cxx +++ b/oox/source/ppt/slidepersist.cxx @@ -504,10 +504,14 @@ void SlidePersist::createConnectorShapeConnection() } } } - ConnectorType aConnectorType; - xPropertySet->getPropertyValue("EdgeKind") >>= aConnectorType; - if (aConnectorType == ConnectorType_STANDARD) - lcl_SetEdgeLineValue(xConnector, pIt->second); + uno::Reference<beans::XPropertySetInfo> xPropInfo = xPropertySet->getPropertySetInfo(); + if (xPropInfo->hasPropertyByName("EdgeKind")) + { + ConnectorType aConnectorType; + xPropertySet->getPropertyValue("EdgeKind") >>= aConnectorType; + if (aConnectorType == ConnectorType_STANDARD) + lcl_SetEdgeLineValue(xConnector, pIt->second); + } } } maConnectorShapeId.clear(); diff --git a/sd/qa/unit/data/pptx/tdf152434.pptx b/sd/qa/unit/data/pptx/tdf152434.pptx Binary files differnew file mode 100644 index 000000000000..f0716a92fe1b --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf152434.pptx diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index eb125a46834f..abd21782bf68 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -83,6 +83,7 @@ public: } void testDocumentLayout(); + void testTdf152434(); void testConnectors(); void testTdf150719(); void testTdf149314(); @@ -157,6 +158,7 @@ public: CPPUNIT_TEST_SUITE(SdImportTest); CPPUNIT_TEST(testDocumentLayout); + CPPUNIT_TEST(testTdf152434); CPPUNIT_TEST(testConnectors); CPPUNIT_TEST(testTdf150719); CPPUNIT_TEST(testTdf149314); @@ -338,6 +340,17 @@ void SdImportTest::testDocumentLayout() } } +void SdImportTest::testTdf152434() +{ + createSdImpressDoc("pptx/tdf152434.pptx"); + + SdXImpressDocument* pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); + CPPUNIT_ASSERT(pXImpressDocument); + SdDrawDocument* pDoc = pXImpressDocument->GetDoc(); + const SdrPage* pPage = pDoc->GetPage(1); + CPPUNIT_ASSERT_EQUAL(size_t(1), pPage->GetObjCount()); +} + void SdImportTest::testConnectors() { createSdImpressDoc("pptx/connectors.pptx"); |