[Libreoffice-commits] core.git: libreofficekit/source sw/qa

Miklos Vajna vmiklos at collabora.co.uk
Tue Jun 21 13:34:23 UTC 2016


 libreofficekit/source/gtk/lokdocview.cxx       |    1 
 sw/qa/extras/tiledrendering/tiledrendering.cxx |   41 +++++++++++++++++++++++--
 2 files changed, 38 insertions(+), 4 deletions(-)

New commits:
commit 45182f36ef263d6fd94cc79bb242fbfb5a471c22
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Jun 21 14:28:08 2016 +0200

    sw: add LOK_CALLBACK_TEXT_VIEW_SELECTION testcase
    
    Fails with 9f66db9c474f71f43d7a3667230241fd4fa4183f (sw lok: add
    LOK_CALLBACK_TEXT_VIEW_SELECTION, 2016-06-21) reverted.
    
    Change-Id: Ide21167ce2dc4287b1860b5f03a6975dc9edd4c6
    Reviewed-on: https://gerrit.libreoffice.org/26550
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 802be93..1d629b9 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -1039,7 +1039,6 @@ callback (gpointer pData)
                       priv->m_aVisibleCursor.y,
                       priv->m_aVisibleCursor.width,
                       priv->m_aVisibleCursor.height);
-        std::cerr << "debug, LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR: i am " << priv->m_nViewId << ", i got " << pCallback->m_aPayload << " for myself" << std::endl;
         gtk_widget_queue_draw(GTK_WIDGET(pDocView));
     }
     break;
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index a24042f..240a27c 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -225,7 +225,7 @@ void SwTiledRenderingTest::testSetTextSelection()
     SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
     // Move the cursor into the second word.
     pWrtShell->Right(CRSR_SKIP_CHARS, /*bSelect=*/false, 5, /*bBasicCall=*/false);
-    // Create a selection by on the word.
+    // Create a selection on the word.
     pWrtShell->SelWrd();
     SwShellCursor* pShellCursor = pWrtShell->getShellCursor(false);
     // Did we indeed manage to select the second word?
@@ -548,10 +548,14 @@ class ViewCallback
 public:
     bool m_bOwnCursorInvalidated;
     bool m_bViewCursorInvalidated;
+    bool m_bOwnSelectionSet;
+    bool m_bViewSelectionSet;
 
     ViewCallback()
         : m_bOwnCursorInvalidated(false),
-          m_bViewCursorInvalidated(false)
+          m_bViewCursorInvalidated(false),
+          m_bOwnSelectionSet(false),
+          m_bViewSelectionSet(false)
     {
     }
 
@@ -574,6 +578,16 @@ public:
             m_bViewCursorInvalidated = true;
         }
         break;
+        case LOK_CALLBACK_TEXT_SELECTION:
+        {
+            m_bOwnSelectionSet = true;
+        }
+        break;
+        case LOK_CALLBACK_TEXT_VIEW_SELECTION:
+        {
+            m_bViewSelectionSet = true;
+        }
+        break;
         }
     }
 };
@@ -582,7 +596,7 @@ void SwTiledRenderingTest::testViewCursors()
 {
     comphelper::LibreOfficeKit::setActive();
 
-    createDoc("dummy.fodt");
+    SwXTextDocument* pXTextDocument = createDoc("dummy.fodt");
     ViewCallback aView1;
     SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView1);
     SfxLokHelper::createView();
@@ -595,6 +609,27 @@ void SwTiledRenderingTest::testViewCursors()
     // it changed.
     CPPUNIT_ASSERT(aView2.m_bViewCursorInvalidated);
 
+    // Make sure that aView1 gets a view-only selection notification, while
+    // aView2 gets a real selection notification.
+    aView1.m_bOwnSelectionSet = false;
+    aView1.m_bViewSelectionSet = false;
+    aView2.m_bOwnSelectionSet = false;
+    aView2.m_bViewSelectionSet = false;
+    SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
+    // Move the cursor into the second word.
+    pWrtShell->Right(CRSR_SKIP_CHARS, /*bSelect=*/false, 5, /*bBasicCall=*/false);
+    // Create a selection on the word.
+    pWrtShell->SelWrd();
+    SwShellCursor* pShellCursor = pWrtShell->getShellCursor(false);
+    // Did we indeed manage to select the second word?
+    CPPUNIT_ASSERT_EQUAL(OUString("bbb"), pShellCursor->GetText());
+    CPPUNIT_ASSERT(!aView1.m_bOwnSelectionSet);
+    // This failed, aView1 did not get notification about selection changes in
+    // aView2.
+    CPPUNIT_ASSERT(aView1.m_bViewSelectionSet);
+    CPPUNIT_ASSERT(aView2.m_bOwnSelectionSet);
+    CPPUNIT_ASSERT(!aView2.m_bViewSelectionSet);
+
     comphelper::LibreOfficeKit::setActive(false);
 }
 


More information about the Libreoffice-commits mailing list