diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2021-06-15 14:12:26 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2021-08-31 07:11:44 +0200 |
commit | c400d1dcacb315e22abb5ca784bb9c63ae1302ca (patch) | |
tree | bb55b8842fb7a03c7b0c68512f552632ae8ebf5a /sw | |
parent | 9d2b575d46de9be4997c9c2a574555c401c4f0c3 (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>
(cherry picked from commit 37cd5bd4fdf2317709882c933844c4cc67e4cee4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121101
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'sw')
-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(); |