sw/qa/extras/indexing/IndexingExportTest.cxx      |   20 ++++++++++++++++++++
 sw/qa/extras/indexing/data/IndexingExport_OLE.odt |binary
 sw/source/filter/indexing/IndexingExport.cxx      |   17 ++++++++++++++++-
 3 files changed, 36 insertions(+), 1 deletion(-)

New commits:
commit 37cd5bd4fdf2317709882c933844c4cc67e4cee4
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Tue Jun 15 14:12:26 2021 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Sat Jun 19 11:13:32 2021 +0200

    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 <qui...@gmail.com>

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
new file mode 100644
index 000000000000..3da225368bd4
Binary files /dev/null and b/sw/qa/extras/indexing/data/IndexingExport_OLE.odt 
differ
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();
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to