summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Nagy <nagy.tibor2@nisz.hu>2022-12-12 16:44:07 +0100
committerLászló Németh <nemeth@numbertext.org>2022-12-19 11:32:48 +0000
commitc3f1ec60569727d8aba50b2f59882e13a8443880 (patch)
tree60eea43a235d7668510bf00cfc8e5d165757424b
parentsw: prefix members of ContentControlListEntriesEnumWrapper, ... (diff)
downloadcore-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.cxx12
-rw-r--r--sd/qa/unit/data/pptx/tdf152434.pptxbin0 -> 25819 bytes
-rw-r--r--sd/qa/unit/import-tests.cxx13
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
new file mode 100644
index 000000000000..f0716a92fe1b
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf152434.pptx
Binary files differ
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");