Blob Blame History Raw
From e172ed06a5d5cc472d5045d17c741e8aca23e4c8 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Fri, 16 Oct 2015 11:24:11 +0200
Subject: [PATCH 214/398] sd tiled rendering: emit CALLBACK_TEXT_SELECTION on
 multiple search results

(cherry picked from commit 186f32f63434e16ff5776251657f902d5808ed3d)

Change-Id: Ib6be973bf7c911907c793571b84021dc317dcc80
---
 sd/qa/unit/tiledrendering/data/search-all.odp | Bin 10938 -> 10974 bytes
 sd/qa/unit/tiledrendering/tiledrendering.cxx  |  14 ++++++++++++++
 sd/source/ui/view/Outliner.cxx                |  17 +++++++++++++++--
 3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/sd/qa/unit/tiledrendering/data/search-all.odp b/sd/qa/unit/tiledrendering/data/search-all.odp
index 0fd069ce6c0b4201c37a6678b6b1cd9875872c8f..46ddaf412bfa3248fd5a9459b0038dc72d9798a7 100644
GIT binary patch
delta 5192
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

delta 5360
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
IvR@nj4;pGT1ONa4

diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index e83873e06d5b..4df60ef40a41 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -53,6 +53,7 @@ public:
     void testResetSelection();
     void testSearch();
     void testSearchAll();
+    void testSearchAllSelections();
 #endif
 
     CPPUNIT_TEST_SUITE(SdTiledRenderingTest);
@@ -66,6 +67,7 @@ public:
     CPPUNIT_TEST(testResetSelection);
     CPPUNIT_TEST(testSearch);
     CPPUNIT_TEST(testSearchAll);
+    CPPUNIT_TEST(testSearchAllSelections);
 #endif
     CPPUNIT_TEST_SUITE_END();
 
@@ -437,6 +439,18 @@ void SdTiledRenderingTest::testSearchAll()
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), m_nPart);
 }
 
+void SdTiledRenderingTest::testSearchAllSelections()
+{
+    SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp");
+    pXImpressDocument->registerCallback(&SdTiledRenderingTest::callback, this);
+
+    lcl_search("third", /*bFindAll=*/true);
+    // Make sure this is found on the 3rd slide.
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), m_nPart);
+    // This was 1: only the first match was highlighted.
+    CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), m_aSelection.size());
+}
+
 #endif
 
 CPPUNIT_TEST_SUITE_REGISTRATION(SdTiledRenderingTest);
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index ff537b4da547..c626c80d0c0d 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -606,7 +606,8 @@ bool Outliner::SearchAndReplaceAll()
         return true;
     }
 
-    if (pViewShell->ISA(OutlineViewShell))
+    std::vector<SearchSelection> aSelections;
+    if( 0 != dynamic_cast< const OutlineViewShell *>( pViewShell.get() ))
     {
         // Put the cursor to the beginning/end of the outliner.
         mpImpl->GetOutlinerView()->SetSelection (GetSearchStartPosition ());
@@ -628,7 +629,6 @@ bool Outliner::SearchAndReplaceAll()
 
         // Search/replace until the end of the document is reached.
         bool bFoundMatch;
-        std::vector<SearchSelection> aSelections;
         do
         {
             bFoundMatch = ! SearchAndReplaceOnce(&aSelections);
@@ -674,6 +674,19 @@ bool Outliner::SearchAndReplaceAll()
         // Find-all, tiled rendering and we have at least one match.
         OString aPayload = OString::number(mnStartPageIndex);
         pViewShell->GetDoc()->libreOfficeKitCallback(LOK_CALLBACK_SET_PART, aPayload.getStr());
+
+        // Emit a selection callback here:
+        // 1) The original one is no longer valid, as we there was a SET_PART in between
+        // 2) The underlying editeng will only talk about the first match till
+        // it doesn't support multi-selection.
+        std::vector<OString> aRectangles;
+        for (const SearchSelection& rSelection : aSelections)
+        {
+            if (rSelection.m_nPage == mnStartPageIndex)
+                aRectangles.push_back(rSelection.m_aRectangles);
+        }
+        OString sRectangles = comphelper::string::join("; ", aRectangles);
+        pViewShell->GetDoc()->libreOfficeKitCallback(LOK_CALLBACK_TEXT_SELECTION, sRectangles.getStr());
     }
 
     mnStartPageIndex = (sal_uInt16)-1;
-- 
2.12.0