[Libreoffice-commits] core.git: Branch 'feature/tiled-editing' - 2 commits - editeng/source sd/qa

Miklos Vajna vmiklos at collabora.co.uk
Fri Apr 10 07:19:11 PDT 2015


 editeng/source/editeng/editview.cxx          |    5 +++-
 sd/qa/unit/tiledrendering/tiledrendering.cxx |   28 +++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

New commits:
commit bd0974724460e38c7d218b3c768d705c96f64f74
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Apr 10 16:09:20 2015 +0200

    Add SdXImpressDocument::postKeyEvent() testcase.
    
    Change-Id: I87edb9c4693b1634942d8dbda4050920f439cbbf

diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index 0a4665c..40b0180 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -37,12 +37,14 @@ public:
     virtual void tearDown() SAL_OVERRIDE;
 
     void testRegisterCallback();
+    void testPostKeyEvent();
     void testPostMouseEvent();
     void testSetTextSelection();
 
     CPPUNIT_TEST_SUITE(SdTiledRenderingTest);
 #if !defined(WNT) && !defined(MACOSX)
     CPPUNIT_TEST(testRegisterCallback);
+    CPPUNIT_TEST(testPostKeyEvent);
     CPPUNIT_TEST(testPostMouseEvent);
     CPPUNIT_TEST(testSetTextSelection);
 #endif
@@ -128,6 +130,32 @@ void SdTiledRenderingTest::testRegisterCallback()
     CPPUNIT_ASSERT(m_aInvalidation.IsOver(aTopLeft));
 }
 
+void SdTiledRenderingTest::testPostKeyEvent()
+{
+    SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+    sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+    SdPage* pActualPage = pViewShell->GetActualPage();
+    SdrObject* pObject = pActualPage->GetObj(0);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject->GetObjIdentifier());
+    SdrTextObj* pTextObj = static_cast<SdrTextObj*>(pObject);
+    SdrView* pView = pViewShell->GetView();
+    pView->MarkObj(pTextObj, pView->GetSdrPageView());
+    SfxStringItem aInputString(SID_ATTR_CHAR, "x");
+    pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_ATTR_CHAR, SfxCallMode::SYNCHRON, &aInputString, 0);
+
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+
+    CPPUNIT_ASSERT(pView->GetTextEditObject());
+    EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+    // Did we manage to enter a second character?
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), rEditView.GetSelection().nStartPos);
+    ESelection aWordSelection(0, 0, 0, 2); // start para, start char, end para, end char.
+    rEditView.SetSelection(aWordSelection);
+    // Did we enter the expected character?
+    CPPUNIT_ASSERT_EQUAL(OUString("xx"), rEditView.GetSelected());
+}
+
 void SdTiledRenderingTest::testPostMouseEvent()
 {
     SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
commit 9c2e6af94a5c68272ff1746c843f2215e7f996fe
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Apr 10 16:15:27 2015 +0200

    Fix failing SdTiledRenderingTest::testSetTextSelection().
    
    Change-Id: Ieaeaef249ea15de7cebc1cdb60b4d6130a6b5616

diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx
index 6d0c556..d407e4e 100644
--- a/editeng/source/editeng/editview.cxx
+++ b/editeng/source/editeng/editview.cxx
@@ -1323,14 +1323,17 @@ void EditView::SetCursorLogicPosition(const Point& rPosition, bool bPoint, bool
 {
     Point aDocPos(pImpEditView->GetDocPos(rPosition));
     EditPaM aPaM = pImpEditView->pEditEngine->GetPaM(aDocPos);
+    EditSelection aSelection(pImpEditView->GetEditSelection());
 
     // Explicitly create or delete the selection.
     if (bClearMark)
+    {
         pImpEditView->DeselectAll();
+        aSelection = pImpEditView->GetEditSelection();
+    }
     else
         pImpEditView->CreateAnchor();
 
-    EditSelection aSelection(pImpEditView->GetEditSelection());
     if (bPoint)
         aSelection.Max() = aPaM;
     else


More information about the Libreoffice-commits mailing list