diff options
-rw-r--r-- | src/declarative/graphicsitems/qdeclarativetextedit.cpp | 2 | ||||
-rw-r--r-- | tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index bdcc66ba..a2e8e65c 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -673,7 +673,7 @@ QRectF QDeclarativeTextEdit::positionToRectangle(int pos) const Q_D(const QDeclarativeTextEdit); QTextCursor c(d->document); c.setPosition(pos); - return d->control->cursorRect(c); + return d->control->cursorRect(c).translated(0, d->yoff); } 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<QDeclarativeTextEdit*>(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() |