[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.1' - sd/qa sd/source

Jan Holesovsky kendy at collabora.com
Fri Mar 17 21:35:45 UTC 2017


 sd/qa/unit/tiledrendering/tiledrendering.cxx |   17 +++++++++++++++++
 sd/source/ui/view/Outliner.cxx               |   10 +++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

New commits:
commit 260801511467854a4f9a5cdb3b0aed3661c26fe7
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Mon Mar 13 19:03:48 2017 +0100

    sd lok: Don't search on master pages & notes in Impress.
    
    Change-Id: I43ed9f53618dca09e0289bffadc2c05056e0eebb

diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index a23152a5bf86..9eba554cfc27 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -64,6 +64,7 @@ public:
     void testSearchAllSelections();
     void testSearchAllNotifications();
     void testSearchAllFollowedBySearch();
+    void testDontSearchInMasterPages();
     void testInsertDeletePage();
     void testInsertTable();
     void testPartHash();
@@ -94,6 +95,7 @@ public:
     CPPUNIT_TEST(testSearchAllSelections);
     CPPUNIT_TEST(testSearchAllNotifications);
     CPPUNIT_TEST(testSearchAllFollowedBySearch);
+    CPPUNIT_TEST(testDontSearchInMasterPages);
     CPPUNIT_TEST(testInsertDeletePage);
     CPPUNIT_TEST(testInsertTable);
     CPPUNIT_TEST(testPartHash);
@@ -604,6 +606,21 @@ void SdTiledRenderingTest::testSearchAllFollowedBySearch()
     CPPUNIT_ASSERT_EQUAL(OString("match"), pXImpressDocument->getTextSelection("text/plain;charset=utf-8", aUsedFormat));
 }
 
+void SdTiledRenderingTest::testDontSearchInMasterPages()
+{
+    comphelper::LibreOfficeKit::setActive();
+    SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+    sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+    pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+    // This should trigger the not-found callback ("date" is present only on
+    // the master page)
+    lcl_search("date");
+    CPPUNIT_ASSERT_EQUAL(false, m_bFound);
+
+    comphelper::LibreOfficeKit::setActive(false);
+}
+
 namespace
 {
 
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index 5b02bea8e63d..f3ff21a01449 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -1070,8 +1070,12 @@ void Outliner::ProvideNextTextObject()
         if (maObjectIterator != ::sd::outliner::OutlinerContainer(this).end())
         {
             maCurrentPosition = *maObjectIterator;
+
+            // LOK: do not descent to notes or master pages when searching
+            bool bForbiddenPage = comphelper::LibreOfficeKit::isActive() && (maCurrentPosition.mePageKind != PageKind::Standard || maCurrentPosition.meEditMode != EditMode::Page);
+
             // Switch to the current object only if it is a valid text object.
-            if (IsValidTextObject (maCurrentPosition))
+            if (!bForbiddenPage && IsValidTextObject(maCurrentPosition))
             {
                 // Don't set yet in case of searching: the text object may not match.
                 if (meMode != SEARCH)
@@ -1081,9 +1085,9 @@ void Outliner::ProvideNextTextObject()
             }
             ++maObjectIterator;
 
-            if (mpObj != nullptr)
+            if (mpObj)
             {
-                PutTextIntoOutliner ();
+                PutTextIntoOutliner();
 
                 std::shared_ptr<ViewShell> pViewShell (mpWeakViewShell.lock());
                 if (pViewShell != nullptr)


More information about the Libreoffice-commits mailing list