desktop/qa/desktop_lib/test_desktop_lib.cxx | 2 - sw/qa/extras/indexing/IndexingExportTest.cxx | 34 +++++++++++++--------- sw/qa/extras/indexing/SearchResultLocatorTest.cxx | 6 +-- sw/source/core/inc/SearchResultLocator.hxx | 2 - sw/source/core/model/SearchResultLocator.cxx | 25 +++++++++++----- sw/source/filter/indexing/IndexingExport.cxx | 14 ++++----- 6 files changed, 51 insertions(+), 32 deletions(-)
New commits: commit b0a393288cf33f31bb1e21f31a3992e46b8e51eb Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Tue Sep 7 15:40:42 2021 +0900 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Fri Sep 10 13:29:33 2021 +0200 indexing: rename "type" for prargraph an object nodes They are conflicting, so rename the one for paragraphs to "node_type and the one for objects to "object_type". This needs adusting all the tests. Also change the node_type from numerical value (correcponding to a enum) to string based - "writer" or "commom" values. Change-Id: I0465cd4c2c6989e436d5a675db20c87066d19208 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121743 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> (cherry picked from commit 83da70de985e1f9f7193676bef8dc71226803bb0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121816 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx index 6e6393a08f26..f19615e37fb8 100644 --- a/desktop/qa/desktop_lib/test_desktop_lib.cxx +++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx @@ -3108,7 +3108,7 @@ void DesktopLOKTest::testRenderSearchResult() unsigned char* pBuffer = nullptr; OString aPayload = "<indexing>" - "<paragraph type=\"1\" index=\"19\">ABC</paragraph>" + "<paragraph node_type=\"writer\" index=\"19\">ABC</paragraph>" "</indexing>"; int nWidth = 0; diff --git a/sw/qa/extras/indexing/IndexingExportTest.cxx b/sw/qa/extras/indexing/IndexingExportTest.cxx index 9d40d887f30d..c08cdcd282c9 100644 --- a/sw/qa/extras/indexing/IndexingExportTest.cxx +++ b/sw/qa/extras/indexing/IndexingExportTest.cxx @@ -74,7 +74,7 @@ void IndexingExportTest::testIndexingExport_Paragraphs() assertXPath(pXmlDoc, "/indexing"); assertXPathContent(pXmlDoc, "/indexing/paragraph[1]", "Title"); - assertXPath(pXmlDoc, "/indexing/paragraph[1]", "type", "1"); + assertXPath(pXmlDoc, "/indexing/paragraph[1]", "node_type", "writer"); assertXPathContent(pXmlDoc, "/indexing/paragraph[2]", "Heading 1"); assertXPathContent(pXmlDoc, "/indexing/paragraph[3]", "Heading 2"); assertXPathContent(pXmlDoc, "/indexing/paragraph[4]", "Paragraph 1"); @@ -91,6 +91,7 @@ void IndexingExportTest::testIndexingExport_Paragraphs() assertXPathContent(pXmlDoc, "/indexing/paragraph[15]", "Center"); assertXPathContent(pXmlDoc, "/indexing/paragraph[16]", "Right"); assertXPathContent(pXmlDoc, "/indexing/paragraph[17]", "Bold Italic Underline Strikeout"); + assertXPath(pXmlDoc, "/indexing/paragraph[17]", "node_type", "writer"); } void IndexingExportTest::testIndexingExport_Images() @@ -109,10 +110,10 @@ void IndexingExportTest::testIndexingExport_Images() assertXPath(pXmlDoc, "/indexing"); assertXPath(pXmlDoc, "/indexing/object[1]", "alt", "Image_NonCaption - Alternative text"); assertXPath(pXmlDoc, "/indexing/object[1]", "name", "Image_NonCaption"); - assertXPath(pXmlDoc, "/indexing/object[1]", "type", "graphic"); + assertXPath(pXmlDoc, "/indexing/object[1]", "object_type", "graphic"); assertXPath(pXmlDoc, "/indexing/object[2]", "alt", "Image_InCaption - Alternative text"); assertXPath(pXmlDoc, "/indexing/object[2]", "name", "Image_InCaption"); - assertXPath(pXmlDoc, "/indexing/object[2]", "type", "graphic"); + assertXPath(pXmlDoc, "/indexing/object[2]", "object_type", "graphic"); } void IndexingExportTest::testIndexingExport_OLE() @@ -131,7 +132,7 @@ void IndexingExportTest::testIndexingExport_OLE() assertXPath(pXmlDoc, "/indexing"); assertXPath(pXmlDoc, "/indexing/object[1]", "name", "Object - Chart"); assertXPath(pXmlDoc, "/indexing/object[1]", "alt", "Alt Text"); - assertXPath(pXmlDoc, "/indexing/object[1]", "type", "ole"); + assertXPath(pXmlDoc, "/indexing/object[1]", "object_type", "ole"); } void IndexingExportTest::testIndexingExport_Shapes() @@ -149,21 +150,28 @@ void IndexingExportTest::testIndexingExport_Shapes() assertXPath(pXmlDoc, "/indexing"); assertXPathContent(pXmlDoc, "/indexing/paragraph[1]", "Drawing : Just a Diamond"); + assertXPath(pXmlDoc, "/indexing/paragraph[1]", "node_type", "writer"); assertXPath(pXmlDoc, "/indexing/object[1]", "name", "Circle"); - assertXPath(pXmlDoc, "/indexing/object[1]", "type", "shape"); + assertXPath(pXmlDoc, "/indexing/object[1]", "object_type", "shape"); assertXPathContent(pXmlDoc, "/indexing/paragraph[2]", "This is a circle"); + assertXPath(pXmlDoc, "/indexing/paragraph[2]", "node_type", "common"); assertXPathContent(pXmlDoc, "/indexing/paragraph[3]", "This is a second paragraph"); + assertXPath(pXmlDoc, "/indexing/paragraph[3]", "node_type", "common"); assertXPath(pXmlDoc, "/indexing/object[2]", "name", "Diamond"); - assertXPath(pXmlDoc, "/indexing/object[2]", "type", "shape"); + assertXPath(pXmlDoc, "/indexing/object[2]", "object_type", "shape"); assertXPathContent(pXmlDoc, "/indexing/paragraph[4]", "This is a diamond"); + assertXPath(pXmlDoc, "/indexing/paragraph[4]", "node_type", "common"); assertXPath(pXmlDoc, "/indexing/object[3]", "name", "Text Frame 1"); - assertXPath(pXmlDoc, "/indexing/object[3]", "type", "shape"); + assertXPath(pXmlDoc, "/indexing/object[3]", "object_type", "shape"); assertXPathContent(pXmlDoc, "/indexing/paragraph[5]", "This is a TextBox - Para1"); + assertXPath(pXmlDoc, "/indexing/paragraph[5]", "node_type", "common"); assertXPathContent(pXmlDoc, "/indexing/paragraph[6]", "Para2"); + assertXPath(pXmlDoc, "/indexing/paragraph[6]", "node_type", "common"); assertXPathContent(pXmlDoc, "/indexing/paragraph[7]", "Para3"); + assertXPath(pXmlDoc, "/indexing/paragraph[7]", "node_type", "common"); } void IndexingExportTest::testIndexingExport_Tables() @@ -182,7 +190,7 @@ void IndexingExportTest::testIndexingExport_Tables() assertXPath(pXmlDoc, "/indexing"); assertXPath(pXmlDoc, "/indexing/object[1]", "name", "Table1"); - assertXPath(pXmlDoc, "/indexing/object[1]", "type", "table"); + assertXPath(pXmlDoc, "/indexing/object[1]", "object_type", "table"); assertXPath(pXmlDoc, "/indexing/object[1]", "index", "9"); // Search paragraph with parent = 9 assertXPathContent(pXmlDoc, "/indexing/paragraph[@parent=9][1]", "A"); @@ -191,7 +199,7 @@ void IndexingExportTest::testIndexingExport_Tables() assertXPathContent(pXmlDoc, "/indexing/paragraph[@parent=9][4]", "2"); assertXPath(pXmlDoc, "/indexing/object[2]", "name", "Table2"); - assertXPath(pXmlDoc, "/indexing/object[2]", "type", "table"); + assertXPath(pXmlDoc, "/indexing/object[2]", "object_type", "table"); assertXPath(pXmlDoc, "/indexing/object[2]", "index", "24"); // Search paragraph with parent = 24 assertXPathContent(pXmlDoc, "/indexing/paragraph[@parent=24][1]", "A"); @@ -211,7 +219,7 @@ void IndexingExportTest::testIndexingExport_Tables() assertXPathContent(pXmlDoc, "/indexing/paragraph[@parent=24][15]", "400"); assertXPath(pXmlDoc, "/indexing/object[3]", "name", "WeirdTable"); - assertXPath(pXmlDoc, "/indexing/object[3]", "type", "table"); + assertXPath(pXmlDoc, "/indexing/object[3]", "object_type", "table"); assertXPath(pXmlDoc, "/indexing/object[3]", "index", "72"); // Search paragraph with parent = 72 assertXPathContent(pXmlDoc, "/indexing/paragraph[@parent=72][1]", "A1"); @@ -249,7 +257,7 @@ void IndexingExportTest::testIndexingExport_Sections() assertXPath(pXmlDoc, "/indexing"); assertXPath(pXmlDoc, "/indexing/object[1]", "name", "Section1"); - assertXPath(pXmlDoc, "/indexing/object[1]", "type", "section"); + assertXPath(pXmlDoc, "/indexing/object[1]", "object_type", "section"); assertXPathContent(pXmlDoc, "/indexing/paragraph[1]", "This is a paragraph in a Section1"); assertXPathContent(pXmlDoc, "/indexing/paragraph[2]", "Section1 - Paragraph 2"); assertXPathContent(pXmlDoc, "/indexing/paragraph[3]", "Section1 - Paragraph 3"); @@ -257,7 +265,7 @@ void IndexingExportTest::testIndexingExport_Sections() assertXPathContent(pXmlDoc, "/indexing/paragraph[4]", "This is a paragraph outside sections"); assertXPath(pXmlDoc, "/indexing/object[2]", "name", "Section2"); - assertXPath(pXmlDoc, "/indexing/object[2]", "type", "section"); + assertXPath(pXmlDoc, "/indexing/object[2]", "object_type", "section"); assertXPathContent(pXmlDoc, "/indexing/paragraph[5]", "Section2 - Paragraph 1"); assertXPathContent(pXmlDoc, "/indexing/paragraph[6]", "Section2 - Paragraph 2"); @@ -280,7 +288,7 @@ void IndexingExportTest::testIndexingExport_Fontwork() assertXPath(pXmlDoc, "/indexing"); assertXPath(pXmlDoc, "/indexing/object[1]", "name", "Gray"); - assertXPath(pXmlDoc, "/indexing/object[1]", "type", "shape"); + assertXPath(pXmlDoc, "/indexing/object[1]", "object_type", "shape"); assertXPathContent(pXmlDoc, "/indexing/paragraph[1]", "Fontwork Text 1"); assertXPathContent(pXmlDoc, "/indexing/paragraph[2]", "Fontwork Text 2"); diff --git a/sw/qa/extras/indexing/SearchResultLocatorTest.cxx b/sw/qa/extras/indexing/SearchResultLocatorTest.cxx index 199e67710aa0..654f2639e565 100644 --- a/sw/qa/extras/indexing/SearchResultLocatorTest.cxx +++ b/sw/qa/extras/indexing/SearchResultLocatorTest.cxx @@ -82,7 +82,7 @@ void SearchResultLocatorTest::testSearchResultLocatorUsingXmlPayload() sw::search::SearchResultLocator aLocator(pDoc); OString payload = "<indexing>" - "<paragraph type=\"1\" index=\"14\" />" + "<paragraph node_type=\"writer\" index=\"14\" />" "</indexing>"; sw::search::LocationResult aResult = aLocator.findForPayload(payload.getStr()); @@ -107,7 +107,7 @@ void SearchResultLocatorTest::testSearchResultLocatorUsingJsonPayload() sw::search::SearchResultLocator aLocator(pDoc); OString payload = "[" - "{ \"type\" : 1, \"index\" : 14 }" + "{ \"node_type\" : \"writer\", \"index\" : 14 }" "]"; sw::search::LocationResult aResult = aLocator.findForPayload(payload.getStr()); @@ -132,7 +132,7 @@ void SearchResultLocatorTest::testSearchResultLocatorForSdrObjects() sw::search::SearchResultLocator aLocator(pDoc); std::vector<sw::search::SearchIndexData> aDataVector; - aDataVector.emplace_back(sw::search::NodeType::SdrObject, 1, u"Circle"); + aDataVector.emplace_back(sw::search::NodeType::CommonNode, 1, u"Circle"); sw::search::LocationResult aResult = aLocator.find(aDataVector); CPPUNIT_ASSERT_EQUAL(size_t(1), aResult.maRectangles.size()); diff --git a/sw/source/core/inc/SearchResultLocator.hxx b/sw/source/core/inc/SearchResultLocator.hxx index fb46c85253eb..8d146f87ecde 100644 --- a/sw/source/core/inc/SearchResultLocator.hxx +++ b/sw/source/core/inc/SearchResultLocator.hxx @@ -20,7 +20,7 @@ enum class NodeType { Undefined = 0, WriterNode = 1, - SdrObject = 2 + CommonNode = 2 // node in a SdrObject }; struct SearchIndexData diff --git a/sw/source/core/model/SearchResultLocator.cxx b/sw/source/core/model/SearchResultLocator.cxx index 25819c3bc6fe..208736ab86f3 100644 --- a/sw/source/core/model/SearchResultLocator.cxx +++ b/sw/source/core/model/SearchResultLocator.cxx @@ -52,7 +52,7 @@ void SearchResultLocator::findOne(LocationResult& rResult, SearchIndexData const rArea.Top() + rArea.Height()); } } - else if (rSearchIndexData.meType == NodeType::SdrObject) + else if (rSearchIndexData.meType == NodeType::CommonNode) { IDocumentDrawModelAccess& rDrawModelAccess = mpDocument->getIDocumentDrawModelAccess(); auto* pModel = rDrawModelAccess.GetDrawModel(); @@ -66,7 +66,6 @@ void SearchResultLocator::findOne(LocationResult& rResult, SearchIndexData const { if (pObject->GetName() == rSearchIndexData.maObjectName) { - auto aLogicRect = pObject->GetLogicRect(); auto nLeft = convertMm100ToTwip(aLogicRect.Left()); auto nTop = convertMm100ToTwip(aLogicRect.Top()); @@ -114,12 +113,18 @@ bool SearchResultLocator::tryParseJSON(const char* pPayload, { auto const& rEach = rEachNode.second; - sal_Int32 nType = rEach.get<sal_Int32>("type", 0); + std::string sType = rEach.get<std::string>("node_type", ""); + auto eNodeType = sw::search::NodeType::Undefined; + if (sType == "writer") + eNodeType = sw::search::NodeType::WriterNode; + else if (sType == "common") + eNodeType = sw::search::NodeType::CommonNode; + sal_Int32 nIndex = rEach.get<sal_Int32>("index", -1); // Don't add search data elements that don't have valid data - if (nType > 0 && nIndex >= 0) - rDataVector.emplace_back(sw::search::NodeType(nType), nIndex); + if (eNodeType != sw::search::NodeType::Undefined && nIndex >= 0) + rDataVector.emplace_back(eNodeType, nIndex); } return true; @@ -150,14 +155,20 @@ bool SearchResultLocator::tryParseXML(const char* pPayload, { if (aWalker.name() == "paragraph") { - OString sType = aWalker.attribute("type"); + OString sType = aWalker.attribute("node_type"); OString sIndex = aWalker.attribute("index"); if (!sType.isEmpty() && !sIndex.isEmpty()) { sw::search::SearchIndexData aData; aData.mnNodeIndex = sIndex.toInt32(); - aData.meType = sw::search::NodeType(sType.toInt32()); + auto eNodeType = sw::search::NodeType::Undefined; + if (sType == "writer") + eNodeType = sw::search::NodeType::WriterNode; + else if (sType == "common") + eNodeType = sw::search::NodeType::CommonNode; + + aData.meType = eNodeType; rDataVector.push_back(aData); } diff --git a/sw/source/filter/indexing/IndexingExport.cxx b/sw/source/filter/indexing/IndexingExport.cxx index e681933f81e5..90e30a58285e 100644 --- a/sw/source/filter/indexing/IndexingExport.cxx +++ b/sw/source/filter/indexing/IndexingExport.cxx @@ -72,7 +72,7 @@ public: m_rXmlWriter.startElement("object"); m_rXmlWriter.attribute("alt", pOleNode->GetTitle()); m_rXmlWriter.attribute("name", pFrameFormat->GetName()); - m_rXmlWriter.attribute("type", OString("ole")); + m_rXmlWriter.attribute("object_type", OString("ole")); m_rXmlWriter.endElement(); } @@ -82,7 +82,7 @@ public: m_rXmlWriter.startElement("object"); m_rXmlWriter.attribute("alt", pGraphicNode->GetTitle()); m_rXmlWriter.attribute("name", pFrameFormat->GetName()); - m_rXmlWriter.attribute("type", OString("graphic")); + m_rXmlWriter.attribute("object_type", OString("graphic")); m_rXmlWriter.endElement(); } @@ -99,7 +99,7 @@ public: return; m_rXmlWriter.startElement("paragraph"); m_rXmlWriter.attribute("index", pTextNode->GetIndex()); - m_rXmlWriter.attribute("type", OString("1")); + m_rXmlWriter.attribute("node_type", OString("writer")); if (nParentIndex >= 0) m_rXmlWriter.attribute("parent", nParentIndex); m_rXmlWriter.content(rString); @@ -114,7 +114,7 @@ public: m_rXmlWriter.startElement("object"); m_rXmlWriter.attribute("name", pObject->GetName()); m_rXmlWriter.attribute("alt", pObject->GetTitle()); - m_rXmlWriter.attribute("type", OString("shape")); + m_rXmlWriter.attribute("object_type", OString("shape")); m_rXmlWriter.attribute("description", pObject->GetDescription()); m_rXmlWriter.endElement(); @@ -130,7 +130,7 @@ public: m_rXmlWriter.startElement("paragraph"); m_rXmlWriter.attribute("index", nParagraph); - m_rXmlWriter.attribute("type", OString("2")); + m_rXmlWriter.attribute("node_type", OString("common")); m_rXmlWriter.attribute("parent", pObject->GetName()); m_rXmlWriter.content(sText); m_rXmlWriter.endElement(); @@ -146,7 +146,7 @@ public: m_rXmlWriter.startElement("object"); m_rXmlWriter.attribute("index", pTableNode->GetIndex()); m_rXmlWriter.attribute("name", sName); - m_rXmlWriter.attribute("type", OString("table")); + m_rXmlWriter.attribute("object_type", OString("table")); m_rXmlWriter.endElement(); maNodeStack.push_back(pTableNode); @@ -157,7 +157,7 @@ public: m_rXmlWriter.startElement("object"); m_rXmlWriter.attribute("index", pSectionNode->GetIndex()); m_rXmlWriter.attribute("name", pSectionNode->GetSection().GetSectionName()); - m_rXmlWriter.attribute("type", OString("section")); + m_rXmlWriter.attribute("object_type", OString("section")); m_rXmlWriter.endElement(); maNodeStack.push_back(pSectionNode);