Blob Blame History Raw
From a264af1921169c7e1174a8c0d0e3dfb069ac3132 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Thu, 15 Oct 2015 15:20:23 +0200
Subject: [PATCH 210/398] sd tiled rendering: let find-all at least select the
 first match physically

The LOK API can describe a multi-selection, so find-all can signal all
matches, editeng can have a single selection only. Instead of having no
selections after a find-all, select the first match, so e.g. copy works.

Change-Id: I0eab2565916f0c3cce5d77279c0d927ad4b7054c
(cherry picked from commit cd4976988cf3acb4f1a23f1df7fcc2bfec0f3da0)
---
 sd/qa/unit/tiledrendering/data/search-all.odp | Bin 0 -> 10744 bytes
 sd/qa/unit/tiledrendering/tiledrendering.cxx  |  19 +++++++++++++++++--
 sd/source/ui/view/Outliner.cxx                |  13 ++++++++++++-
 3 files changed, 29 insertions(+), 3 deletions(-)
 create mode 100644 sd/qa/unit/tiledrendering/data/search-all.odp

diff --git a/sd/qa/unit/tiledrendering/data/search-all.odp b/sd/qa/unit/tiledrendering/data/search-all.odp
new file mode 100644
index 0000000000000000000000000000000000000000..cb3cb31cf5c7d5d4025a0025871ad1314c598cdf
GIT binary patch
literal 10744
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

literal 0
HcmV?d00001

diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index 62ad1cdcad7e..85e14f7496d0 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -23,6 +23,7 @@
 #include <editeng/outliner.hxx>
 #include <sfx2/dispatch.hxx>
 #include <sfx2/viewfrm.hxx>
+#include <svl/srchitem.hxx>
 
 #include <DrawDocShell.hxx>
 #include <ViewShell.hxx>
@@ -51,6 +52,7 @@ public:
     void testSetGraphicSelection();
     void testResetSelection();
     void testSearch();
+    void testSearchAll();
 #endif
 
     CPPUNIT_TEST_SUITE(SdTiledRenderingTest);
@@ -63,6 +65,7 @@ public:
     CPPUNIT_TEST(testSetGraphicSelection);
     CPPUNIT_TEST(testResetSelection);
     CPPUNIT_TEST(testSearch);
+    CPPUNIT_TEST(testSearchAll);
 #endif
     CPPUNIT_TEST_SUITE_END();
 
@@ -371,12 +374,13 @@ void SdTiledRenderingTest::testResetSelection()
     CPPUNIT_ASSERT(!pView->GetTextEditObject());
 }
 
-static void lcl_search(const OUString& rKey)
+static void lcl_search(const OUString& rKey, bool bFindAll = false)
 {
     uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence(
     {
         {"SearchItem.SearchString", uno::makeAny(rKey)},
-        {"SearchItem.Backward", uno::makeAny(false)}
+        {"SearchItem.Backward", uno::makeAny(false)},
+        {"SearchItem.Command", uno::makeAny(static_cast<sal_uInt16>(bFindAll ? SvxSearchCmd::FIND_ALL : SvxSearchCmd::FIND))},
     }));
     comphelper::dispatchCommand(".uno:ExecuteSearch", aPropertyValues);
 }
@@ -415,6 +419,17 @@ void SdTiledRenderingTest::testSearch()
     CPPUNIT_ASSERT_EQUAL(false, m_bFound);
 }
 
+void SdTiledRenderingTest::testSearchAll()
+{
+    SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp");
+
+    lcl_search("match", /*bFindAll=*/true);
+
+    OString aUsedFormat;
+    // This was empty: find-all did not highlight the first match.
+    CPPUNIT_ASSERT_EQUAL(OString("match"), pXImpressDocument->getTextSelection("text/plain;charset=utf-8", aUsedFormat));
+}
+
 #endif
 
 CPPUNIT_TEST_SUITE_REGISTRATION(SdTiledRenderingTest);
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index 51635d5cba14..c9ab51dcc7f7 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -594,6 +594,7 @@ void Outliner::Initialize (bool bDirectionIsForward)
 
 bool Outliner::SearchAndReplaceAll()
 {
+    bool bRet = true;
     // Save the current position to be restored after having replaced all
     // matches.
     RememberStartPosition ();
@@ -631,6 +632,16 @@ bool Outliner::SearchAndReplaceAll()
         do
         {
             bFoundMatch = ! SearchAndReplaceOnce(&aSelections);
+            if (mpSearchItem->GetCommand() == SvxSearchCmd::FIND_ALL && pViewShell->GetDoc()->isTiledRendering() && bFoundMatch && aSelections.size() == 1)
+            {
+                // Without this, RememberStartPosition() will think it already has a remembered position.
+                mnStartPageIndex = (sal_uInt16)-1;
+
+                RememberStartPosition();
+
+                // So when RestoreStartPosition() restores the first match, then spellchecker doesn't kill the selection.
+                bRet = false;
+            }
         }
         while (bFoundMatch);
 
@@ -659,7 +670,7 @@ bool Outliner::SearchAndReplaceAll()
     RestoreStartPosition ();
     mnStartPageIndex = (sal_uInt16)-1;
 
-    return true;
+    return bRet;
 }
 
 bool Outliner::SearchAndReplaceOnce(std::vector<SearchSelection>* pSelections)
-- 
2.12.0