[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