diff options
author | Olivier Goffart <olivier.goffart@nokia.com> | 2010-12-20 09:47:02 (GMT) |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2010-12-20 09:47:02 (GMT) |
commit | 10c90522d6e3807baac3c4bfca4eedc51a4251f5 (patch) | |
tree | 92005b547e3b92eb9e640fae8c78fdcdc13b6dd9 /tests/auto/qgraphicsview | |
parent | 64e1f888586f2c988b08bcc93579990e970b7206 (diff) | |
parent | 97b039438bc31bb420138d72549372adb1244dc8 (diff) | |
download | Qt-10c90522d6e3807baac3c4bfca4eedc51a4251f5.zip Qt-10c90522d6e3807baac3c4bfca4eedc51a4251f5.tar.gz Qt-10c90522d6e3807baac3c4bfca4eedc51a4251f5.tar.bz2 |
Merge remote branch 'origin/4.7' into qt-master-from-4.7
Conflicts:
demos/declarative/minehunt/minehunt.pro
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
src/plugins/phonon/mmf/mmf.pro
src/s60installs/s60installs.pro
tests/auto/qapplication/test/test.pro
tests/auto/qgraphicsview/tst_qgraphicsview.cpp
Diffstat (limited to 'tests/auto/qgraphicsview')
-rw-r--r-- | tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 44f3504..6ea69a7 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -247,6 +247,7 @@ private slots: void QTBUG_5859_exposedRect(); void QTBUG_7438_cursor(); void hoverLeave(); + void QTBUG_16063_microFocusRect(); public slots: void dummySlot() {} @@ -4505,5 +4506,43 @@ void tst_QGraphicsView::hoverLeave() QCOMPARE(item->leaveWidget, view.viewport()); } +class IMItem : public QGraphicsRectItem +{ +public: + IMItem(QGraphicsItem *parent = 0): + QGraphicsRectItem(QRectF(0, 0, 20, 20), parent) + { + setFlag(QGraphicsItem::ItemIsFocusable, true); + setFlag(QGraphicsItem::ItemAcceptsInputMethod, true); + } + + QVariant inputMethodQuery(Qt::InputMethodQuery query) const + { + return mf; + } + + static QRectF mf; +}; + +QRectF IMItem::mf(1.5, 1.6, 10, 10); + +void tst_QGraphicsView::QTBUG_16063_microFocusRect() +{ + QGraphicsScene scene; + IMItem *item = new IMItem(); + scene.addItem(item); + + QGraphicsView view(&scene); + + view.setFixedSize(40, 40); + view.show(); + QTest::qWaitForWindowShown(&view); + + scene.setFocusItem(item); + view.setFocus(); + QRectF mfv = view.inputMethodQuery(Qt::ImMicroFocus).toRectF(); + QCOMPARE(mfv, IMItem::mf.translated(-view.mapToScene(view.sceneRect().toRect()).boundingRect().topLeft())); +} + QTEST_MAIN(tst_QGraphicsView) #include "tst_qgraphicsview.moc" |