diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-03-25 05:28:40 (GMT) |
---|---|---|
committer | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-03-30 02:57:39 (GMT) |
commit | b94176e69efc3948696c6774d5a228fc753b5b29 (patch) | |
tree | 9be1cca7cb851a5266bf8949e8b0de5e62128b33 /tests/auto/declarative/qdeclarativetextedit | |
parent | 84413a25bc025f099a075387fb6ab8449d9ef217 (diff) | |
download | Qt-b94176e69efc3948696c6774d5a228fc753b5b29.zip Qt-b94176e69efc3948696c6774d5a228fc753b5b29.tar.gz Qt-b94176e69efc3948696c6774d5a228fc753b5b29.tar.bz2 |
Fix width of TextInput micro focus rectangle.
Remove the padding QLineControl::cursorRect() adds for region updates.
QGraphicsView also grew the rectangle by returning the bounding rect
of the transformed rectangle which is fixed by using the same transform
for QRect as is used for QRectF.
Change-Id: I8d8df9dbc6b4250e4e5392871191123a76b304a0
Task-number: QTBUG-18343
Reviewed-by: Martin Jones
Diffstat (limited to 'tests/auto/declarative/qdeclarativetextedit')
-rw-r--r-- | tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index 04ecf91..8f1be6f 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -148,6 +148,7 @@ private slots: void preeditMicroFocus(); void inputContextMouseHandler(); void inputMethodComposing(); + void cursorRectangleSize(); private: void simulateKey(QDeclarativeView *, int key, Qt::KeyboardModifiers modifiers = 0); @@ -2421,6 +2422,25 @@ void tst_qdeclarativetextedit::inputMethodComposing() QCOMPARE(spy.count(), 2); } +void tst_qdeclarativetextedit::cursorRectangleSize() +{ + QDeclarativeView *canvas = createView(SRCDIR "/data/CursorRect.qml"); + QVERIFY(canvas->rootObject() != 0); + canvas->show(); + canvas->setFocus(); + QApplication::setActiveWindow(canvas); + QTest::qWaitForWindowShown(canvas); + + QDeclarativeTextEdit *textEdit = qobject_cast<QDeclarativeTextEdit *>(canvas->rootObject()); + QVERIFY(textEdit != 0); + textEdit->setFocus(Qt::OtherFocusReason); + QRectF cursorRect = textEdit->positionToRectangle(textEdit->cursorPosition()); + QRectF microFocusFromScene = canvas->scene()->inputMethodQuery(Qt::ImMicroFocus).toRectF(); + QRectF microFocusFromApp= QApplication::focusWidget()->inputMethodQuery(Qt::ImMicroFocus).toRectF(); + + QCOMPARE(microFocusFromScene.size(), cursorRect.size()); + QCOMPARE(microFocusFromApp.size(), cursorRect.size()); +} QTEST_MAIN(tst_qdeclarativetextedit) #include "tst_qdeclarativetextedit.moc" |