From 6ac69be3148822a0dafce227eab19b97722b6cc2 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Thu, 20 Mar 2014 10:54:21 +0100 Subject: Correct QDeclarativeTextEdit::positionToRectangle(). d->yoff is the content offset when the content is not top aligned. This means that positionToRectangle() returned incorrect values when the content was bottom or vertical center aligned. In other words, it didn't apply the offset but gave coordinates from the beginning of the content instead of from the beginning of the item. Change-Id: I044b79434b9a67b0539050e39953d5889a3ed1db Reviewed-by: J-P Nurmi --- .../tst_qdeclarativetextedit.cpp | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'tests/auto/declarative') diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index ccf7d66f..a348545a 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -639,6 +639,30 @@ void tst_qdeclarativetextedit::vAlign() } } + QDeclarativeComponent texteditComponent(&engine); + texteditComponent.setData("import QtQuick 1.0\n TextEdit { width: 200; height: 200; text: \"Hello World\" }", QUrl()); + QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + + QVERIFY(textEditObject != 0); + + QCOMPARE(textEditObject->vAlign(), QDeclarativeTextEdit::AlignTop); + QVERIFY(textEditObject->cursorRectangle().bottom() < 50); + QVERIFY(textEditObject->positionToRectangle(0).bottom() < 50); + + // bottom aligned + textEditObject->setVAlign(QDeclarativeTextEdit::AlignBottom); + + QCOMPARE(textEditObject->vAlign(), QDeclarativeTextEdit::AlignBottom); + QVERIFY(textEditObject->cursorRectangle().top() > 100); + QVERIFY(textEditObject->positionToRectangle(0).top() > 100); + + // explicitly center aligned + textEditObject->setVAlign(QDeclarativeTextEdit::AlignVCenter); + QCOMPARE(textEditObject->vAlign(), QDeclarativeTextEdit::AlignVCenter); + QVERIFY(textEditObject->cursorRectangle().top() < 100); + QVERIFY(textEditObject->cursorRectangle().bottom() > 100); + QVERIFY(textEditObject->positionToRectangle(0).top() < 100); + QVERIFY(textEditObject->positionToRectangle(0).bottom() > 100); } void tst_qdeclarativetextedit::font() -- cgit v1.2.3