diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2021-06-15 14:12:26 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2021-06-19 11:13:32 +0200 |
commit | 37cd5bd4fdf2317709882c933844c4cc67e4cee4 (patch) | |
tree | 089df4e6eef57bb60dc7e91f1035e43fe36e11ee | |
parent | f81115740bac985cad3cd15348f75c2c78b8843a (diff) |
indexing: indexing OLE objects for the IndexingExport
Adds handling of OLE objects to the IndexingExport with exporting
the alt text and the name to the indexing xml.
Change-Id: Ie357f55195cda864ee12d6b120babd106eff6179
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117358
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r-- | sw/qa/extras/indexing/IndexingExportTest.cxx | 20 | ||||
-rw-r--r-- | sw/qa/extras/indexing/data/IndexingExport_OLE.odt | bin | 0 -> 14358 bytes | |||
-rw-r--r-- | sw/source/filter/indexing/IndexingExport.cxx | 17 |
3 files changed, 36 insertions, 1 deletions
diff --git a/sw/qa/extras/indexing/IndexingExportTest.cxx b/sw/qa/extras/indexing/IndexingExportTest.cxx index f76850c1a803..807f84ab6934 100644 --- a/sw/qa/extras/indexing/IndexingExportTest.cxx +++ b/sw/qa/extras/indexing/IndexingExportTest.cxx @@ -28,10 +28,12 @@ private: public: void testIndexingExport_Paragraphs(); void testIndexingExport_Images(); + void testIndexingExport_OLE(); CPPUNIT_TEST_SUITE(IndexingExportTest); CPPUNIT_TEST(testIndexingExport_Paragraphs); CPPUNIT_TEST(testIndexingExport_Images); + CPPUNIT_TEST(testIndexingExport_OLE); CPPUNIT_TEST_SUITE_END(); }; @@ -100,6 +102,24 @@ void IndexingExportTest::testIndexingExport_Images() assertXPath(pXmlDoc, "/indexing/graphic[2]", "name", "Image_InCaption"); } +void IndexingExportTest::testIndexingExport_OLE() +{ + SwDoc* pDoc = createDoc("IndexingExport_OLE.odt"); + CPPUNIT_ASSERT(pDoc); + + SvMemoryStream aMemoryStream; + sw::IndexingExport aIndexingExport(aMemoryStream, pDoc); + aIndexingExport.runExport(); + aMemoryStream.Seek(0); + + xmlDocUniquePtr pXmlDoc = parseXmlStream(&aMemoryStream); + CPPUNIT_ASSERT(pXmlDoc); + + assertXPath(pXmlDoc, "/indexing"); + assertXPath(pXmlDoc, "/indexing/ole[1]", "name", "Object - Chart"); + assertXPath(pXmlDoc, "/indexing/ole[1]", "alt", "Alt Text"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(IndexingExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/qa/extras/indexing/data/IndexingExport_OLE.odt b/sw/qa/extras/indexing/data/IndexingExport_OLE.odt Binary files differnew file mode 100644 index 000000000000..3da225368bd4 --- /dev/null +++ b/sw/qa/extras/indexing/data/IndexingExport_OLE.odt diff --git a/sw/source/filter/indexing/IndexingExport.cxx b/sw/source/filter/indexing/IndexingExport.cxx index 8d6e96fd262c..601d67ed1b21 100644 --- a/sw/source/filter/indexing/IndexingExport.cxx +++ b/sw/source/filter/indexing/IndexingExport.cxx @@ -12,6 +12,8 @@ #include <node.hxx> #include <ndtxt.hxx> +#include <ndole.hxx> +#include <ndnotxt.hxx> #include <ndgrf.hxx> namespace sw @@ -31,7 +33,11 @@ public: void handleNode(SwNode* pNode) override { - if (pNode->IsGrfNode()) + if (pNode->IsOLENode()) + { + handleOLENode(pNode->GetOLENode()); + } + else if (pNode->IsGrfNode()) { handleGraphicNode(pNode->GetGrfNode()); } @@ -41,6 +47,15 @@ public: } } + void handleOLENode(SwOLENode* pOleNode) + { + auto pFrameFormat = pOleNode->GetFlyFormat(); + m_rXmlWriter.startElement("ole"); + m_rXmlWriter.attribute("alt", pOleNode->GetTitle()); + m_rXmlWriter.attribute("name", pFrameFormat->GetName()); + m_rXmlWriter.endElement(); + } + void handleGraphicNode(SwGrfNode* pGraphicNode) { auto pFrameFormat = pGraphicNode->GetFlyFormat(); |